Merge pull request #86 from WebAssembly/de-wasmate

Delete wasmate
diff --git a/prototype-wasmate/.gitignore b/prototype-wasmate/.gitignore
deleted file mode 100644
index c3bf65e..0000000
--- a/prototype-wasmate/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-test/output
-third_party/llvm
diff --git a/prototype-wasmate/README.md b/prototype-wasmate/README.md
deleted file mode 100644
index ac38c07..0000000
--- a/prototype-wasmate/README.md
+++ /dev/null
@@ -1,2 +0,0 @@
-This is a temporary hack used to bring up some testcases to help validate
-other parts of the WebAssembly platform.
diff --git a/prototype-wasmate/known_gcc_test_failures.txt b/prototype-wasmate/known_gcc_test_failures.txt
deleted file mode 100644
index 3eb7345..0000000
--- a/prototype-wasmate/known_gcc_test_failures.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-# Expected failures from running wasmate on the GCC torture test output files.
-
-# Address-taken labels in test cause "can't resolve symbol".
-20071220-1.c.s
-20071220-2.c.s
-
-# Code contains `extern int abort();` and it's address-taken. .s file doesn't
-# declare `abort`.
-921110-1.c.s
diff --git a/prototype-wasmate/run-tests.py b/prototype-wasmate/run-tests.py
deleted file mode 100755
index cf2fedb..0000000
--- a/prototype-wasmate/run-tests.py
+++ /dev/null
@@ -1,67 +0,0 @@
-#!/usr/bin/env python
-
-import difflib
-import glob
-import os
-import subprocess
-import sys
-import unittest
-
-SCRIPT_DIR = os.path.dirname(os.path.abspath(__file__))
-WASMATE = os.path.join(SCRIPT_DIR, 'wasmate.py')
-ENVIRONMENT = 'misctest'
-
-def DiffLines(expected, actual):
-    expected_lines = expected.splitlines(1)
-    actual_lines = actual.splitlines(1)
-    return list(difflib.unified_diff(expected_lines, actual_lines,
-                                     fromfile='expected', tofile='actual'))
-
-class RunTests(unittest.TestCase):
-    def _runTestFile(self, shortName, fileName):
-        expectedLogPath = fileName.replace("test/", "test/expected-output/").replace(".s", ".wast")
-        logPath = fileName.replace("test/", "test/output/").replace(".s", ".wast")
-        try:
-            os.remove(logPath)
-        except OSError:
-            pass
-
-        commandStr = ("%s -l %s %s > %s") % (WASMATE, ENVIRONMENT, fileName, logPath)
-        exitCode = subprocess.call(commandStr, shell=True)
-        self.assertEqual(0, exitCode, "test runner failed with exit code %i" % exitCode)
-
-        try:
-            expected = open(expectedLogPath)
-        except IOError:
-            # print("// WARNING: No expected output found for %s" % fileName)
-            return
-
-        output = open(logPath)
-
-        with expected:
-            with output:
-                expectedText = expected.read()
-                actualText = output.read()
-                if expectedText != actualText:
-                    msg = ('Mismatch in stdout:\n' +
-                           ''.join(DiffLines(expectedText, actualText)))
-                    self.assertEqual(expectedText, actualText, msg)
-
-def generate_test_case(attrName, fileName):
-    return lambda self : self._runTestFile(attrName, fileName)
-
-def generate_test_cases(cls, files):
-    for fileName in files:
-        attrName = fileName
-        testCase = generate_test_case(attrName, fileName)
-        setattr(cls, attrName, testCase)
-
-if __name__ == "__main__":
-    try:
-        os.makedirs("test/output/")
-    except OSError:
-        pass
-
-    testFiles = glob.glob("test/*.s")
-    generate_test_cases(RunTests, testFiles)
-    unittest.main()
diff --git a/prototype-wasmate/scripts/build-llvm.sh b/prototype-wasmate/scripts/build-llvm.sh
deleted file mode 100755
index 5d9f2a7..0000000
--- a/prototype-wasmate/scripts/build-llvm.sh
+++ /dev/null
@@ -1,24 +0,0 @@
-#!/bin/bash
-set -o nounset
-set -o errexit
-
-SCRIPT_DIR="$(dirname "$(readlink -f "$0")")"
-ROOT_DIR="$(dirname "${SCRIPT_DIR}")"
-LLVM_DIR="${ROOT_DIR}/third_party/llvm"
-BUILD_DIR="${LLVM_DIR}/build"
-CMAKE_FLAGS="\
-  -DCMAKE_EXPORT_COMPILE_COMMANDS=ON \
-  -DLLVM_BUILD_TESTS=ON \
-  -DCMAKE_BUILD_TYPE=Debug \
-  -DLLVM_ENABLE_ASSERTIONS=ON \
-  -DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD=WebAssembly \
-  -DLLVM_TARGETS_TO_BUILD=X86"
-
-if [[ ! -d ${BUILD_DIR} ]]; then
-  mkdir -p ${BUILD_DIR}
-  (cd ${BUILD_DIR} && cmake -G Ninja .. ${CMAKE_FLAGS})
-fi
-
-pushd ${BUILD_DIR}
-time ninja
-popd
diff --git a/prototype-wasmate/scripts/llvm-to-s.py b/prototype-wasmate/scripts/llvm-to-s.py
deleted file mode 100755
index 27df6e3..0000000
--- a/prototype-wasmate/scripts/llvm-to-s.py
+++ /dev/null
@@ -1,69 +0,0 @@
-#!/usr/bin/env python
-
-import argparse
-import os
-import re
-import shlex
-import subprocess
-import sys
-
-
-SCRIPT_DIR = os.path.dirname(os.path.abspath(__file__))
-ROOT_DIR= os.path.dirname(SCRIPT_DIR)
-LLVM_TEST_DIR = os.path.join(ROOT_DIR, 'third_party', 'llvm', 'test', 'CodeGen',
-                             'WebAssembly')
-S_TEST_DIR = os.path.join(ROOT_DIR, 'test')
-LLVM_DIR = os.path.join(ROOT_DIR, 'third_party', 'llvm')
-BIN_DIR = os.path.join(LLVM_DIR, 'build', 'bin')
-
-
-def FindTestFiles(directory, ext):
-    tests = []
-    for root, dirs, files in os.walk(directory):
-        for f in files:
-            path = os.path.join(root, f)
-            if os.path.splitext(f)[1] == ext:
-                tests.append(path)
-    tests.sort()
-    return tests
-
-
-def GetRunLine(test):
-    run_line = ''
-    with open(test) as test_file:
-        for line in test_file.readlines():
-            m = re.match(r'; RUN: (.*?)(\\?)$', line)
-            if m:
-                run_line += m.group(1)
-                if not m.group(2):
-                    break
-    # Remove FileCheck
-    run_line = re.sub(r'\|\s*FileCheck.*$', '', run_line)
-    # Remove pipe input
-    run_line = re.sub(r'<\s*%s', '', run_line)
-    # Remove stderr > stdout redirect
-    run_line = re.sub(r'2>&1', '', run_line)
-    return run_line
-
-
-def main(args):
-    parser = argparse.ArgumentParser()
-    options = parser.parse_args(args)
-
-    tests = FindTestFiles(LLVM_TEST_DIR, '.ll')
-    for ll_test in tests:
-        name_noext = os.path.splitext(os.path.basename(ll_test))[0]
-        s = os.path.join(S_TEST_DIR, name_noext + '.s')
-        run_line = GetRunLine(ll_test)
-        cmd = shlex.split(run_line)
-        cmd.extend([ll_test, '-o', s])
-        # Don't run if the command isn't llc. Some are opt and they don't
-        # generate .s files.
-        if cmd[0] != 'llc':
-            continue
-        cmd[0] = os.path.join(BIN_DIR, cmd[0])
-        subprocess.check_call(cmd)
-
-
-if __name__ == '__main__':
-    sys.exit(main(sys.argv[1:]))
diff --git a/prototype-wasmate/scripts/update-llvm.sh b/prototype-wasmate/scripts/update-llvm.sh
deleted file mode 100755
index c674b8d..0000000
--- a/prototype-wasmate/scripts/update-llvm.sh
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/bash
-set -o nounset
-set -o errexit
-
-SCRIPT_DIR="$(dirname "$(readlink -f "$0")")"
-ROOT_DIR="$(dirname "${SCRIPT_DIR}")"
-LLVM_SVN=http://llvm.org/svn/llvm-project/llvm/trunk
-LLVM_DIR="${ROOT_DIR}/third_party/llvm"
-REV=255925
-
-(cd ${SCRIPT_DIR} && svn co -r ${REV} ${LLVM_SVN} ${LLVM_DIR})
diff --git a/prototype-wasmate/test/alternate-lcomm.s b/prototype-wasmate/test/alternate-lcomm.s
deleted file mode 100644
index 70966ef..0000000
--- a/prototype-wasmate/test/alternate-lcomm.s
+++ /dev/null
@@ -1,5 +0,0 @@
-	.data
-	.type	a,@object
-	.lcomm	a,1
-	.type	b,@object
-	.lcomm	b,3
diff --git a/prototype-wasmate/test/call.s b/prototype-wasmate/test/call.s
deleted file mode 100644
index c9c3d9b..0000000
--- a/prototype-wasmate/test/call.s
+++ /dev/null
@@ -1,123 +0,0 @@
-	.text
-	.file	"/s/llvm/llvm/test/CodeGen/WebAssembly/call.ll"
-	.globl	call_i32_nullary
-	.type	call_i32_nullary,@function
-call_i32_nullary:                       # @call_i32_nullary
-	.result 	i32
-# BB#0:
-	i32.call	$push0=, i32_nullary
-	return  	$pop0
-func_end0:
-	.size	call_i32_nullary, func_end0-call_i32_nullary
-
-	.globl	call_i64_nullary
-	.type	call_i64_nullary,@function
-call_i64_nullary:                       # @call_i64_nullary
-	.result 	i64
-# BB#0:
-	i64.call	$push0=, i64_nullary
-	return  	$pop0
-func_end1:
-	.size	call_i64_nullary, func_end1-call_i64_nullary
-
-	.globl	call_float_nullary
-	.type	call_float_nullary,@function
-call_float_nullary:                     # @call_float_nullary
-	.result 	f32
-# BB#0:
-	f32.call	$push0=, float_nullary
-	return  	$pop0
-func_end2:
-	.size	call_float_nullary, func_end2-call_float_nullary
-
-	.globl	call_double_nullary
-	.type	call_double_nullary,@function
-call_double_nullary:                    # @call_double_nullary
-	.result 	f64
-# BB#0:
-	f64.call	$push0=, double_nullary
-	return  	$pop0
-func_end3:
-	.size	call_double_nullary, func_end3-call_double_nullary
-
-	.globl	call_void_nullary
-	.type	call_void_nullary,@function
-call_void_nullary:                      # @call_void_nullary
-# BB#0:
-	call    	void_nullary
-	return
-func_end4:
-	.size	call_void_nullary, func_end4-call_void_nullary
-
-	.globl	call_i32_unary
-	.type	call_i32_unary,@function
-call_i32_unary:                         # @call_i32_unary
-	.param  	i32
-	.result 	i32
-# BB#0:
-	i32.call	$push0=, i32_unary, $0
-	return  	$pop0
-func_end5:
-	.size	call_i32_unary, func_end5-call_i32_unary
-
-	.globl	call_i32_binary
-	.type	call_i32_binary,@function
-call_i32_binary:                        # @call_i32_binary
-	.param  	i32, i32
-	.result 	i32
-# BB#0:
-	i32.call	$push0=, i32_binary, $0, $1
-	return  	$pop0
-func_end6:
-	.size	call_i32_binary, func_end6-call_i32_binary
-
-	.globl	call_indirect_void
-	.type	call_indirect_void,@function
-call_indirect_void:                     # @call_indirect_void
-	.param  	i32
-# BB#0:
-	call_indirect	$0
-	return
-func_end7:
-	.size	call_indirect_void, func_end7-call_indirect_void
-
-	.globl	call_indirect_i32
-	.type	call_indirect_i32,@function
-call_indirect_i32:                      # @call_indirect_i32
-	.param  	i32
-	.result 	i32
-# BB#0:
-	i32.call_indirect	$push0=, $0
-	return  	$pop0
-func_end8:
-	.size	call_indirect_i32, func_end8-call_indirect_i32
-
-	.globl	tail_call_void_nullary
-	.type	tail_call_void_nullary,@function
-tail_call_void_nullary:                 # @tail_call_void_nullary
-# BB#0:
-	call    	void_nullary
-	return
-func_end9:
-	.size	tail_call_void_nullary, func_end9-tail_call_void_nullary
-
-	.globl	fastcc_tail_call_void_nullary
-	.type	fastcc_tail_call_void_nullary,@function
-fastcc_tail_call_void_nullary:          # @fastcc_tail_call_void_nullary
-# BB#0:
-	call    	void_nullary
-	return
-func_end10:
-	.size	fastcc_tail_call_void_nullary, func_end10-fastcc_tail_call_void_nullary
-
-	.globl	coldcc_tail_call_void_nullary
-	.type	coldcc_tail_call_void_nullary,@function
-coldcc_tail_call_void_nullary:          # @coldcc_tail_call_void_nullary
-# BB#0:
-	call    	void_nullary
-	return
-func_end11:
-	.size	coldcc_tail_call_void_nullary, func_end11-coldcc_tail_call_void_nullary
-
-
-	.section	".note.GNU-stack","",@progbits
diff --git a/prototype-wasmate/test/cfg-stackify.s b/prototype-wasmate/test/cfg-stackify.s
deleted file mode 100644
index b97ac9b..0000000
--- a/prototype-wasmate/test/cfg-stackify.s
+++ /dev/null
@@ -1,773 +0,0 @@
-	.text
-	.file	"/s/llvm/llvm/test/CodeGen/WebAssembly/cfg-stackify.ll"
-	.globl	test0
-	.type	test0,@function
-test0:                                  # @test0
-	.param  	i32
-	.local  	i32
-# BB#0:                                 # %entry
-	i32.const	$1=, 0
-BB0_1:                                  # %header
-                                        # =>This Inner Loop Header: Depth=1
-	loop    	BB0_3
-	i32.const	$push0=, 1
-	i32.add 	$1=, $1, $pop0
-	i32.ge_s	$push1=, $1, $0
-	br_if   	$pop1, BB0_3
-# BB#2:                                 # %back
-                                        #   in Loop: Header=BB0_1 Depth=1
-	call    	something
-	br      	BB0_1
-BB0_3:                                  # %exit
-	return
-func_end0:
-	.size	test0, func_end0-test0
-
-	.globl	test1
-	.type	test1,@function
-test1:                                  # @test1
-	.param  	i32
-	.local  	i32
-# BB#0:                                 # %entry
-	i32.const	$1=, 0
-BB1_1:                                  # %header
-                                        # =>This Inner Loop Header: Depth=1
-	loop    	BB1_3
-	i32.const	$push0=, 1
-	i32.add 	$1=, $1, $pop0
-	i32.ge_s	$push1=, $1, $0
-	br_if   	$pop1, BB1_3
-# BB#2:                                 # %back
-                                        #   in Loop: Header=BB1_1 Depth=1
-	call    	something
-	br      	BB1_1
-BB1_3:                                  # %exit
-	return
-func_end1:
-	.size	test1, func_end1-test1
-
-	.globl	test2
-	.type	test2,@function
-test2:                                  # @test2
-	.param  	i32, i32
-# BB#0:                                 # %entry
-	i32.const	$push0=, 1
-	i32.lt_s	$push1=, $1, $pop0
-	block   	BB2_2
-	br_if   	$pop1, BB2_2
-BB2_1:                                  # %for.body
-                                        # =>This Inner Loop Header: Depth=1
-	loop    	BB2_2
-	f64.load	$push2=, 0($0)
-	f64.const	$push3=, 0x1.999999999999ap1
-	f64.mul 	$push4=, $pop2, $pop3
-	f64.store	$discard=, 0($0), $pop4
-	i32.const	$push5=, -1
-	i32.add 	$1=, $1, $pop5
-	i32.const	$push6=, 8
-	i32.add 	$0=, $0, $pop6
-	br_if   	$1, BB2_1
-BB2_2:                                  # %for.end
-	return
-func_end2:
-	.size	test2, func_end2-test2
-
-	.globl	doublediamond
-	.type	doublediamond,@function
-doublediamond:                          # @doublediamond
-	.param  	i32, i32, i32
-	.result 	i32
-	.local  	i32
-# BB#0:                                 # %entry
-	i32.const	$push0=, 0
-	i32.store	$3=, 0($2), $pop0
-	block   	BB3_5
-	block   	BB3_4
-	i32.const	$push6=, 0
-	i32.eq  	$push7=, $0, $pop6
-	br_if   	$pop7, BB3_4
-# BB#1:                                 # %false
-	i32.const	$push1=, 2
-	i32.store	$discard=, 0($2), $pop1
-	block   	BB3_3
-	i32.const	$push8=, 0
-	i32.eq  	$push9=, $1, $pop8
-	br_if   	$pop9, BB3_3
-# BB#2:                                 # %ff
-	i32.const	$push2=, 4
-	i32.store	$discard=, 0($2), $pop2
-	br      	BB3_5
-BB3_3:                                  # %ft
-	i32.const	$push3=, 3
-	i32.store	$discard=, 0($2), $pop3
-	br      	BB3_5
-BB3_4:                                  # %true
-	i32.const	$push4=, 1
-	i32.store	$discard=, 0($2), $pop4
-BB3_5:                                  # %exit
-	i32.const	$push5=, 5
-	i32.store	$discard=, 0($2), $pop5
-	return  	$3
-func_end3:
-	.size	doublediamond, func_end3-doublediamond
-
-	.globl	triangle
-	.type	triangle,@function
-triangle:                               # @triangle
-	.param  	i32, i32
-	.result 	i32
-	.local  	i32
-# BB#0:                                 # %entry
-	i32.const	$push0=, 0
-	i32.store	$2=, 0($0), $pop0
-	block   	BB4_2
-	br_if   	$1, BB4_2
-# BB#1:                                 # %true
-	i32.const	$push1=, 1
-	i32.store	$discard=, 0($0), $pop1
-BB4_2:                                  # %exit
-	i32.const	$push2=, 2
-	i32.store	$discard=, 0($0), $pop2
-	return  	$2
-func_end4:
-	.size	triangle, func_end4-triangle
-
-	.globl	diamond
-	.type	diamond,@function
-diamond:                                # @diamond
-	.param  	i32, i32
-	.result 	i32
-	.local  	i32
-# BB#0:                                 # %entry
-	i32.const	$push0=, 0
-	i32.store	$2=, 0($0), $pop0
-	block   	BB5_3
-	block   	BB5_2
-	i32.const	$push4=, 0
-	i32.eq  	$push5=, $1, $pop4
-	br_if   	$pop5, BB5_2
-# BB#1:                                 # %false
-	i32.const	$push1=, 2
-	i32.store	$discard=, 0($0), $pop1
-	br      	BB5_3
-BB5_2:                                  # %true
-	i32.const	$push2=, 1
-	i32.store	$discard=, 0($0), $pop2
-BB5_3:                                  # %exit
-	i32.const	$push3=, 3
-	i32.store	$discard=, 0($0), $pop3
-	return  	$2
-func_end5:
-	.size	diamond, func_end5-diamond
-
-	.globl	single_block
-	.type	single_block,@function
-single_block:                           # @single_block
-	.param  	i32
-	.result 	i32
-# BB#0:                                 # %entry
-	i32.const	$push0=, 0
-	i32.store	$push1=, 0($0), $pop0
-	return  	$pop1
-func_end6:
-	.size	single_block, func_end6-single_block
-
-	.globl	minimal_loop
-	.type	minimal_loop,@function
-minimal_loop:                           # @minimal_loop
-	.param  	i32
-	.result 	i32
-# BB#0:                                 # %entry
-	i32.const	$push0=, 0
-	i32.store	$discard=, 0($0), $pop0
-BB7_1:                                  # %loop
-                                        # =>This Inner Loop Header: Depth=1
-	loop    	BB7_2
-	i32.const	$push1=, 1
-	i32.store	$discard=, 0($0), $pop1
-	br      	BB7_1
-BB7_2:
-func_end7:
-	.size	minimal_loop, func_end7-minimal_loop
-
-	.globl	simple_loop
-	.type	simple_loop,@function
-simple_loop:                            # @simple_loop
-	.param  	i32, i32
-	.result 	i32
-	.local  	i32
-# BB#0:                                 # %entry
-	i32.const	$push0=, 0
-	i32.store	$2=, 0($0), $pop0
-BB8_1:                                  # %loop
-                                        # =>This Inner Loop Header: Depth=1
-	loop    	BB8_2
-	i32.const	$push1=, 1
-	i32.store	$discard=, 0($0), $pop1
-	i32.const	$push3=, 0
-	i32.eq  	$push4=, $1, $pop3
-	br_if   	$pop4, BB8_1
-BB8_2:                                  # %exit
-	i32.const	$push2=, 2
-	i32.store	$discard=, 0($0), $pop2
-	return  	$2
-func_end8:
-	.size	simple_loop, func_end8-simple_loop
-
-	.globl	doubletriangle
-	.type	doubletriangle,@function
-doubletriangle:                         # @doubletriangle
-	.param  	i32, i32, i32
-	.result 	i32
-	.local  	i32
-# BB#0:                                 # %entry
-	i32.const	$push0=, 0
-	i32.store	$3=, 0($2), $pop0
-	block   	BB9_4
-	br_if   	$0, BB9_4
-# BB#1:                                 # %true
-	i32.const	$push1=, 2
-	i32.store	$discard=, 0($2), $pop1
-	block   	BB9_3
-	br_if   	$1, BB9_3
-# BB#2:                                 # %tt
-	i32.const	$push2=, 3
-	i32.store	$discard=, 0($2), $pop2
-BB9_3:                                  # %tf
-	i32.const	$push3=, 4
-	i32.store	$discard=, 0($2), $pop3
-BB9_4:                                  # %exit
-	i32.const	$push4=, 5
-	i32.store	$discard=, 0($2), $pop4
-	return  	$3
-func_end9:
-	.size	doubletriangle, func_end9-doubletriangle
-
-	.globl	ifelse_earlyexits
-	.type	ifelse_earlyexits,@function
-ifelse_earlyexits:                      # @ifelse_earlyexits
-	.param  	i32, i32, i32
-	.result 	i32
-	.local  	i32
-# BB#0:                                 # %entry
-	i32.const	$push0=, 0
-	i32.store	$3=, 0($2), $pop0
-	block   	BB10_4
-	block   	BB10_3
-	i32.const	$push5=, 0
-	i32.eq  	$push6=, $0, $pop5
-	br_if   	$pop6, BB10_3
-# BB#1:                                 # %false
-	i32.const	$push1=, 2
-	i32.store	$discard=, 0($2), $pop1
-	br_if   	$1, BB10_4
-# BB#2:                                 # %ft
-	i32.const	$push2=, 3
-	i32.store	$discard=, 0($2), $pop2
-	br      	BB10_4
-BB10_3:                                 # %true
-	i32.const	$push3=, 1
-	i32.store	$discard=, 0($2), $pop3
-BB10_4:                                 # %exit
-	i32.const	$push4=, 4
-	i32.store	$discard=, 0($2), $pop4
-	return  	$3
-func_end10:
-	.size	ifelse_earlyexits, func_end10-ifelse_earlyexits
-
-	.globl	doublediamond_in_a_loop
-	.type	doublediamond_in_a_loop,@function
-doublediamond_in_a_loop:                # @doublediamond_in_a_loop
-	.param  	i32, i32, i32
-	.result 	i32
-# BB#0:                                 # %entry
-BB11_1:                                 # %header
-                                        # =>This Inner Loop Header: Depth=1
-	loop    	BB11_7
-	i32.const	$push0=, 0
-	i32.store	$discard=, 0($2), $pop0
-	block   	BB11_6
-	block   	BB11_5
-	i32.const	$push6=, 0
-	i32.eq  	$push7=, $0, $pop6
-	br_if   	$pop7, BB11_5
-# BB#2:                                 # %false
-                                        #   in Loop: Header=BB11_1 Depth=1
-	i32.const	$push1=, 2
-	i32.store	$discard=, 0($2), $pop1
-	block   	BB11_4
-	i32.const	$push8=, 0
-	i32.eq  	$push9=, $1, $pop8
-	br_if   	$pop9, BB11_4
-# BB#3:                                 # %ff
-                                        #   in Loop: Header=BB11_1 Depth=1
-	i32.const	$push2=, 4
-	i32.store	$discard=, 0($2), $pop2
-	br      	BB11_6
-BB11_4:                                 # %ft
-                                        #   in Loop: Header=BB11_1 Depth=1
-	i32.const	$push3=, 3
-	i32.store	$discard=, 0($2), $pop3
-	br      	BB11_6
-BB11_5:                                 # %true
-                                        #   in Loop: Header=BB11_1 Depth=1
-	i32.const	$push4=, 1
-	i32.store	$discard=, 0($2), $pop4
-BB11_6:                                 # %exit
-                                        #   in Loop: Header=BB11_1 Depth=1
-	i32.const	$push5=, 5
-	i32.store	$discard=, 0($2), $pop5
-	br      	BB11_1
-BB11_7:
-func_end11:
-	.size	doublediamond_in_a_loop, func_end11-doublediamond_in_a_loop
-
-	.globl	test3
-	.type	test3,@function
-test3:                                  # @test3
-	.param  	i32
-# BB#0:                                 # %entry
-	i32.const	$push0=, 0
-	block   	BB12_2
-	i32.const	$push2=, 0
-	i32.eq  	$push3=, $pop0, $pop2
-	br_if   	$pop3, BB12_2
-# BB#1:                                 # %exit
-	return
-BB12_2:                                 # %outer
-                                        # =>This Loop Header: Depth=1
-                                        #     Child Loop BB12_3 Depth 2
-	loop    	BB12_5
-	br_if   	$0, BB12_5
-BB12_3:                                 # %inner
-                                        #   Parent Loop BB12_2 Depth=1
-                                        # =>  This Inner Loop Header: Depth=2
-	loop    	BB12_4
-	i32.ne  	$push1=, $0, $0
-	br_if   	$pop1, BB12_3
-BB12_4:                                 # %if.end
-                                        #   in Loop: Header=BB12_2 Depth=1
-	call    	bar
-	br      	BB12_2
-BB12_5:                                 # %unreachable
-	unreachable
-func_end12:
-	.size	test3, func_end12-test3
-
-	.globl	test4
-	.type	test4,@function
-test4:                                  # @test4
-	.param  	i32
-# BB#0:                                 # %entry
-	i32.const	$push0=, 3
-	i32.gt_s	$push1=, $0, $pop0
-	block   	BB13_8
-	block   	BB13_7
-	block   	BB13_4
-	br_if   	$pop1, BB13_4
-# BB#1:                                 # %entry
-	block   	BB13_3
-	i32.const	$push8=, 0
-	i32.eq  	$push9=, $0, $pop8
-	br_if   	$pop9, BB13_3
-# BB#2:                                 # %entry
-	i32.const	$push6=, 2
-	i32.ne  	$push7=, $0, $pop6
-	br_if   	$pop7, BB13_7
-BB13_3:                                 # %bb2
-	return
-BB13_4:                                 # %entry
-	i32.const	$push2=, 4
-	i32.eq  	$push3=, $0, $pop2
-	br_if   	$pop3, BB13_8
-# BB#5:                                 # %entry
-	i32.const	$push4=, 622
-	i32.ne  	$push5=, $0, $pop4
-	br_if   	$pop5, BB13_7
-# BB#6:                                 # %bb0
-	return
-BB13_7:                                 # %default
-	return
-BB13_8:                                 # %bb1
-	return
-func_end13:
-	.size	test4, func_end13-test4
-
-	.globl	test5
-	.type	test5,@function
-test5:                                  # @test5
-	.param  	i32, i32
-	.local  	i32, i32
-# BB#0:                                 # %entry
-BB14_1:                                 # %header
-                                        # =>This Inner Loop Header: Depth=1
-	block   	BB14_4
-	loop    	BB14_3
-	i32.const	$2=, 0
-	i32.store	$3=, 0($2), $2
-	i32.const	$2=, 1
-	i32.and 	$push0=, $0, $2
-	i32.const	$push5=, 0
-	i32.eq  	$push6=, $pop0, $pop5
-	br_if   	$pop6, BB14_4
-# BB#2:                                 # %more
-                                        #   in Loop: Header=BB14_1 Depth=1
-	i32.store	$push2=, 0($3), $2
-	i32.and 	$push3=, $1, $pop2
-	br_if   	$pop3, BB14_1
-BB14_3:                                 # %return
-	i32.const	$push4=, 3
-	i32.store	$discard=, 0($3), $pop4
-	return
-BB14_4:                                 # %alt
-	i32.const	$push1=, 2
-	i32.store	$discard=, 0($3), $pop1
-	return
-func_end14:
-	.size	test5, func_end14-test5
-
-	.globl	test6
-	.type	test6,@function
-test6:                                  # @test6
-	.param  	i32, i32
-	.local  	i32, i32, i32
-# BB#0:                                 # %entry
-BB15_1:                                 # %header
-                                        # =>This Inner Loop Header: Depth=1
-	block   	BB15_6
-	block   	BB15_5
-	loop    	BB15_4
-	i32.const	$2=, 0
-	i32.store	$discard=, 0($2), $2
-	i32.const	$3=, 1
-	i32.and 	$push0=, $0, $3
-	i32.const	$push4=, 0
-	i32.eq  	$push5=, $pop0, $pop4
-	br_if   	$pop5, BB15_6
-# BB#2:                                 # %more
-                                        #   in Loop: Header=BB15_1 Depth=1
-	i32.store	$discard=, 0($2), $3
-	i32.and 	$4=, $1, $3
-	i32.const	$push6=, 0
-	i32.eq  	$push7=, $4, $pop6
-	br_if   	$pop7, BB15_5
-# BB#3:                                 # %evenmore
-                                        #   in Loop: Header=BB15_1 Depth=1
-	i32.store	$discard=, 0($2), $3
-	br_if   	$4, BB15_1
-BB15_4:                                 # %return
-	i32.const	$push3=, 2
-	i32.store	$discard=, 0($2), $pop3
-	return
-BB15_5:                                 # %first
-	i32.const	$push1=, 3
-	i32.store	$discard=, 0($2), $pop1
-BB15_6:                                 # %second
-	i32.const	$push2=, 4
-	i32.store	$discard=, 0($2), $pop2
-	return
-func_end15:
-	.size	test6, func_end15-test6
-
-	.globl	test7
-	.type	test7,@function
-test7:                                  # @test7
-	.param  	i32, i32
-	.local  	i32, i32
-# BB#0:                                 # %entry
-	i32.const	$3=, 0
-	i32.store	$2=, 0($3), $3
-BB16_1:                                 # %loop
-                                        # =>This Inner Loop Header: Depth=1
-	loop    	BB16_5
-	i32.const	$push0=, 1
-	i32.store	$3=, 0($2), $pop0
-	i32.and 	$push1=, $0, $3
-	block   	BB16_4
-	i32.const	$push8=, 0
-	i32.eq  	$push9=, $pop1, $pop8
-	br_if   	$pop9, BB16_4
-# BB#2:                                 # %l1
-                                        #   in Loop: Header=BB16_1 Depth=1
-	i32.const	$push5=, 3
-	i32.store	$discard=, 0($2), $pop5
-	i32.and 	$push6=, $1, $3
-	br_if   	$pop6, BB16_1
-# BB#3:                                 # %u1
-	i32.const	$push7=, 5
-	i32.store	$discard=, 0($2), $pop7
-	unreachable
-BB16_4:                                 # %l0
-                                        #   in Loop: Header=BB16_1 Depth=1
-	i32.const	$push2=, 2
-	i32.store	$discard=, 0($2), $pop2
-	i32.and 	$push3=, $1, $3
-	br_if   	$pop3, BB16_1
-BB16_5:                                 # %u0
-	i32.const	$push4=, 4
-	i32.store	$discard=, 0($2), $pop4
-	unreachable
-func_end16:
-	.size	test7, func_end16-test7
-
-	.globl	test8
-	.type	test8,@function
-test8:                                  # @test8
-	.result 	i32
-	.local  	i32
-# BB#0:                                 # %bb
-	i32.const	$0=, 0
-BB17_1:                                 # %bb1
-                                        # =>This Loop Header: Depth=1
-                                        #     Child Loop BB17_3 Depth 2
-	loop    	BB17_4
-	block   	BB17_3
-	i32.const	$push0=, 0
-	i32.eq  	$push1=, $0, $pop0
-	br_if   	$pop1, BB17_3
-# BB#2:                                 # %bb3
-                                        #   in Loop: Header=BB17_1 Depth=1
-	i32.const	$push2=, 0
-	i32.eq  	$push3=, $0, $pop2
-	br_if   	$pop3, BB17_1
-BB17_3:                                 # %bb2
-                                        #   Parent Loop BB17_1 Depth=1
-                                        # =>  This Inner Loop Header: Depth=2
-	loop    	BB17_4
-	br_if   	$0, BB17_3
-	br      	BB17_1
-BB17_4:
-func_end17:
-	.size	test8, func_end17-test8
-
-	.globl	test9
-	.type	test9,@function
-test9:                                  # @test9
-	.local  	i32, i32
-# BB#0:                                 # %entry
-	i32.const	$1=, 0
-	i32.store	$0=, 0($1), $1
-BB18_1:                                 # %header
-                                        # =>This Loop Header: Depth=1
-                                        #     Child Loop BB18_2 Depth 2
-	loop    	BB18_5
-	i32.const	$push0=, 1
-	i32.store	$1=, 0($0), $pop0
-	i32.call	$push1=, a
-	i32.and 	$push2=, $pop1, $1
-	i32.const	$push13=, 0
-	i32.eq  	$push14=, $pop2, $pop13
-	br_if   	$pop14, BB18_5
-BB18_2:                                 # %header2
-                                        #   Parent Loop BB18_1 Depth=1
-                                        # =>  This Inner Loop Header: Depth=2
-	loop    	BB18_5
-	i32.const	$push4=, 2
-	i32.store	$discard=, 0($0), $pop4
-	i32.call	$push5=, a
-	i32.and 	$push6=, $pop5, $1
-	block   	BB18_4
-	i32.const	$push15=, 0
-	i32.eq  	$push16=, $pop6, $pop15
-	br_if   	$pop16, BB18_4
-# BB#3:                                 # %if.then
-                                        #   in Loop: Header=BB18_2 Depth=2
-	i32.const	$push10=, 3
-	i32.store	$discard=, 0($0), $pop10
-	i32.call	$push11=, a
-	i32.and 	$push12=, $pop11, $1
-	br_if   	$pop12, BB18_2
-	br      	BB18_1
-BB18_4:                                 # %if.else
-                                        #   in Loop: Header=BB18_2 Depth=2
-	i32.const	$push7=, 4
-	i32.store	$discard=, 0($0), $pop7
-	i32.call	$push8=, a
-	i32.and 	$push9=, $pop8, $1
-	br_if   	$pop9, BB18_2
-	br      	BB18_1
-BB18_5:                                 # %end
-	i32.const	$push3=, 5
-	i32.store	$discard=, 0($0), $pop3
-	return
-func_end18:
-	.size	test9, func_end18-test9
-
-	.globl	test10
-	.type	test10,@function
-test10:                                 # @test10
-	.local  	i32, i32, i32, i32, i32
-# BB#0:                                 # %bb0
-	i32.const	$0=, 2
-                                        # implicit-def: %vreg18
-BB19_1:                                 # %bb1
-                                        # =>This Loop Header: Depth=1
-                                        #     Child Loop BB19_2 Depth 2
-                                        #       Child Loop BB19_3 Depth 3
-	loop    	BB19_7
-	copy_local	$4=, $1
-	copy_local	$3=, $0
-	i32.const	$1=, 0
-	i32.const	$0=, 3
-	i32.const	$2=, 4
-	br_if   	$4, BB19_1
-BB19_2:                                 # %bb4
-                                        #   Parent Loop BB19_1 Depth=1
-                                        # =>  This Loop Header: Depth=2
-                                        #       Child Loop BB19_3 Depth 3
-	block   	BB19_6
-	loop    	BB19_5
-	copy_local	$4=, $3
-	copy_local	$3=, $2
-BB19_3:                                 # %bb5
-                                        #   Parent Loop BB19_1 Depth=1
-                                        #     Parent Loop BB19_2 Depth=2
-                                        # =>    This Inner Loop Header: Depth=3
-	loop    	BB19_5
-	copy_local	$2=, $4
-	i32.const	$push0=, 4
-	i32.gt_u	$push1=, $2, $pop0
-	br_if   	$pop1, BB19_1
-# BB#4:                                 # %bb5
-                                        #   in Loop: Header=BB19_3 Depth=3
-	copy_local	$4=, $3
-	tableswitch	$2, BB19_3, BB19_3, BB19_5, BB19_1, BB19_2, BB19_6
-BB19_5:                                 # %bb6
-	return
-BB19_6:                                 # %bb3.loopexit
-                                        #   in Loop: Header=BB19_1 Depth=1
-	i32.const	$1=, 1
-	br      	BB19_1
-BB19_7:
-func_end19:
-	.size	test10, func_end19-test10
-
-	.globl	test11
-	.type	test11,@function
-test11:                                 # @test11
-	.local  	i32
-# BB#0:                                 # %bb0
-	i32.const	$0=, 0
-	i32.store	$discard=, 0($0), $0
-	block   	BB20_8
-	block   	BB20_4
-	br_if   	$0, BB20_4
-# BB#1:                                 # %bb1
-	i32.const	$push4=, 1
-	i32.store	$discard=, 0($0), $pop4
-	block   	BB20_3
-	br_if   	$0, BB20_3
-# BB#2:                                 # %bb2
-	i32.const	$push5=, 2
-	i32.store	$discard=, 0($0), $pop5
-	br_if   	$0, BB20_8
-BB20_3:                                 # %bb3
-	i32.const	$push7=, 3
-	i32.store	$discard=, 0($0), $pop7
-	return
-BB20_4:                                 # %bb4
-	i32.const	$push0=, 4
-	i32.store	$discard=, 0($0), $pop0
-	block   	BB20_6
-	i32.const	$push8=, 0
-	i32.eq  	$push9=, $0, $pop8
-	br_if   	$pop9, BB20_6
-# BB#5:                                 # %bb8
-	i32.const	$push3=, 8
-	i32.store	$discard=, 0($0), $pop3
-	return
-BB20_6:                                 # %bb5
-	i32.const	$push1=, 5
-	i32.store	$discard=, 0($0), $pop1
-	br_if   	$0, BB20_8
-# BB#7:                                 # %bb6
-	i32.const	$push2=, 6
-	i32.store	$discard=, 0($0), $pop2
-	return
-BB20_8:                                 # %bb7
-	i32.const	$push6=, 7
-	i32.store	$discard=, 0($0), $pop6
-	return
-func_end20:
-	.size	test11, func_end20-test11
-
-	.globl	test12
-	.type	test12,@function
-test12:                                 # @test12
-	.param  	i32
-	.local  	i32
-# BB#0:                                 # %bb
-BB21_1:                                 # %bb1
-                                        # =>This Inner Loop Header: Depth=1
-	loop    	BB21_8
-	i32.load8_u	$1=, 0($0)
-	i32.const	$push0=, 103
-	i32.gt_s	$push1=, $1, $pop0
-	block   	BB21_7
-	block   	BB21_6
-	block   	BB21_4
-	br_if   	$pop1, BB21_4
-# BB#2:                                 # %bb1
-                                        #   in Loop: Header=BB21_1 Depth=1
-	i32.const	$push6=, 42
-	i32.eq  	$push7=, $1, $pop6
-	br_if   	$pop7, BB21_7
-# BB#3:                                 # %bb1
-                                        #   in Loop: Header=BB21_1 Depth=1
-	i32.const	$push8=, 76
-	i32.eq  	$push9=, $1, $pop8
-	br_if   	$pop9, BB21_7
-	br      	BB21_6
-BB21_4:                                 # %bb1
-                                        #   in Loop: Header=BB21_1 Depth=1
-	i32.const	$push2=, 108
-	i32.eq  	$push3=, $1, $pop2
-	br_if   	$pop3, BB21_7
-# BB#5:                                 # %bb1
-                                        #   in Loop: Header=BB21_1 Depth=1
-	i32.const	$push4=, 104
-	i32.eq  	$push5=, $1, $pop4
-	br_if   	$pop5, BB21_7
-BB21_6:                                 # %bb7
-	return
-BB21_7:                                 # %bb4
-                                        #   in Loop: Header=BB21_1 Depth=1
-	i32.const	$push10=, 1
-	i32.add 	$0=, $0, $pop10
-	br      	BB21_1
-BB21_8:
-func_end21:
-	.size	test12, func_end21-test12
-
-	.globl	test13
-	.type	test13,@function
-test13:                                 # @test13
-	.local  	i32
-# BB#0:                                 # %bb
-	i32.const	$push0=, 0
-	block   	BB22_2
-	i32.const	$push3=, 0
-	i32.eq  	$push4=, $pop0, $pop3
-	br_if   	$pop4, BB22_2
-# BB#1:                                 # %bb5
-	return
-BB22_2:                                 # %bb2
-	i32.const	$0=, 0
-	block   	BB22_4
-	br_if   	$0, BB22_4
-# BB#3:                                 # %bb3
-	i32.const	$0=, 0
-BB22_4:                                 # %bb4
-	i32.const	$push1=, 1
-	i32.and 	$push2=, $0, $pop1
-	block   	BB22_5
-	i32.const	$push5=, 0
-	i32.eq  	$push6=, $pop2, $pop5
-	br_if   	$pop6, BB22_5
-BB22_5:                                 # %bb1
-	unreachable
-func_end22:
-	.size	test13, func_end22-test13
-
-
-	.section	".note.GNU-stack","",@progbits
diff --git a/prototype-wasmate/test/comparisons_f32.s b/prototype-wasmate/test/comparisons_f32.s
deleted file mode 100644
index e41a9a2..0000000
--- a/prototype-wasmate/test/comparisons_f32.s
+++ /dev/null
@@ -1,186 +0,0 @@
-	.text
-	.file	"/s/llvm/llvm/test/CodeGen/WebAssembly/comparisons_f32.ll"
-	.globl	ord_f32
-	.type	ord_f32,@function
-ord_f32:                                # @ord_f32
-	.param  	f32, f32
-	.result 	i32
-# BB#0:
-	f32.eq  	$push1=, $0, $0
-	f32.eq  	$push0=, $1, $1
-	i32.and 	$push2=, $pop1, $pop0
-	return  	$pop2
-func_end0:
-	.size	ord_f32, func_end0-ord_f32
-
-	.globl	uno_f32
-	.type	uno_f32,@function
-uno_f32:                                # @uno_f32
-	.param  	f32, f32
-	.result 	i32
-# BB#0:
-	f32.ne  	$push1=, $0, $0
-	f32.ne  	$push0=, $1, $1
-	i32.or  	$push2=, $pop1, $pop0
-	return  	$pop2
-func_end1:
-	.size	uno_f32, func_end1-uno_f32
-
-	.globl	oeq_f32
-	.type	oeq_f32,@function
-oeq_f32:                                # @oeq_f32
-	.param  	f32, f32
-	.result 	i32
-# BB#0:
-	f32.eq  	$push0=, $0, $1
-	return  	$pop0
-func_end2:
-	.size	oeq_f32, func_end2-oeq_f32
-
-	.globl	une_f32
-	.type	une_f32,@function
-une_f32:                                # @une_f32
-	.param  	f32, f32
-	.result 	i32
-# BB#0:
-	f32.ne  	$push0=, $0, $1
-	return  	$pop0
-func_end3:
-	.size	une_f32, func_end3-une_f32
-
-	.globl	olt_f32
-	.type	olt_f32,@function
-olt_f32:                                # @olt_f32
-	.param  	f32, f32
-	.result 	i32
-# BB#0:
-	f32.lt  	$push0=, $0, $1
-	return  	$pop0
-func_end4:
-	.size	olt_f32, func_end4-olt_f32
-
-	.globl	ole_f32
-	.type	ole_f32,@function
-ole_f32:                                # @ole_f32
-	.param  	f32, f32
-	.result 	i32
-# BB#0:
-	f32.le  	$push0=, $0, $1
-	return  	$pop0
-func_end5:
-	.size	ole_f32, func_end5-ole_f32
-
-	.globl	ogt_f32
-	.type	ogt_f32,@function
-ogt_f32:                                # @ogt_f32
-	.param  	f32, f32
-	.result 	i32
-# BB#0:
-	f32.gt  	$push0=, $0, $1
-	return  	$pop0
-func_end6:
-	.size	ogt_f32, func_end6-ogt_f32
-
-	.globl	oge_f32
-	.type	oge_f32,@function
-oge_f32:                                # @oge_f32
-	.param  	f32, f32
-	.result 	i32
-# BB#0:
-	f32.ge  	$push0=, $0, $1
-	return  	$pop0
-func_end7:
-	.size	oge_f32, func_end7-oge_f32
-
-	.globl	ueq_f32
-	.type	ueq_f32,@function
-ueq_f32:                                # @ueq_f32
-	.param  	f32, f32
-	.result 	i32
-# BB#0:
-	f32.eq  	$push0=, $0, $1
-	f32.ne  	$push2=, $0, $0
-	f32.ne  	$push1=, $1, $1
-	i32.or  	$push3=, $pop2, $pop1
-	i32.or  	$push4=, $pop0, $pop3
-	return  	$pop4
-func_end8:
-	.size	ueq_f32, func_end8-ueq_f32
-
-	.globl	one_f32
-	.type	one_f32,@function
-one_f32:                                # @one_f32
-	.param  	f32, f32
-	.result 	i32
-# BB#0:
-	f32.ne  	$push0=, $0, $1
-	f32.eq  	$push2=, $0, $0
-	f32.eq  	$push1=, $1, $1
-	i32.and 	$push3=, $pop2, $pop1
-	i32.and 	$push4=, $pop0, $pop3
-	return  	$pop4
-func_end9:
-	.size	one_f32, func_end9-one_f32
-
-	.globl	ult_f32
-	.type	ult_f32,@function
-ult_f32:                                # @ult_f32
-	.param  	f32, f32
-	.result 	i32
-# BB#0:
-	f32.lt  	$push0=, $0, $1
-	f32.ne  	$push2=, $0, $0
-	f32.ne  	$push1=, $1, $1
-	i32.or  	$push3=, $pop2, $pop1
-	i32.or  	$push4=, $pop0, $pop3
-	return  	$pop4
-func_end10:
-	.size	ult_f32, func_end10-ult_f32
-
-	.globl	ule_f32
-	.type	ule_f32,@function
-ule_f32:                                # @ule_f32
-	.param  	f32, f32
-	.result 	i32
-# BB#0:
-	f32.le  	$push0=, $0, $1
-	f32.ne  	$push2=, $0, $0
-	f32.ne  	$push1=, $1, $1
-	i32.or  	$push3=, $pop2, $pop1
-	i32.or  	$push4=, $pop0, $pop3
-	return  	$pop4
-func_end11:
-	.size	ule_f32, func_end11-ule_f32
-
-	.globl	ugt_f32
-	.type	ugt_f32,@function
-ugt_f32:                                # @ugt_f32
-	.param  	f32, f32
-	.result 	i32
-# BB#0:
-	f32.gt  	$push0=, $0, $1
-	f32.ne  	$push2=, $0, $0
-	f32.ne  	$push1=, $1, $1
-	i32.or  	$push3=, $pop2, $pop1
-	i32.or  	$push4=, $pop0, $pop3
-	return  	$pop4
-func_end12:
-	.size	ugt_f32, func_end12-ugt_f32
-
-	.globl	uge_f32
-	.type	uge_f32,@function
-uge_f32:                                # @uge_f32
-	.param  	f32, f32
-	.result 	i32
-# BB#0:
-	f32.ge  	$push0=, $0, $1
-	f32.ne  	$push2=, $0, $0
-	f32.ne  	$push1=, $1, $1
-	i32.or  	$push3=, $pop2, $pop1
-	i32.or  	$push4=, $pop0, $pop3
-	return  	$pop4
-func_end13:
-	.size	uge_f32, func_end13-uge_f32
-
-
-	.section	".note.GNU-stack","",@progbits
diff --git a/prototype-wasmate/test/comparisons_f64.s b/prototype-wasmate/test/comparisons_f64.s
deleted file mode 100644
index d62b97b..0000000
--- a/prototype-wasmate/test/comparisons_f64.s
+++ /dev/null
@@ -1,186 +0,0 @@
-	.text
-	.file	"/s/llvm/llvm/test/CodeGen/WebAssembly/comparisons_f64.ll"
-	.globl	ord_f64
-	.type	ord_f64,@function
-ord_f64:                                # @ord_f64
-	.param  	f64, f64
-	.result 	i32
-# BB#0:
-	f64.eq  	$push1=, $0, $0
-	f64.eq  	$push0=, $1, $1
-	i32.and 	$push2=, $pop1, $pop0
-	return  	$pop2
-func_end0:
-	.size	ord_f64, func_end0-ord_f64
-
-	.globl	uno_f64
-	.type	uno_f64,@function
-uno_f64:                                # @uno_f64
-	.param  	f64, f64
-	.result 	i32
-# BB#0:
-	f64.ne  	$push1=, $0, $0
-	f64.ne  	$push0=, $1, $1
-	i32.or  	$push2=, $pop1, $pop0
-	return  	$pop2
-func_end1:
-	.size	uno_f64, func_end1-uno_f64
-
-	.globl	oeq_f64
-	.type	oeq_f64,@function
-oeq_f64:                                # @oeq_f64
-	.param  	f64, f64
-	.result 	i32
-# BB#0:
-	f64.eq  	$push0=, $0, $1
-	return  	$pop0
-func_end2:
-	.size	oeq_f64, func_end2-oeq_f64
-
-	.globl	une_f64
-	.type	une_f64,@function
-une_f64:                                # @une_f64
-	.param  	f64, f64
-	.result 	i32
-# BB#0:
-	f64.ne  	$push0=, $0, $1
-	return  	$pop0
-func_end3:
-	.size	une_f64, func_end3-une_f64
-
-	.globl	olt_f64
-	.type	olt_f64,@function
-olt_f64:                                # @olt_f64
-	.param  	f64, f64
-	.result 	i32
-# BB#0:
-	f64.lt  	$push0=, $0, $1
-	return  	$pop0
-func_end4:
-	.size	olt_f64, func_end4-olt_f64
-
-	.globl	ole_f64
-	.type	ole_f64,@function
-ole_f64:                                # @ole_f64
-	.param  	f64, f64
-	.result 	i32
-# BB#0:
-	f64.le  	$push0=, $0, $1
-	return  	$pop0
-func_end5:
-	.size	ole_f64, func_end5-ole_f64
-
-	.globl	ogt_f64
-	.type	ogt_f64,@function
-ogt_f64:                                # @ogt_f64
-	.param  	f64, f64
-	.result 	i32
-# BB#0:
-	f64.gt  	$push0=, $0, $1
-	return  	$pop0
-func_end6:
-	.size	ogt_f64, func_end6-ogt_f64
-
-	.globl	oge_f64
-	.type	oge_f64,@function
-oge_f64:                                # @oge_f64
-	.param  	f64, f64
-	.result 	i32
-# BB#0:
-	f64.ge  	$push0=, $0, $1
-	return  	$pop0
-func_end7:
-	.size	oge_f64, func_end7-oge_f64
-
-	.globl	ueq_f64
-	.type	ueq_f64,@function
-ueq_f64:                                # @ueq_f64
-	.param  	f64, f64
-	.result 	i32
-# BB#0:
-	f64.eq  	$push0=, $0, $1
-	f64.ne  	$push2=, $0, $0
-	f64.ne  	$push1=, $1, $1
-	i32.or  	$push3=, $pop2, $pop1
-	i32.or  	$push4=, $pop0, $pop3
-	return  	$pop4
-func_end8:
-	.size	ueq_f64, func_end8-ueq_f64
-
-	.globl	one_f64
-	.type	one_f64,@function
-one_f64:                                # @one_f64
-	.param  	f64, f64
-	.result 	i32
-# BB#0:
-	f64.ne  	$push0=, $0, $1
-	f64.eq  	$push2=, $0, $0
-	f64.eq  	$push1=, $1, $1
-	i32.and 	$push3=, $pop2, $pop1
-	i32.and 	$push4=, $pop0, $pop3
-	return  	$pop4
-func_end9:
-	.size	one_f64, func_end9-one_f64
-
-	.globl	ult_f64
-	.type	ult_f64,@function
-ult_f64:                                # @ult_f64
-	.param  	f64, f64
-	.result 	i32
-# BB#0:
-	f64.lt  	$push0=, $0, $1
-	f64.ne  	$push2=, $0, $0
-	f64.ne  	$push1=, $1, $1
-	i32.or  	$push3=, $pop2, $pop1
-	i32.or  	$push4=, $pop0, $pop3
-	return  	$pop4
-func_end10:
-	.size	ult_f64, func_end10-ult_f64
-
-	.globl	ule_f64
-	.type	ule_f64,@function
-ule_f64:                                # @ule_f64
-	.param  	f64, f64
-	.result 	i32
-# BB#0:
-	f64.le  	$push0=, $0, $1
-	f64.ne  	$push2=, $0, $0
-	f64.ne  	$push1=, $1, $1
-	i32.or  	$push3=, $pop2, $pop1
-	i32.or  	$push4=, $pop0, $pop3
-	return  	$pop4
-func_end11:
-	.size	ule_f64, func_end11-ule_f64
-
-	.globl	ugt_f64
-	.type	ugt_f64,@function
-ugt_f64:                                # @ugt_f64
-	.param  	f64, f64
-	.result 	i32
-# BB#0:
-	f64.gt  	$push0=, $0, $1
-	f64.ne  	$push2=, $0, $0
-	f64.ne  	$push1=, $1, $1
-	i32.or  	$push3=, $pop2, $pop1
-	i32.or  	$push4=, $pop0, $pop3
-	return  	$pop4
-func_end12:
-	.size	ugt_f64, func_end12-ugt_f64
-
-	.globl	uge_f64
-	.type	uge_f64,@function
-uge_f64:                                # @uge_f64
-	.param  	f64, f64
-	.result 	i32
-# BB#0:
-	f64.ge  	$push0=, $0, $1
-	f64.ne  	$push2=, $0, $0
-	f64.ne  	$push1=, $1, $1
-	i32.or  	$push3=, $pop2, $pop1
-	i32.or  	$push4=, $pop0, $pop3
-	return  	$pop4
-func_end13:
-	.size	uge_f64, func_end13-uge_f64
-
-
-	.section	".note.GNU-stack","",@progbits
diff --git a/prototype-wasmate/test/comparisons_i32.s b/prototype-wasmate/test/comparisons_i32.s
deleted file mode 100644
index fe6948a..0000000
--- a/prototype-wasmate/test/comparisons_i32.s
+++ /dev/null
@@ -1,114 +0,0 @@
-	.text
-	.file	"/s/llvm/llvm/test/CodeGen/WebAssembly/comparisons_i32.ll"
-	.globl	eq_i32
-	.type	eq_i32,@function
-eq_i32:                                 # @eq_i32
-	.param  	i32, i32
-	.result 	i32
-# BB#0:
-	i32.eq  	$push0=, $0, $1
-	return  	$pop0
-func_end0:
-	.size	eq_i32, func_end0-eq_i32
-
-	.globl	ne_i32
-	.type	ne_i32,@function
-ne_i32:                                 # @ne_i32
-	.param  	i32, i32
-	.result 	i32
-# BB#0:
-	i32.ne  	$push0=, $0, $1
-	return  	$pop0
-func_end1:
-	.size	ne_i32, func_end1-ne_i32
-
-	.globl	slt_i32
-	.type	slt_i32,@function
-slt_i32:                                # @slt_i32
-	.param  	i32, i32
-	.result 	i32
-# BB#0:
-	i32.lt_s	$push0=, $0, $1
-	return  	$pop0
-func_end2:
-	.size	slt_i32, func_end2-slt_i32
-
-	.globl	sle_i32
-	.type	sle_i32,@function
-sle_i32:                                # @sle_i32
-	.param  	i32, i32
-	.result 	i32
-# BB#0:
-	i32.le_s	$push0=, $0, $1
-	return  	$pop0
-func_end3:
-	.size	sle_i32, func_end3-sle_i32
-
-	.globl	ult_i32
-	.type	ult_i32,@function
-ult_i32:                                # @ult_i32
-	.param  	i32, i32
-	.result 	i32
-# BB#0:
-	i32.lt_u	$push0=, $0, $1
-	return  	$pop0
-func_end4:
-	.size	ult_i32, func_end4-ult_i32
-
-	.globl	ule_i32
-	.type	ule_i32,@function
-ule_i32:                                # @ule_i32
-	.param  	i32, i32
-	.result 	i32
-# BB#0:
-	i32.le_u	$push0=, $0, $1
-	return  	$pop0
-func_end5:
-	.size	ule_i32, func_end5-ule_i32
-
-	.globl	sgt_i32
-	.type	sgt_i32,@function
-sgt_i32:                                # @sgt_i32
-	.param  	i32, i32
-	.result 	i32
-# BB#0:
-	i32.gt_s	$push0=, $0, $1
-	return  	$pop0
-func_end6:
-	.size	sgt_i32, func_end6-sgt_i32
-
-	.globl	sge_i32
-	.type	sge_i32,@function
-sge_i32:                                # @sge_i32
-	.param  	i32, i32
-	.result 	i32
-# BB#0:
-	i32.ge_s	$push0=, $0, $1
-	return  	$pop0
-func_end7:
-	.size	sge_i32, func_end7-sge_i32
-
-	.globl	ugt_i32
-	.type	ugt_i32,@function
-ugt_i32:                                # @ugt_i32
-	.param  	i32, i32
-	.result 	i32
-# BB#0:
-	i32.gt_u	$push0=, $0, $1
-	return  	$pop0
-func_end8:
-	.size	ugt_i32, func_end8-ugt_i32
-
-	.globl	uge_i32
-	.type	uge_i32,@function
-uge_i32:                                # @uge_i32
-	.param  	i32, i32
-	.result 	i32
-# BB#0:
-	i32.ge_u	$push0=, $0, $1
-	return  	$pop0
-func_end9:
-	.size	uge_i32, func_end9-uge_i32
-
-
-	.section	".note.GNU-stack","",@progbits
diff --git a/prototype-wasmate/test/comparisons_i64.s b/prototype-wasmate/test/comparisons_i64.s
deleted file mode 100644
index 7e9e8b4..0000000
--- a/prototype-wasmate/test/comparisons_i64.s
+++ /dev/null
@@ -1,114 +0,0 @@
-	.text
-	.file	"/s/llvm/llvm/test/CodeGen/WebAssembly/comparisons_i64.ll"
-	.globl	eq_i64
-	.type	eq_i64,@function
-eq_i64:                                 # @eq_i64
-	.param  	i64, i64
-	.result 	i32
-# BB#0:
-	i64.eq  	$push0=, $0, $1
-	return  	$pop0
-func_end0:
-	.size	eq_i64, func_end0-eq_i64
-
-	.globl	ne_i64
-	.type	ne_i64,@function
-ne_i64:                                 # @ne_i64
-	.param  	i64, i64
-	.result 	i32
-# BB#0:
-	i64.ne  	$push0=, $0, $1
-	return  	$pop0
-func_end1:
-	.size	ne_i64, func_end1-ne_i64
-
-	.globl	slt_i64
-	.type	slt_i64,@function
-slt_i64:                                # @slt_i64
-	.param  	i64, i64
-	.result 	i32
-# BB#0:
-	i64.lt_s	$push0=, $0, $1
-	return  	$pop0
-func_end2:
-	.size	slt_i64, func_end2-slt_i64
-
-	.globl	sle_i64
-	.type	sle_i64,@function
-sle_i64:                                # @sle_i64
-	.param  	i64, i64
-	.result 	i32
-# BB#0:
-	i64.le_s	$push0=, $0, $1
-	return  	$pop0
-func_end3:
-	.size	sle_i64, func_end3-sle_i64
-
-	.globl	ult_i64
-	.type	ult_i64,@function
-ult_i64:                                # @ult_i64
-	.param  	i64, i64
-	.result 	i32
-# BB#0:
-	i64.lt_u	$push0=, $0, $1
-	return  	$pop0
-func_end4:
-	.size	ult_i64, func_end4-ult_i64
-
-	.globl	ule_i64
-	.type	ule_i64,@function
-ule_i64:                                # @ule_i64
-	.param  	i64, i64
-	.result 	i32
-# BB#0:
-	i64.le_u	$push0=, $0, $1
-	return  	$pop0
-func_end5:
-	.size	ule_i64, func_end5-ule_i64
-
-	.globl	sgt_i64
-	.type	sgt_i64,@function
-sgt_i64:                                # @sgt_i64
-	.param  	i64, i64
-	.result 	i32
-# BB#0:
-	i64.gt_s	$push0=, $0, $1
-	return  	$pop0
-func_end6:
-	.size	sgt_i64, func_end6-sgt_i64
-
-	.globl	sge_i64
-	.type	sge_i64,@function
-sge_i64:                                # @sge_i64
-	.param  	i64, i64
-	.result 	i32
-# BB#0:
-	i64.ge_s	$push0=, $0, $1
-	return  	$pop0
-func_end7:
-	.size	sge_i64, func_end7-sge_i64
-
-	.globl	ugt_i64
-	.type	ugt_i64,@function
-ugt_i64:                                # @ugt_i64
-	.param  	i64, i64
-	.result 	i32
-# BB#0:
-	i64.gt_u	$push0=, $0, $1
-	return  	$pop0
-func_end8:
-	.size	ugt_i64, func_end8-ugt_i64
-
-	.globl	uge_i64
-	.type	uge_i64,@function
-uge_i64:                                # @uge_i64
-	.param  	i64, i64
-	.result 	i32
-# BB#0:
-	i64.ge_u	$push0=, $0, $1
-	return  	$pop0
-func_end9:
-	.size	uge_i64, func_end9-uge_i64
-
-
-	.section	".note.GNU-stack","",@progbits
diff --git a/prototype-wasmate/test/conv.s b/prototype-wasmate/test/conv.s
deleted file mode 100644
index f21450d..0000000
--- a/prototype-wasmate/test/conv.s
+++ /dev/null
@@ -1,292 +0,0 @@
-	.text
-	.file	"/s/llvm/llvm/test/CodeGen/WebAssembly/conv.ll"
-	.globl	i32_wrap_i64
-	.type	i32_wrap_i64,@function
-i32_wrap_i64:                           # @i32_wrap_i64
-	.param  	i64
-	.result 	i32
-# BB#0:
-	i32.wrap/i64	$push0=, $0
-	return  	$pop0
-func_end0:
-	.size	i32_wrap_i64, func_end0-i32_wrap_i64
-
-	.globl	i64_extend_s_i32
-	.type	i64_extend_s_i32,@function
-i64_extend_s_i32:                       # @i64_extend_s_i32
-	.param  	i32
-	.result 	i64
-# BB#0:
-	i64.extend_s/i32	$push0=, $0
-	return  	$pop0
-func_end1:
-	.size	i64_extend_s_i32, func_end1-i64_extend_s_i32
-
-	.globl	i64_extend_u_i32
-	.type	i64_extend_u_i32,@function
-i64_extend_u_i32:                       # @i64_extend_u_i32
-	.param  	i32
-	.result 	i64
-# BB#0:
-	i64.extend_u/i32	$push0=, $0
-	return  	$pop0
-func_end2:
-	.size	i64_extend_u_i32, func_end2-i64_extend_u_i32
-
-	.globl	i32_trunc_s_f32
-	.type	i32_trunc_s_f32,@function
-i32_trunc_s_f32:                        # @i32_trunc_s_f32
-	.param  	f32
-	.result 	i32
-# BB#0:
-	i32.trunc_s/f32	$push0=, $0
-	return  	$pop0
-func_end3:
-	.size	i32_trunc_s_f32, func_end3-i32_trunc_s_f32
-
-	.globl	i32_trunc_u_f32
-	.type	i32_trunc_u_f32,@function
-i32_trunc_u_f32:                        # @i32_trunc_u_f32
-	.param  	f32
-	.result 	i32
-# BB#0:
-	i32.trunc_u/f32	$push0=, $0
-	return  	$pop0
-func_end4:
-	.size	i32_trunc_u_f32, func_end4-i32_trunc_u_f32
-
-	.globl	i32_trunc_s_f64
-	.type	i32_trunc_s_f64,@function
-i32_trunc_s_f64:                        # @i32_trunc_s_f64
-	.param  	f64
-	.result 	i32
-# BB#0:
-	i32.trunc_s/f64	$push0=, $0
-	return  	$pop0
-func_end5:
-	.size	i32_trunc_s_f64, func_end5-i32_trunc_s_f64
-
-	.globl	i32_trunc_u_f64
-	.type	i32_trunc_u_f64,@function
-i32_trunc_u_f64:                        # @i32_trunc_u_f64
-	.param  	f64
-	.result 	i32
-# BB#0:
-	i32.trunc_u/f64	$push0=, $0
-	return  	$pop0
-func_end6:
-	.size	i32_trunc_u_f64, func_end6-i32_trunc_u_f64
-
-	.globl	i64_trunc_s_f32
-	.type	i64_trunc_s_f32,@function
-i64_trunc_s_f32:                        # @i64_trunc_s_f32
-	.param  	f32
-	.result 	i64
-# BB#0:
-	i64.trunc_s/f32	$push0=, $0
-	return  	$pop0
-func_end7:
-	.size	i64_trunc_s_f32, func_end7-i64_trunc_s_f32
-
-	.globl	i64_trunc_u_f32
-	.type	i64_trunc_u_f32,@function
-i64_trunc_u_f32:                        # @i64_trunc_u_f32
-	.param  	f32
-	.result 	i64
-# BB#0:
-	i64.trunc_u/f32	$push0=, $0
-	return  	$pop0
-func_end8:
-	.size	i64_trunc_u_f32, func_end8-i64_trunc_u_f32
-
-	.globl	i64_trunc_s_f64
-	.type	i64_trunc_s_f64,@function
-i64_trunc_s_f64:                        # @i64_trunc_s_f64
-	.param  	f64
-	.result 	i64
-# BB#0:
-	i64.trunc_s/f64	$push0=, $0
-	return  	$pop0
-func_end9:
-	.size	i64_trunc_s_f64, func_end9-i64_trunc_s_f64
-
-	.globl	i64_trunc_u_f64
-	.type	i64_trunc_u_f64,@function
-i64_trunc_u_f64:                        # @i64_trunc_u_f64
-	.param  	f64
-	.result 	i64
-# BB#0:
-	i64.trunc_u/f64	$push0=, $0
-	return  	$pop0
-func_end10:
-	.size	i64_trunc_u_f64, func_end10-i64_trunc_u_f64
-
-	.globl	f32_convert_s_i32
-	.type	f32_convert_s_i32,@function
-f32_convert_s_i32:                      # @f32_convert_s_i32
-	.param  	i32
-	.result 	f32
-# BB#0:
-	f32.convert_s/i32	$push0=, $0
-	return  	$pop0
-func_end11:
-	.size	f32_convert_s_i32, func_end11-f32_convert_s_i32
-
-	.globl	f32_convert_u_i32
-	.type	f32_convert_u_i32,@function
-f32_convert_u_i32:                      # @f32_convert_u_i32
-	.param  	i32
-	.result 	f32
-# BB#0:
-	f32.convert_u/i32	$push0=, $0
-	return  	$pop0
-func_end12:
-	.size	f32_convert_u_i32, func_end12-f32_convert_u_i32
-
-	.globl	f64_convert_s_i32
-	.type	f64_convert_s_i32,@function
-f64_convert_s_i32:                      # @f64_convert_s_i32
-	.param  	i32
-	.result 	f64
-# BB#0:
-	f64.convert_s/i32	$push0=, $0
-	return  	$pop0
-func_end13:
-	.size	f64_convert_s_i32, func_end13-f64_convert_s_i32
-
-	.globl	f64_convert_u_i32
-	.type	f64_convert_u_i32,@function
-f64_convert_u_i32:                      # @f64_convert_u_i32
-	.param  	i32
-	.result 	f64
-# BB#0:
-	f64.convert_u/i32	$push0=, $0
-	return  	$pop0
-func_end14:
-	.size	f64_convert_u_i32, func_end14-f64_convert_u_i32
-
-	.globl	f32_convert_s_i64
-	.type	f32_convert_s_i64,@function
-f32_convert_s_i64:                      # @f32_convert_s_i64
-	.param  	i64
-	.result 	f32
-# BB#0:
-	f32.convert_s/i64	$push0=, $0
-	return  	$pop0
-func_end15:
-	.size	f32_convert_s_i64, func_end15-f32_convert_s_i64
-
-	.globl	f32_convert_u_i64
-	.type	f32_convert_u_i64,@function
-f32_convert_u_i64:                      # @f32_convert_u_i64
-	.param  	i64
-	.result 	f32
-# BB#0:
-	f32.convert_u/i64	$push0=, $0
-	return  	$pop0
-func_end16:
-	.size	f32_convert_u_i64, func_end16-f32_convert_u_i64
-
-	.globl	f64_convert_s_i64
-	.type	f64_convert_s_i64,@function
-f64_convert_s_i64:                      # @f64_convert_s_i64
-	.param  	i64
-	.result 	f64
-# BB#0:
-	f64.convert_s/i64	$push0=, $0
-	return  	$pop0
-func_end17:
-	.size	f64_convert_s_i64, func_end17-f64_convert_s_i64
-
-	.globl	f64_convert_u_i64
-	.type	f64_convert_u_i64,@function
-f64_convert_u_i64:                      # @f64_convert_u_i64
-	.param  	i64
-	.result 	f64
-# BB#0:
-	f64.convert_u/i64	$push0=, $0
-	return  	$pop0
-func_end18:
-	.size	f64_convert_u_i64, func_end18-f64_convert_u_i64
-
-	.globl	f64_promote_f32
-	.type	f64_promote_f32,@function
-f64_promote_f32:                        # @f64_promote_f32
-	.param  	f32
-	.result 	f64
-# BB#0:
-	f64.promote/f32	$push0=, $0
-	return  	$pop0
-func_end19:
-	.size	f64_promote_f32, func_end19-f64_promote_f32
-
-	.globl	f32_demote_f64
-	.type	f32_demote_f64,@function
-f32_demote_f64:                         # @f32_demote_f64
-	.param  	f64
-	.result 	f32
-# BB#0:
-	f32.demote/f64	$push0=, $0
-	return  	$pop0
-func_end20:
-	.size	f32_demote_f64, func_end20-f32_demote_f64
-
-	.globl	anyext
-	.type	anyext,@function
-anyext:                                 # @anyext
-	.param  	i32
-	.result 	i64
-# BB#0:
-	i64.extend_u/i32	$push0=, $0
-	i64.const	$push1=, 32
-	i64.shl 	$push2=, $pop0, $pop1
-	return  	$pop2
-func_end21:
-	.size	anyext, func_end21-anyext
-
-	.globl	bitcast_i32_to_float
-	.type	bitcast_i32_to_float,@function
-bitcast_i32_to_float:                   # @bitcast_i32_to_float
-	.param  	i32
-	.result 	f32
-# BB#0:
-	f32.reinterpret/i32	$push0=, $0
-	return  	$pop0
-func_end22:
-	.size	bitcast_i32_to_float, func_end22-bitcast_i32_to_float
-
-	.globl	bitcast_float_to_i32
-	.type	bitcast_float_to_i32,@function
-bitcast_float_to_i32:                   # @bitcast_float_to_i32
-	.param  	f32
-	.result 	i32
-# BB#0:
-	i32.reinterpret/f32	$push0=, $0
-	return  	$pop0
-func_end23:
-	.size	bitcast_float_to_i32, func_end23-bitcast_float_to_i32
-
-	.globl	bitcast_i64_to_double
-	.type	bitcast_i64_to_double,@function
-bitcast_i64_to_double:                  # @bitcast_i64_to_double
-	.param  	i64
-	.result 	f64
-# BB#0:
-	f64.reinterpret/i64	$push0=, $0
-	return  	$pop0
-func_end24:
-	.size	bitcast_i64_to_double, func_end24-bitcast_i64_to_double
-
-	.globl	bitcast_double_to_i64
-	.type	bitcast_double_to_i64,@function
-bitcast_double_to_i64:                  # @bitcast_double_to_i64
-	.param  	f64
-	.result 	i64
-# BB#0:
-	i64.reinterpret/f64	$push0=, $0
-	return  	$pop0
-func_end25:
-	.size	bitcast_double_to_i64, func_end25-bitcast_double_to_i64
-
-
-	.section	".note.GNU-stack","",@progbits
diff --git a/prototype-wasmate/test/copysign-casts.s b/prototype-wasmate/test/copysign-casts.s
deleted file mode 100644
index cfb3363..0000000
--- a/prototype-wasmate/test/copysign-casts.s
+++ /dev/null
@@ -1,28 +0,0 @@
-	.text
-	.file	"/s/llvm/llvm/test/CodeGen/WebAssembly/copysign-casts.ll"
-	.globl	fold_promote
-	.type	fold_promote,@function
-fold_promote:                           # @fold_promote
-	.param  	f64, f32
-	.result 	f64
-# BB#0:
-	f64.promote/f32	$push0=, $1
-	f64.copysign	$push1=, $0, $pop0
-	return  	$pop1
-func_end0:
-	.size	fold_promote, func_end0-fold_promote
-
-	.globl	fold_demote
-	.type	fold_demote,@function
-fold_demote:                            # @fold_demote
-	.param  	f32, f64
-	.result 	f32
-# BB#0:
-	f32.demote/f64	$push0=, $1
-	f32.copysign	$push1=, $0, $pop0
-	return  	$pop1
-func_end1:
-	.size	fold_demote, func_end1-fold_demote
-
-
-	.section	".note.GNU-stack","",@progbits
diff --git a/prototype-wasmate/test/cpus.s b/prototype-wasmate/test/cpus.s
deleted file mode 100644
index 171252e..0000000
--- a/prototype-wasmate/test/cpus.s
+++ /dev/null
@@ -1,14 +0,0 @@
-	.text
-	.file	"/usr/local/google/home/binji/dev/github/wasm-experimental/prototype-wasmate/third_party/llvm/test/CodeGen/WebAssembly/cpus.ll"
-	.globl	f
-	.type	f,@function
-f:                                      # @f
-	.param  	i32
-	.result 	i32
-# BB#0:
-	return  	$0
-func_end0:
-	.size	f, func_end0-f
-
-
-	.section	".note.GNU-stack","",@progbits
diff --git a/prototype-wasmate/test/data-offset-folding.s b/prototype-wasmate/test/data-offset-folding.s
deleted file mode 100644
index 3e3a7fe..0000000
--- a/prototype-wasmate/test/data-offset-folding.s
+++ /dev/null
@@ -1,19 +0,0 @@
-        .data
-        .type   pad,@object             # @pad
-        .globl  pad
-        .align  2
-pad:
-        .int32  0
-        .type   arr,@object             # @arr
-        .globl  arr
-        .align  4
-arr:
-        .zero   400
-        .size   arr, 400
-
-        .type   ptr,@object             # @ptr
-        .globl  ptr
-        .align  2
-ptr:
-        .int32  arr+80
-        .size   ptr, 4
diff --git a/prototype-wasmate/test/dead-vreg.s b/prototype-wasmate/test/dead-vreg.s
deleted file mode 100644
index 8198e32..0000000
--- a/prototype-wasmate/test/dead-vreg.s
+++ /dev/null
@@ -1,51 +0,0 @@
-	.text
-	.file	"/s/llvm/llvm/test/CodeGen/WebAssembly/dead-vreg.ll"
-	.globl	foo
-	.type	foo,@function
-foo:                                    # @foo
-	.param  	i32, i32, i32
-	.local  	i32, i32, i32, i32, i32, i32, i32
-# BB#0:                                 # %entry
-	i32.const	$4=, 1
-	i32.lt_s	$push0=, $2, $4
-	block   	BB0_5
-	br_if   	$pop0, BB0_5
-# BB#1:                                 # %for.cond.1.preheader.lr.ph
-	i32.const	$push1=, 2
-	i32.shl 	$3=, $1, $pop1
-	i32.const	$5=, 0
-	copy_local	$6=, $5
-BB0_2:                                  # %for.cond.1.preheader
-                                        # =>This Loop Header: Depth=1
-                                        #     Child Loop BB0_3 Depth 2
-	loop    	BB0_5
-	i32.lt_s	$push2=, $1, $4
-	copy_local	$7=, $5
-	copy_local	$8=, $0
-	copy_local	$9=, $1
-	block   	BB0_4
-	br_if   	$pop2, BB0_4
-BB0_3:                                  # %for.body.3
-                                        #   Parent Loop BB0_2 Depth=1
-                                        # =>  This Inner Loop Header: Depth=2
-	loop    	BB0_4
-	i32.const	$push3=, -1
-	i32.add 	$9=, $9, $pop3
-	i32.store	$discard=, 0($8), $7
-	i32.const	$push4=, 4
-	i32.add 	$8=, $8, $pop4
-	i32.add 	$7=, $7, $6
-	br_if   	$9, BB0_3
-BB0_4:                                  # %for.inc.5
-                                        #   in Loop: Header=BB0_2 Depth=1
-	i32.add 	$6=, $6, $4
-	i32.ne  	$push5=, $6, $2
-	i32.add 	$0=, $0, $3
-	br_if   	$pop5, BB0_2
-BB0_5:                                  # %for.end.7
-	return
-func_end0:
-	.size	foo, func_end0-foo
-
-
-	.section	".note.GNU-stack","",@progbits
diff --git a/prototype-wasmate/test/exit.s b/prototype-wasmate/test/exit.s
deleted file mode 100644
index 4724afc..0000000
--- a/prototype-wasmate/test/exit.s
+++ /dev/null
@@ -1,12 +0,0 @@
-.text
-	.file	"/s/newgit/native_client/toolchain_build/src/pnacl-gcc/gcc/testsuite/gcc.c-torture/execute/enum-1.c"
-	.globl	main
-	.type	main,@function
-main:                                   # @main
-	.result i32
-	.local i32
-# BB#0:                                 # %entry
-	i32.const $push0=, 0
-	call exit, $pop0
-func_end0:
-	.size	main, func_end0-main
diff --git a/prototype-wasmate/test/expected-output/alternate-lcomm.wast b/prototype-wasmate/test/expected-output/alternate-lcomm.wast
deleted file mode 100644
index 2a60063..0000000
--- a/prototype-wasmate/test/expected-output/alternate-lcomm.wast
+++ /dev/null
@@ -1,11 +0,0 @@
-;; This file was generated by wasmate.py, which is a script that converts
-;; from the "flat" text assembly syntax emitted by LLVM into the s-expression
-;; syntax expected by the spec repository.
-;;
-;; Note: this is a hack. A real toolchain will eventually be needed.
-;;
-
-(module
-  (memory 4 4
-  )
-)
diff --git a/prototype-wasmate/test/expected-output/call.wast b/prototype-wasmate/test/expected-output/call.wast
deleted file mode 100644
index f8b3a4f..0000000
--- a/prototype-wasmate/test/expected-output/call.wast
+++ /dev/null
@@ -1,82 +0,0 @@
-;; This file was generated by wasmate.py, which is a script that converts
-;; from the "flat" text assembly syntax emitted by LLVM into the s-expression
-;; syntax expected by the spec repository.
-;;
-;; Note: this is a hack. A real toolchain will eventually be needed.
-;;
-
-(module
-  (export "call_i32_nullary" $call_i32_nullary)
-  (export "call_i64_nullary" $call_i64_nullary)
-  (export "call_float_nullary" $call_float_nullary)
-  (export "call_double_nullary" $call_double_nullary)
-  (export "call_void_nullary" $call_void_nullary)
-  (export "call_i32_unary" $call_i32_unary)
-  (export "call_i32_binary" $call_i32_binary)
-  (export "call_indirect_void" $call_indirect_void)
-  (export "call_indirect_i32" $call_indirect_i32)
-  (export "tail_call_void_nullary" $tail_call_void_nullary)
-  (export "fastcc_tail_call_void_nullary" $fastcc_tail_call_void_nullary)
-  (export "coldcc_tail_call_void_nullary" $coldcc_tail_call_void_nullary)
-  (func $call_i32_nullary
-    (result i32)
-    (return (call_import $i32_nullary))
-  )
-  (func $call_i64_nullary
-    (result i64)
-    (return (call_import $i64_nullary))
-  )
-  (func $call_float_nullary
-    (result f32)
-    (return (call_import $float_nullary))
-  )
-  (func $call_double_nullary
-    (result f64)
-    (return (call_import $double_nullary))
-  )
-  (func $call_void_nullary
-    (call_import $void_nullary)
-    (return)
-  )
-  (func $call_i32_unary
-    (param i32)
-    (result i32)
-    (return (call_import $i32_unary (get_local 0)))
-  )
-  (func $call_i32_binary
-    (param i32) (param i32)
-    (result i32)
-    (return (call_import $i32_binary (get_local 0) (get_local 1)))
-  )
-  (func $call_indirect_void
-    (param i32)
-    (call_indirect (get_local 0))
-    (return)
-  )
-  (func $call_indirect_i32
-    (param i32)
-    (result i32)
-    (return (call_indirect (get_local 0)))
-  )
-  (func $tail_call_void_nullary
-    (call_import $void_nullary)
-    (return)
-  )
-  (func $fastcc_tail_call_void_nullary
-    (call_import $void_nullary)
-    (return)
-  )
-  (func $coldcc_tail_call_void_nullary
-    (call_import $void_nullary)
-    (return)
-  )
-  (import $void_nullary "misctest" "void_nullary")
-  (import $float_nullary "misctest" "float_nullary" (result f32))
-  (import $i32_unary "misctest" "i32_unary" (param i32) (result i32))
-  (import $i32_nullary "misctest" "i32_nullary" (result i32))
-  (import $double_nullary "misctest" "double_nullary" (result f64))
-  (import $i64_nullary "misctest" "i64_nullary" (result i64))
-  (import $i32_binary "misctest" "i32_binary" (param i32 i32) (result i32))
-  (memory 0 0
-  )
-)
diff --git a/prototype-wasmate/test/expected-output/cfg-stackify.wast b/prototype-wasmate/test/expected-output/cfg-stackify.wast
deleted file mode 100644
index e5e23b5..0000000
--- a/prototype-wasmate/test/expected-output/cfg-stackify.wast
+++ /dev/null
@@ -1,438 +0,0 @@
-;; This file was generated by wasmate.py, which is a script that converts
-;; from the "flat" text assembly syntax emitted by LLVM into the s-expression
-;; syntax expected by the spec repository.
-;;
-;; Note: this is a hack. A real toolchain will eventually be needed.
-;;
-
-(module
-  (export "test0" $test0)
-  (export "test1" $test1)
-  (export "test2" $test2)
-  (export "doublediamond" $doublediamond)
-  (export "triangle" $triangle)
-  (export "diamond" $diamond)
-  (export "single_block" $single_block)
-  (export "minimal_loop" $minimal_loop)
-  (export "simple_loop" $simple_loop)
-  (export "doubletriangle" $doubletriangle)
-  (export "ifelse_earlyexits" $ifelse_earlyexits)
-  (export "doublediamond_in_a_loop" $doublediamond_in_a_loop)
-  (export "test3" $test3)
-  (export "test4" $test4)
-  (export "test5" $test5)
-  (export "test6" $test6)
-  (export "test7" $test7)
-  (export "test8" $test8)
-  (export "test9" $test9)
-  (export "test10" $test10)
-  (export "test11" $test11)
-  (export "test12" $test12)
-  (export "test13" $test13)
-  (func $test0
-    (param i32)
-    (local i32)
-    (set_local 1 (i32.const 0))
-    (loop $BB0_3 $BB0_1
-      (set_local 1 (i32.add (get_local 1) (i32.const 1)))
-      (br_if (i32.ge_s (get_local 1) (get_local 0)) $BB0_3)
-      (call_import $something)
-      (br $BB0_1)
-    )
-    (return)
-  )
-  (func $test1
-    (param i32)
-    (local i32)
-    (set_local 1 (i32.const 0))
-    (loop $BB1_3 $BB1_1
-      (set_local 1 (i32.add (get_local 1) (i32.const 1)))
-      (br_if (i32.ge_s (get_local 1) (get_local 0)) $BB1_3)
-      (call_import $something)
-      (br $BB1_1)
-    )
-    (return)
-  )
-  (func $test2
-    (param i32) (param i32)
-    (block $BB2_2
-      (br_if (i32.lt_s (get_local 1) (i32.const 1)) $BB2_2)
-      (loop $BB2_2 $BB2_1
-        (f64.store offset=0 (get_local 0) (f64.mul (f64.load offset=0 (get_local 0)) (f64.const 0x1.999999999999ap1)))
-        (set_local 1 (i32.add (get_local 1) (i32.const -1)))
-        (set_local 0 (i32.add (get_local 0) (i32.const 8)))
-        (br_if (get_local 1) $BB2_1)
-      )
-    )
-    (return)
-  )
-  (func $doublediamond
-    (param i32) (param i32) (param i32)
-    (result i32)
-    (local i32)
-    (set_local 3 (i32.store offset=0 (get_local 2) (i32.const 0)))
-    (block $BB3_5
-      (block $BB3_4
-        (br_if (i32.eq (get_local 0) (i32.const 0)) $BB3_4)
-        (i32.store offset=0 (get_local 2) (i32.const 2))
-        (block $BB3_3
-          (br_if (i32.eq (get_local 1) (i32.const 0)) $BB3_3)
-          (i32.store offset=0 (get_local 2) (i32.const 4))
-          (br $BB3_5)
-        )
-        (i32.store offset=0 (get_local 2) (i32.const 3))
-        (br $BB3_5)
-      )
-      (i32.store offset=0 (get_local 2) (i32.const 1))
-    )
-    (i32.store offset=0 (get_local 2) (i32.const 5))
-    (return (get_local 3))
-  )
-  (func $triangle
-    (param i32) (param i32)
-    (result i32)
-    (local i32)
-    (set_local 2 (i32.store offset=0 (get_local 0) (i32.const 0)))
-    (block $BB4_2
-      (br_if (get_local 1) $BB4_2)
-      (i32.store offset=0 (get_local 0) (i32.const 1))
-    )
-    (i32.store offset=0 (get_local 0) (i32.const 2))
-    (return (get_local 2))
-  )
-  (func $diamond
-    (param i32) (param i32)
-    (result i32)
-    (local i32)
-    (set_local 2 (i32.store offset=0 (get_local 0) (i32.const 0)))
-    (block $BB5_3
-      (block $BB5_2
-        (br_if (i32.eq (get_local 1) (i32.const 0)) $BB5_2)
-        (i32.store offset=0 (get_local 0) (i32.const 2))
-        (br $BB5_3)
-      )
-      (i32.store offset=0 (get_local 0) (i32.const 1))
-    )
-    (i32.store offset=0 (get_local 0) (i32.const 3))
-    (return (get_local 2))
-  )
-  (func $single_block
-    (param i32)
-    (result i32)
-    (return (i32.store offset=0 (get_local 0) (i32.const 0)))
-  )
-  (func $minimal_loop
-    (param i32)
-    (result i32)
-    (i32.store offset=0 (get_local 0) (i32.const 0))
-    (loop $BB7_2 $BB7_1
-      (i32.store offset=0 (get_local 0) (i32.const 1))
-      (br $BB7_1)
-    )
-  )
-  (func $simple_loop
-    (param i32) (param i32)
-    (result i32)
-    (local i32)
-    (set_local 2 (i32.store offset=0 (get_local 0) (i32.const 0)))
-    (loop $BB8_2 $BB8_1
-      (i32.store offset=0 (get_local 0) (i32.const 1))
-      (br_if (i32.eq (get_local 1) (i32.const 0)) $BB8_1)
-    )
-    (i32.store offset=0 (get_local 0) (i32.const 2))
-    (return (get_local 2))
-  )
-  (func $doubletriangle
-    (param i32) (param i32) (param i32)
-    (result i32)
-    (local i32)
-    (set_local 3 (i32.store offset=0 (get_local 2) (i32.const 0)))
-    (block $BB9_4
-      (br_if (get_local 0) $BB9_4)
-      (i32.store offset=0 (get_local 2) (i32.const 2))
-      (block $BB9_3
-        (br_if (get_local 1) $BB9_3)
-        (i32.store offset=0 (get_local 2) (i32.const 3))
-      )
-      (i32.store offset=0 (get_local 2) (i32.const 4))
-    )
-    (i32.store offset=0 (get_local 2) (i32.const 5))
-    (return (get_local 3))
-  )
-  (func $ifelse_earlyexits
-    (param i32) (param i32) (param i32)
-    (result i32)
-    (local i32)
-    (set_local 3 (i32.store offset=0 (get_local 2) (i32.const 0)))
-    (block $BB10_4
-      (block $BB10_3
-        (br_if (i32.eq (get_local 0) (i32.const 0)) $BB10_3)
-        (i32.store offset=0 (get_local 2) (i32.const 2))
-        (br_if (get_local 1) $BB10_4)
-        (i32.store offset=0 (get_local 2) (i32.const 3))
-        (br $BB10_4)
-      )
-      (i32.store offset=0 (get_local 2) (i32.const 1))
-    )
-    (i32.store offset=0 (get_local 2) (i32.const 4))
-    (return (get_local 3))
-  )
-  (func $doublediamond_in_a_loop
-    (param i32) (param i32) (param i32)
-    (result i32)
-    (loop $BB11_7 $BB11_1
-      (i32.store offset=0 (get_local 2) (i32.const 0))
-      (block $BB11_6
-        (block $BB11_5
-          (br_if (i32.eq (get_local 0) (i32.const 0)) $BB11_5)
-          (i32.store offset=0 (get_local 2) (i32.const 2))
-          (block $BB11_4
-            (br_if (i32.eq (get_local 1) (i32.const 0)) $BB11_4)
-            (i32.store offset=0 (get_local 2) (i32.const 4))
-            (br $BB11_6)
-          )
-          (i32.store offset=0 (get_local 2) (i32.const 3))
-          (br $BB11_6)
-        )
-        (i32.store offset=0 (get_local 2) (i32.const 1))
-      )
-      (i32.store offset=0 (get_local 2) (i32.const 5))
-      (br $BB11_1)
-    )
-  )
-  (func $test3
-    (param i32)
-    (block $BB12_2
-      (br_if (i32.eq (i32.const 0) (i32.const 0)) $BB12_2)
-      (return)
-    )
-    (loop $BB12_5 $BB12_2
-      (br_if (get_local 0) $BB12_5)
-      (loop $BB12_4 $BB12_3
-        (br_if (i32.ne (get_local 0) (get_local 0)) $BB12_3)
-      )
-      (call_import $bar)
-      (br $BB12_2)
-    )
-    (unreachable)
-  )
-  (func $test4
-    (param i32)
-    (block $BB13_8
-      (block $BB13_7
-        (block $BB13_4
-          (br_if (i32.gt_s (get_local 0) (i32.const 3)) $BB13_4)
-          (block $BB13_3
-            (br_if (i32.eq (get_local 0) (i32.const 0)) $BB13_3)
-            (br_if (i32.ne (get_local 0) (i32.const 2)) $BB13_7)
-          )
-          (return)
-        )
-        (br_if (i32.eq (get_local 0) (i32.const 4)) $BB13_8)
-        (br_if (i32.ne (get_local 0) (i32.const 622)) $BB13_7)
-        (return)
-      )
-      (return)
-    )
-    (return)
-  )
-  (func $test5
-    (param i32) (param i32)
-    (local i32 i32)
-    (block $BB14_4
-      (loop $BB14_3 $BB14_1
-        (set_local 2 (i32.const 0))
-        (set_local 3 (i32.store offset=0 (get_local 2) (get_local 2)))
-        (set_local 2 (i32.const 1))
-        (br_if (i32.eq (i32.and (get_local 0) (get_local 2)) (i32.const 0)) $BB14_4)
-        (br_if (i32.and (get_local 1) (i32.store offset=0 (get_local 3) (get_local 2))) $BB14_1)
-      )
-      (i32.store offset=0 (get_local 3) (i32.const 3))
-      (return)
-    )
-    (i32.store offset=0 (get_local 3) (i32.const 2))
-    (return)
-  )
-  (func $test6
-    (param i32) (param i32)
-    (local i32 i32 i32)
-    (block $BB15_6
-      (block $BB15_5
-        (loop $BB15_4 $BB15_1
-          (set_local 2 (i32.const 0))
-          (i32.store offset=0 (get_local 2) (get_local 2))
-          (set_local 3 (i32.const 1))
-          (br_if (i32.eq (i32.and (get_local 0) (get_local 3)) (i32.const 0)) $BB15_6)
-          (i32.store offset=0 (get_local 2) (get_local 3))
-          (set_local 4 (i32.and (get_local 1) (get_local 3)))
-          (br_if (i32.eq (get_local 4) (i32.const 0)) $BB15_5)
-          (i32.store offset=0 (get_local 2) (get_local 3))
-          (br_if (get_local 4) $BB15_1)
-        )
-        (i32.store offset=0 (get_local 2) (i32.const 2))
-        (return)
-      )
-      (i32.store offset=0 (get_local 2) (i32.const 3))
-    )
-    (i32.store offset=0 (get_local 2) (i32.const 4))
-    (return)
-  )
-  (func $test7
-    (param i32) (param i32)
-    (local i32 i32)
-    (set_local 3 (i32.const 0))
-    (set_local 2 (i32.store offset=0 (get_local 3) (get_local 3)))
-    (loop $BB16_5 $BB16_1
-      (set_local 3 (i32.store offset=0 (get_local 2) (i32.const 1)))
-      (block $BB16_4
-        (br_if (i32.eq (i32.and (get_local 0) (get_local 3)) (i32.const 0)) $BB16_4)
-        (i32.store offset=0 (get_local 2) (i32.const 3))
-        (br_if (i32.and (get_local 1) (get_local 3)) $BB16_1)
-        (i32.store offset=0 (get_local 2) (i32.const 5))
-        (unreachable)
-      )
-      (i32.store offset=0 (get_local 2) (i32.const 2))
-      (br_if (i32.and (get_local 1) (get_local 3)) $BB16_1)
-    )
-    (i32.store offset=0 (get_local 2) (i32.const 4))
-    (unreachable)
-  )
-  (func $test8
-    (result i32)
-    (local i32)
-    (set_local 0 (i32.const 0))
-    (loop $BB17_4 $BB17_1
-      (block $BB17_3
-        (br_if (i32.eq (get_local 0) (i32.const 0)) $BB17_3)
-        (br_if (i32.eq (get_local 0) (i32.const 0)) $BB17_1)
-      )
-      (loop $BB17_4 $BB17_3
-        (br_if (get_local 0) $BB17_3)
-        (br $BB17_1)
-      )
-    )
-  )
-  (func $test9
-    (local i32 i32)
-    (set_local 1 (i32.const 0))
-    (set_local 0 (i32.store offset=0 (get_local 1) (get_local 1)))
-    (loop $BB18_5 $BB18_1
-      (set_local 1 (i32.store offset=0 (get_local 0) (i32.const 1)))
-      (br_if (i32.eq (i32.and (call_import $a) (get_local 1)) (i32.const 0)) $BB18_5)
-      (loop $BB18_5 $BB18_2
-        (i32.store offset=0 (get_local 0) (i32.const 2))
-        (block $BB18_4
-          (br_if (i32.eq (i32.and (call_import $a) (get_local 1)) (i32.const 0)) $BB18_4)
-          (i32.store offset=0 (get_local 0) (i32.const 3))
-          (br_if (i32.and (call_import $a) (get_local 1)) $BB18_2)
-          (br $BB18_1)
-        )
-        (i32.store offset=0 (get_local 0) (i32.const 4))
-        (br_if (i32.and (call_import $a) (get_local 1)) $BB18_2)
-        (br $BB18_1)
-      )
-    )
-    (i32.store offset=0 (get_local 0) (i32.const 5))
-    (return)
-  )
-  (func $test10
-    (local i32 i32 i32 i32 i32)
-    (set_local 0 (i32.const 2))
-    (loop $BB19_7 $BB19_1
-      (set_local 4 (get_local 1))
-      (set_local 3 (get_local 0))
-      (set_local 1 (i32.const 0))
-      (set_local 0 (i32.const 3))
-      (set_local 2 (i32.const 4))
-      (br_if (get_local 4) $BB19_1)
-      (block $BB19_6
-        (loop $BB19_5 $BB19_2
-          (set_local 4 (get_local 3))
-          (set_local 3 (get_local 2))
-          (loop $BB19_5 $BB19_3
-            (set_local 2 (get_local 4))
-            (br_if (i32.gt_u (get_local 2) (i32.const 4)) $BB19_1)
-            (set_local 4 (get_local 3))
-            (tableswitch (get_local 2) $BB19_3 $BB19_3 $BB19_5 $BB19_1 $BB19_2 $BB19_6)
-          )
-        )
-        (return)
-      )
-      (set_local 1 (i32.const 1))
-      (br $BB19_1)
-    )
-  )
-  (func $test11
-    (local i32)
-    (set_local 0 (i32.const 0))
-    (i32.store offset=0 (get_local 0) (get_local 0))
-    (block $BB20_8
-      (block $BB20_4
-        (br_if (get_local 0) $BB20_4)
-        (i32.store offset=0 (get_local 0) (i32.const 1))
-        (block $BB20_3
-          (br_if (get_local 0) $BB20_3)
-          (i32.store offset=0 (get_local 0) (i32.const 2))
-          (br_if (get_local 0) $BB20_8)
-        )
-        (i32.store offset=0 (get_local 0) (i32.const 3))
-        (return)
-      )
-      (i32.store offset=0 (get_local 0) (i32.const 4))
-      (block $BB20_6
-        (br_if (i32.eq (get_local 0) (i32.const 0)) $BB20_6)
-        (i32.store offset=0 (get_local 0) (i32.const 8))
-        (return)
-      )
-      (i32.store offset=0 (get_local 0) (i32.const 5))
-      (br_if (get_local 0) $BB20_8)
-      (i32.store offset=0 (get_local 0) (i32.const 6))
-      (return)
-    )
-    (i32.store offset=0 (get_local 0) (i32.const 7))
-    (return)
-  )
-  (func $test12
-    (param i32)
-    (local i32)
-    (loop $BB21_8 $BB21_1
-      (set_local 1 (i32.load8_u offset=0 (get_local 0)))
-      (block $BB21_7
-        (block $BB21_6
-          (block $BB21_4
-            (br_if (i32.gt_s (get_local 1) (i32.const 103)) $BB21_4)
-            (br_if (i32.eq (get_local 1) (i32.const 42)) $BB21_7)
-            (br_if (i32.eq (get_local 1) (i32.const 76)) $BB21_7)
-            (br $BB21_6)
-          )
-          (br_if (i32.eq (get_local 1) (i32.const 108)) $BB21_7)
-          (br_if (i32.eq (get_local 1) (i32.const 104)) $BB21_7)
-        )
-        (return)
-      )
-      (set_local 0 (i32.add (get_local 0) (i32.const 1)))
-      (br $BB21_1)
-    )
-  )
-  (func $test13
-    (local i32)
-    (block $BB22_2
-      (br_if (i32.eq (i32.const 0) (i32.const 0)) $BB22_2)
-      (return)
-    )
-    (set_local 0 (i32.const 0))
-    (block $BB22_4
-      (br_if (get_local 0) $BB22_4)
-      (set_local 0 (i32.const 0))
-    )
-    (block $BB22_5
-      (br_if (i32.eq (i32.and (get_local 0) (i32.const 1)) (i32.const 0)) $BB22_5)
-    )
-    (unreachable)
-  )
-  (import $a "misctest" "a" (param i32))
-  (import $bar "misctest" "bar")
-  (import $something "misctest" "something")
-  (memory 0 0
-  )
-)
diff --git a/prototype-wasmate/test/expected-output/comparisons_f32.wast b/prototype-wasmate/test/expected-output/comparisons_f32.wast
deleted file mode 100644
index 9a17f30..0000000
--- a/prototype-wasmate/test/expected-output/comparisons_f32.wast
+++ /dev/null
@@ -1,95 +0,0 @@
-;; This file was generated by wasmate.py, which is a script that converts
-;; from the "flat" text assembly syntax emitted by LLVM into the s-expression
-;; syntax expected by the spec repository.
-;;
-;; Note: this is a hack. A real toolchain will eventually be needed.
-;;
-
-(module
-  (export "ord_f32" $ord_f32)
-  (export "uno_f32" $uno_f32)
-  (export "oeq_f32" $oeq_f32)
-  (export "une_f32" $une_f32)
-  (export "olt_f32" $olt_f32)
-  (export "ole_f32" $ole_f32)
-  (export "ogt_f32" $ogt_f32)
-  (export "oge_f32" $oge_f32)
-  (export "ueq_f32" $ueq_f32)
-  (export "one_f32" $one_f32)
-  (export "ult_f32" $ult_f32)
-  (export "ule_f32" $ule_f32)
-  (export "ugt_f32" $ugt_f32)
-  (export "uge_f32" $uge_f32)
-  (func $ord_f32
-    (param f32) (param f32)
-    (result i32)
-    (return (i32.and (f32.eq (get_local 0) (get_local 0)) (f32.eq (get_local 1) (get_local 1))))
-  )
-  (func $uno_f32
-    (param f32) (param f32)
-    (result i32)
-    (return (i32.or (f32.ne (get_local 0) (get_local 0)) (f32.ne (get_local 1) (get_local 1))))
-  )
-  (func $oeq_f32
-    (param f32) (param f32)
-    (result i32)
-    (return (f32.eq (get_local 0) (get_local 1)))
-  )
-  (func $une_f32
-    (param f32) (param f32)
-    (result i32)
-    (return (f32.ne (get_local 0) (get_local 1)))
-  )
-  (func $olt_f32
-    (param f32) (param f32)
-    (result i32)
-    (return (f32.lt (get_local 0) (get_local 1)))
-  )
-  (func $ole_f32
-    (param f32) (param f32)
-    (result i32)
-    (return (f32.le (get_local 0) (get_local 1)))
-  )
-  (func $ogt_f32
-    (param f32) (param f32)
-    (result i32)
-    (return (f32.gt (get_local 0) (get_local 1)))
-  )
-  (func $oge_f32
-    (param f32) (param f32)
-    (result i32)
-    (return (f32.ge (get_local 0) (get_local 1)))
-  )
-  (func $ueq_f32
-    (param f32) (param f32)
-    (result i32)
-    (return (i32.or (f32.eq (get_local 0) (get_local 1)) (i32.or (f32.ne (get_local 0) (get_local 0)) (f32.ne (get_local 1) (get_local 1)))))
-  )
-  (func $one_f32
-    (param f32) (param f32)
-    (result i32)
-    (return (i32.and (f32.ne (get_local 0) (get_local 1)) (i32.and (f32.eq (get_local 0) (get_local 0)) (f32.eq (get_local 1) (get_local 1)))))
-  )
-  (func $ult_f32
-    (param f32) (param f32)
-    (result i32)
-    (return (i32.or (f32.lt (get_local 0) (get_local 1)) (i32.or (f32.ne (get_local 0) (get_local 0)) (f32.ne (get_local 1) (get_local 1)))))
-  )
-  (func $ule_f32
-    (param f32) (param f32)
-    (result i32)
-    (return (i32.or (f32.le (get_local 0) (get_local 1)) (i32.or (f32.ne (get_local 0) (get_local 0)) (f32.ne (get_local 1) (get_local 1)))))
-  )
-  (func $ugt_f32
-    (param f32) (param f32)
-    (result i32)
-    (return (i32.or (f32.gt (get_local 0) (get_local 1)) (i32.or (f32.ne (get_local 0) (get_local 0)) (f32.ne (get_local 1) (get_local 1)))))
-  )
-  (func $uge_f32
-    (param f32) (param f32)
-    (result i32)
-    (return (i32.or (f32.ge (get_local 0) (get_local 1)) (i32.or (f32.ne (get_local 0) (get_local 0)) (f32.ne (get_local 1) (get_local 1)))))
-  )
-  (memory 0 0
-  )
-)
diff --git a/prototype-wasmate/test/expected-output/comparisons_f64.wast b/prototype-wasmate/test/expected-output/comparisons_f64.wast
deleted file mode 100644
index 1d61bda..0000000
--- a/prototype-wasmate/test/expected-output/comparisons_f64.wast
+++ /dev/null
@@ -1,95 +0,0 @@
-;; This file was generated by wasmate.py, which is a script that converts
-;; from the "flat" text assembly syntax emitted by LLVM into the s-expression
-;; syntax expected by the spec repository.
-;;
-;; Note: this is a hack. A real toolchain will eventually be needed.
-;;
-
-(module
-  (export "ord_f64" $ord_f64)
-  (export "uno_f64" $uno_f64)
-  (export "oeq_f64" $oeq_f64)
-  (export "une_f64" $une_f64)
-  (export "olt_f64" $olt_f64)
-  (export "ole_f64" $ole_f64)
-  (export "ogt_f64" $ogt_f64)
-  (export "oge_f64" $oge_f64)
-  (export "ueq_f64" $ueq_f64)
-  (export "one_f64" $one_f64)
-  (export "ult_f64" $ult_f64)
-  (export "ule_f64" $ule_f64)
-  (export "ugt_f64" $ugt_f64)
-  (export "uge_f64" $uge_f64)
-  (func $ord_f64
-    (param f64) (param f64)
-    (result i32)
-    (return (i32.and (f64.eq (get_local 0) (get_local 0)) (f64.eq (get_local 1) (get_local 1))))
-  )
-  (func $uno_f64
-    (param f64) (param f64)
-    (result i32)
-    (return (i32.or (f64.ne (get_local 0) (get_local 0)) (f64.ne (get_local 1) (get_local 1))))
-  )
-  (func $oeq_f64
-    (param f64) (param f64)
-    (result i32)
-    (return (f64.eq (get_local 0) (get_local 1)))
-  )
-  (func $une_f64
-    (param f64) (param f64)
-    (result i32)
-    (return (f64.ne (get_local 0) (get_local 1)))
-  )
-  (func $olt_f64
-    (param f64) (param f64)
-    (result i32)
-    (return (f64.lt (get_local 0) (get_local 1)))
-  )
-  (func $ole_f64
-    (param f64) (param f64)
-    (result i32)
-    (return (f64.le (get_local 0) (get_local 1)))
-  )
-  (func $ogt_f64
-    (param f64) (param f64)
-    (result i32)
-    (return (f64.gt (get_local 0) (get_local 1)))
-  )
-  (func $oge_f64
-    (param f64) (param f64)
-    (result i32)
-    (return (f64.ge (get_local 0) (get_local 1)))
-  )
-  (func $ueq_f64
-    (param f64) (param f64)
-    (result i32)
-    (return (i32.or (f64.eq (get_local 0) (get_local 1)) (i32.or (f64.ne (get_local 0) (get_local 0)) (f64.ne (get_local 1) (get_local 1)))))
-  )
-  (func $one_f64
-    (param f64) (param f64)
-    (result i32)
-    (return (i32.and (f64.ne (get_local 0) (get_local 1)) (i32.and (f64.eq (get_local 0) (get_local 0)) (f64.eq (get_local 1) (get_local 1)))))
-  )
-  (func $ult_f64
-    (param f64) (param f64)
-    (result i32)
-    (return (i32.or (f64.lt (get_local 0) (get_local 1)) (i32.or (f64.ne (get_local 0) (get_local 0)) (f64.ne (get_local 1) (get_local 1)))))
-  )
-  (func $ule_f64
-    (param f64) (param f64)
-    (result i32)
-    (return (i32.or (f64.le (get_local 0) (get_local 1)) (i32.or (f64.ne (get_local 0) (get_local 0)) (f64.ne (get_local 1) (get_local 1)))))
-  )
-  (func $ugt_f64
-    (param f64) (param f64)
-    (result i32)
-    (return (i32.or (f64.gt (get_local 0) (get_local 1)) (i32.or (f64.ne (get_local 0) (get_local 0)) (f64.ne (get_local 1) (get_local 1)))))
-  )
-  (func $uge_f64
-    (param f64) (param f64)
-    (result i32)
-    (return (i32.or (f64.ge (get_local 0) (get_local 1)) (i32.or (f64.ne (get_local 0) (get_local 0)) (f64.ne (get_local 1) (get_local 1)))))
-  )
-  (memory 0 0
-  )
-)
diff --git a/prototype-wasmate/test/expected-output/comparisons_i32.wast b/prototype-wasmate/test/expected-output/comparisons_i32.wast
deleted file mode 100644
index 9d804fa..0000000
--- a/prototype-wasmate/test/expected-output/comparisons_i32.wast
+++ /dev/null
@@ -1,71 +0,0 @@
-;; This file was generated by wasmate.py, which is a script that converts
-;; from the "flat" text assembly syntax emitted by LLVM into the s-expression
-;; syntax expected by the spec repository.
-;;
-;; Note: this is a hack. A real toolchain will eventually be needed.
-;;
-
-(module
-  (export "eq_i32" $eq_i32)
-  (export "ne_i32" $ne_i32)
-  (export "slt_i32" $slt_i32)
-  (export "sle_i32" $sle_i32)
-  (export "ult_i32" $ult_i32)
-  (export "ule_i32" $ule_i32)
-  (export "sgt_i32" $sgt_i32)
-  (export "sge_i32" $sge_i32)
-  (export "ugt_i32" $ugt_i32)
-  (export "uge_i32" $uge_i32)
-  (func $eq_i32
-    (param i32) (param i32)
-    (result i32)
-    (return (i32.eq (get_local 0) (get_local 1)))
-  )
-  (func $ne_i32
-    (param i32) (param i32)
-    (result i32)
-    (return (i32.ne (get_local 0) (get_local 1)))
-  )
-  (func $slt_i32
-    (param i32) (param i32)
-    (result i32)
-    (return (i32.lt_s (get_local 0) (get_local 1)))
-  )
-  (func $sle_i32
-    (param i32) (param i32)
-    (result i32)
-    (return (i32.le_s (get_local 0) (get_local 1)))
-  )
-  (func $ult_i32
-    (param i32) (param i32)
-    (result i32)
-    (return (i32.lt_u (get_local 0) (get_local 1)))
-  )
-  (func $ule_i32
-    (param i32) (param i32)
-    (result i32)
-    (return (i32.le_u (get_local 0) (get_local 1)))
-  )
-  (func $sgt_i32
-    (param i32) (param i32)
-    (result i32)
-    (return (i32.gt_s (get_local 0) (get_local 1)))
-  )
-  (func $sge_i32
-    (param i32) (param i32)
-    (result i32)
-    (return (i32.ge_s (get_local 0) (get_local 1)))
-  )
-  (func $ugt_i32
-    (param i32) (param i32)
-    (result i32)
-    (return (i32.gt_u (get_local 0) (get_local 1)))
-  )
-  (func $uge_i32
-    (param i32) (param i32)
-    (result i32)
-    (return (i32.ge_u (get_local 0) (get_local 1)))
-  )
-  (memory 0 0
-  )
-)
diff --git a/prototype-wasmate/test/expected-output/comparisons_i64.wast b/prototype-wasmate/test/expected-output/comparisons_i64.wast
deleted file mode 100644
index 815d90e..0000000
--- a/prototype-wasmate/test/expected-output/comparisons_i64.wast
+++ /dev/null
@@ -1,71 +0,0 @@
-;; This file was generated by wasmate.py, which is a script that converts
-;; from the "flat" text assembly syntax emitted by LLVM into the s-expression
-;; syntax expected by the spec repository.
-;;
-;; Note: this is a hack. A real toolchain will eventually be needed.
-;;
-
-(module
-  (export "eq_i64" $eq_i64)
-  (export "ne_i64" $ne_i64)
-  (export "slt_i64" $slt_i64)
-  (export "sle_i64" $sle_i64)
-  (export "ult_i64" $ult_i64)
-  (export "ule_i64" $ule_i64)
-  (export "sgt_i64" $sgt_i64)
-  (export "sge_i64" $sge_i64)
-  (export "ugt_i64" $ugt_i64)
-  (export "uge_i64" $uge_i64)
-  (func $eq_i64
-    (param i64) (param i64)
-    (result i32)
-    (return (i64.eq (get_local 0) (get_local 1)))
-  )
-  (func $ne_i64
-    (param i64) (param i64)
-    (result i32)
-    (return (i64.ne (get_local 0) (get_local 1)))
-  )
-  (func $slt_i64
-    (param i64) (param i64)
-    (result i32)
-    (return (i64.lt_s (get_local 0) (get_local 1)))
-  )
-  (func $sle_i64
-    (param i64) (param i64)
-    (result i32)
-    (return (i64.le_s (get_local 0) (get_local 1)))
-  )
-  (func $ult_i64
-    (param i64) (param i64)
-    (result i32)
-    (return (i64.lt_u (get_local 0) (get_local 1)))
-  )
-  (func $ule_i64
-    (param i64) (param i64)
-    (result i32)
-    (return (i64.le_u (get_local 0) (get_local 1)))
-  )
-  (func $sgt_i64
-    (param i64) (param i64)
-    (result i32)
-    (return (i64.gt_s (get_local 0) (get_local 1)))
-  )
-  (func $sge_i64
-    (param i64) (param i64)
-    (result i32)
-    (return (i64.ge_s (get_local 0) (get_local 1)))
-  )
-  (func $ugt_i64
-    (param i64) (param i64)
-    (result i32)
-    (return (i64.gt_u (get_local 0) (get_local 1)))
-  )
-  (func $uge_i64
-    (param i64) (param i64)
-    (result i32)
-    (return (i64.ge_u (get_local 0) (get_local 1)))
-  )
-  (memory 0 0
-  )
-)
diff --git a/prototype-wasmate/test/expected-output/conv.wast b/prototype-wasmate/test/expected-output/conv.wast
deleted file mode 100644
index 120e582..0000000
--- a/prototype-wasmate/test/expected-output/conv.wast
+++ /dev/null
@@ -1,167 +0,0 @@
-;; This file was generated by wasmate.py, which is a script that converts
-;; from the "flat" text assembly syntax emitted by LLVM into the s-expression
-;; syntax expected by the spec repository.
-;;
-;; Note: this is a hack. A real toolchain will eventually be needed.
-;;
-
-(module
-  (export "i32_wrap_i64" $i32_wrap_i64)
-  (export "i64_extend_s_i32" $i64_extend_s_i32)
-  (export "i64_extend_u_i32" $i64_extend_u_i32)
-  (export "i32_trunc_s_f32" $i32_trunc_s_f32)
-  (export "i32_trunc_u_f32" $i32_trunc_u_f32)
-  (export "i32_trunc_s_f64" $i32_trunc_s_f64)
-  (export "i32_trunc_u_f64" $i32_trunc_u_f64)
-  (export "i64_trunc_s_f32" $i64_trunc_s_f32)
-  (export "i64_trunc_u_f32" $i64_trunc_u_f32)
-  (export "i64_trunc_s_f64" $i64_trunc_s_f64)
-  (export "i64_trunc_u_f64" $i64_trunc_u_f64)
-  (export "f32_convert_s_i32" $f32_convert_s_i32)
-  (export "f32_convert_u_i32" $f32_convert_u_i32)
-  (export "f64_convert_s_i32" $f64_convert_s_i32)
-  (export "f64_convert_u_i32" $f64_convert_u_i32)
-  (export "f32_convert_s_i64" $f32_convert_s_i64)
-  (export "f32_convert_u_i64" $f32_convert_u_i64)
-  (export "f64_convert_s_i64" $f64_convert_s_i64)
-  (export "f64_convert_u_i64" $f64_convert_u_i64)
-  (export "f64_promote_f32" $f64_promote_f32)
-  (export "f32_demote_f64" $f32_demote_f64)
-  (export "anyext" $anyext)
-  (export "bitcast_i32_to_float" $bitcast_i32_to_float)
-  (export "bitcast_float_to_i32" $bitcast_float_to_i32)
-  (export "bitcast_i64_to_double" $bitcast_i64_to_double)
-  (export "bitcast_double_to_i64" $bitcast_double_to_i64)
-  (func $i32_wrap_i64
-    (param i64)
-    (result i32)
-    (return (i32.wrap/i64 (get_local 0)))
-  )
-  (func $i64_extend_s_i32
-    (param i32)
-    (result i64)
-    (return (i64.extend_s/i32 (get_local 0)))
-  )
-  (func $i64_extend_u_i32
-    (param i32)
-    (result i64)
-    (return (i64.extend_u/i32 (get_local 0)))
-  )
-  (func $i32_trunc_s_f32
-    (param f32)
-    (result i32)
-    (return (i32.trunc_s/f32 (get_local 0)))
-  )
-  (func $i32_trunc_u_f32
-    (param f32)
-    (result i32)
-    (return (i32.trunc_u/f32 (get_local 0)))
-  )
-  (func $i32_trunc_s_f64
-    (param f64)
-    (result i32)
-    (return (i32.trunc_s/f64 (get_local 0)))
-  )
-  (func $i32_trunc_u_f64
-    (param f64)
-    (result i32)
-    (return (i32.trunc_u/f64 (get_local 0)))
-  )
-  (func $i64_trunc_s_f32
-    (param f32)
-    (result i64)
-    (return (i64.trunc_s/f32 (get_local 0)))
-  )
-  (func $i64_trunc_u_f32
-    (param f32)
-    (result i64)
-    (return (i64.trunc_u/f32 (get_local 0)))
-  )
-  (func $i64_trunc_s_f64
-    (param f64)
-    (result i64)
-    (return (i64.trunc_s/f64 (get_local 0)))
-  )
-  (func $i64_trunc_u_f64
-    (param f64)
-    (result i64)
-    (return (i64.trunc_u/f64 (get_local 0)))
-  )
-  (func $f32_convert_s_i32
-    (param i32)
-    (result f32)
-    (return (f32.convert_s/i32 (get_local 0)))
-  )
-  (func $f32_convert_u_i32
-    (param i32)
-    (result f32)
-    (return (f32.convert_u/i32 (get_local 0)))
-  )
-  (func $f64_convert_s_i32
-    (param i32)
-    (result f64)
-    (return (f64.convert_s/i32 (get_local 0)))
-  )
-  (func $f64_convert_u_i32
-    (param i32)
-    (result f64)
-    (return (f64.convert_u/i32 (get_local 0)))
-  )
-  (func $f32_convert_s_i64
-    (param i64)
-    (result f32)
-    (return (f32.convert_s/i64 (get_local 0)))
-  )
-  (func $f32_convert_u_i64
-    (param i64)
-    (result f32)
-    (return (f32.convert_u/i64 (get_local 0)))
-  )
-  (func $f64_convert_s_i64
-    (param i64)
-    (result f64)
-    (return (f64.convert_s/i64 (get_local 0)))
-  )
-  (func $f64_convert_u_i64
-    (param i64)
-    (result f64)
-    (return (f64.convert_u/i64 (get_local 0)))
-  )
-  (func $f64_promote_f32
-    (param f32)
-    (result f64)
-    (return (f64.promote/f32 (get_local 0)))
-  )
-  (func $f32_demote_f64
-    (param f64)
-    (result f32)
-    (return (f32.demote/f64 (get_local 0)))
-  )
-  (func $anyext
-    (param i32)
-    (result i64)
-    (return (i64.shl (i64.extend_u/i32 (get_local 0)) (i64.const 32)))
-  )
-  (func $bitcast_i32_to_float
-    (param i32)
-    (result f32)
-    (return (f32.reinterpret/i32 (get_local 0)))
-  )
-  (func $bitcast_float_to_i32
-    (param f32)
-    (result i32)
-    (return (i32.reinterpret/f32 (get_local 0)))
-  )
-  (func $bitcast_i64_to_double
-    (param i64)
-    (result f64)
-    (return (f64.reinterpret/i64 (get_local 0)))
-  )
-  (func $bitcast_double_to_i64
-    (param f64)
-    (result i64)
-    (return (i64.reinterpret/f64 (get_local 0)))
-  )
-  (memory 0 0
-  )
-)
diff --git a/prototype-wasmate/test/expected-output/copysign-casts.wast b/prototype-wasmate/test/expected-output/copysign-casts.wast
deleted file mode 100644
index 7e8a488..0000000
--- a/prototype-wasmate/test/expected-output/copysign-casts.wast
+++ /dev/null
@@ -1,23 +0,0 @@
-;; This file was generated by wasmate.py, which is a script that converts
-;; from the "flat" text assembly syntax emitted by LLVM into the s-expression
-;; syntax expected by the spec repository.
-;;
-;; Note: this is a hack. A real toolchain will eventually be needed.
-;;
-
-(module
-  (export "fold_promote" $fold_promote)
-  (export "fold_demote" $fold_demote)
-  (func $fold_promote
-    (param f64) (param f32)
-    (result f64)
-    (return (f64.copysign (get_local 0) (f64.promote/f32 (get_local 1))))
-  )
-  (func $fold_demote
-    (param f32) (param f64)
-    (result f32)
-    (return (f32.copysign (get_local 0) (f32.demote/f64 (get_local 1))))
-  )
-  (memory 0 0
-  )
-)
diff --git a/prototype-wasmate/test/expected-output/cpus.wast b/prototype-wasmate/test/expected-output/cpus.wast
deleted file mode 100644
index 8a51a3e..0000000
--- a/prototype-wasmate/test/expected-output/cpus.wast
+++ /dev/null
@@ -1,17 +0,0 @@
-;; This file was generated by wasmate.py, which is a script that converts
-;; from the "flat" text assembly syntax emitted by LLVM into the s-expression
-;; syntax expected by the spec repository.
-;;
-;; Note: this is a hack. A real toolchain will eventually be needed.
-;;
-
-(module
-  (export "f" $f)
-  (func $f
-    (param i32)
-    (result i32)
-    (return (get_local 0))
-  )
-  (memory 0 0
-  )
-)
diff --git a/prototype-wasmate/test/expected-output/data-offset-folding.wast b/prototype-wasmate/test/expected-output/data-offset-folding.wast
deleted file mode 100644
index 954e5d8..0000000
--- a/prototype-wasmate/test/expected-output/data-offset-folding.wast
+++ /dev/null
@@ -1,14 +0,0 @@
-;; This file was generated by wasmate.py, which is a script that converts
-;; from the "flat" text assembly syntax emitted by LLVM into the s-expression
-;; syntax expected by the spec repository.
-;;
-;; Note: this is a hack. A real toolchain will eventually be needed.
-;;
-
-(module
-  (memory 420 420
-    (segment 416
-      "`\00\00\00"
-    )
-  )
-)
diff --git a/prototype-wasmate/test/expected-output/dead-vreg.wast b/prototype-wasmate/test/expected-output/dead-vreg.wast
deleted file mode 100644
index ba66506..0000000
--- a/prototype-wasmate/test/expected-output/dead-vreg.wast
+++ /dev/null
@@ -1,42 +0,0 @@
-;; This file was generated by wasmate.py, which is a script that converts
-;; from the "flat" text assembly syntax emitted by LLVM into the s-expression
-;; syntax expected by the spec repository.
-;;
-;; Note: this is a hack. A real toolchain will eventually be needed.
-;;
-
-(module
-  (export "foo" $foo)
-  (func $foo
-    (param i32) (param i32) (param i32)
-    (local i32 i32 i32 i32 i32 i32 i32)
-    (set_local 4 (i32.const 1))
-    (block $BB0_5
-      (br_if (i32.lt_s (get_local 2) (get_local 4)) $BB0_5)
-      (set_local 3 (i32.shl (get_local 1) (i32.const 2)))
-      (set_local 5 (i32.const 0))
-      (set_local 6 (get_local 5))
-      (loop $BB0_5 $BB0_2
-        (set_local 7 (get_local 5))
-        (set_local 8 (get_local 0))
-        (set_local 9 (get_local 1))
-        (block $BB0_4
-          (br_if (i32.lt_s (get_local 1) (get_local 4)) $BB0_4)
-          (loop $BB0_4 $BB0_3
-            (set_local 9 (i32.add (get_local 9) (i32.const -1)))
-            (i32.store offset=0 (get_local 8) (get_local 7))
-            (set_local 8 (i32.add (get_local 8) (i32.const 4)))
-            (set_local 7 (i32.add (get_local 7) (get_local 6)))
-            (br_if (get_local 9) $BB0_3)
-          )
-        )
-        (set_local 6 (i32.add (get_local 6) (get_local 4)))
-        (set_local 0 (i32.add (get_local 0) (get_local 3)))
-        (br_if (i32.ne (get_local 6) (get_local 2)) $BB0_2)
-      )
-    )
-    (return)
-  )
-  (memory 0 0
-  )
-)
diff --git a/prototype-wasmate/test/expected-output/exit.wast b/prototype-wasmate/test/expected-output/exit.wast
deleted file mode 100644
index 2e30ebb..0000000
--- a/prototype-wasmate/test/expected-output/exit.wast
+++ /dev/null
@@ -1,18 +0,0 @@
-;; This file was generated by wasmate.py, which is a script that converts
-;; from the "flat" text assembly syntax emitted by LLVM into the s-expression
-;; syntax expected by the spec repository.
-;;
-;; Note: this is a hack. A real toolchain will eventually be needed.
-;;
-
-(module
-  (export "main" $main)
-  (func $main
-    (result i32)
-    (local i32)
-    (call_import $exit (i32.const 0))
-  )
-  (import $exit "misctest" "exit" (param i32))
-  (memory 0 0
-  )
-)
diff --git a/prototype-wasmate/test/expected-output/f32.wast b/prototype-wasmate/test/expected-output/f32.wast
deleted file mode 100644
index a192c19..0000000
--- a/prototype-wasmate/test/expected-output/f32.wast
+++ /dev/null
@@ -1,107 +0,0 @@
-;; This file was generated by wasmate.py, which is a script that converts
-;; from the "flat" text assembly syntax emitted by LLVM into the s-expression
-;; syntax expected by the spec repository.
-;;
-;; Note: this is a hack. A real toolchain will eventually be needed.
-;;
-
-(module
-  (export "fadd32" $fadd32)
-  (export "fsub32" $fsub32)
-  (export "fmul32" $fmul32)
-  (export "fdiv32" $fdiv32)
-  (export "fabs32" $fabs32)
-  (export "fneg32" $fneg32)
-  (export "copysign32" $copysign32)
-  (export "sqrt32" $sqrt32)
-  (export "ceil32" $ceil32)
-  (export "floor32" $floor32)
-  (export "trunc32" $trunc32)
-  (export "nearest32" $nearest32)
-  (export "nearest32_via_rint" $nearest32_via_rint)
-  (export "fmin32" $fmin32)
-  (export "fmax32" $fmax32)
-  (export "fma32" $fma32)
-  (func $fadd32
-    (param f32) (param f32)
-    (result f32)
-    (return (f32.add (get_local 0) (get_local 1)))
-  )
-  (func $fsub32
-    (param f32) (param f32)
-    (result f32)
-    (return (f32.sub (get_local 0) (get_local 1)))
-  )
-  (func $fmul32
-    (param f32) (param f32)
-    (result f32)
-    (return (f32.mul (get_local 0) (get_local 1)))
-  )
-  (func $fdiv32
-    (param f32) (param f32)
-    (result f32)
-    (return (f32.div (get_local 0) (get_local 1)))
-  )
-  (func $fabs32
-    (param f32)
-    (result f32)
-    (return (f32.abs (get_local 0)))
-  )
-  (func $fneg32
-    (param f32)
-    (result f32)
-    (return (f32.neg (get_local 0)))
-  )
-  (func $copysign32
-    (param f32) (param f32)
-    (result f32)
-    (return (f32.copysign (get_local 0) (get_local 1)))
-  )
-  (func $sqrt32
-    (param f32)
-    (result f32)
-    (return (f32.sqrt (get_local 0)))
-  )
-  (func $ceil32
-    (param f32)
-    (result f32)
-    (return (f32.ceil (get_local 0)))
-  )
-  (func $floor32
-    (param f32)
-    (result f32)
-    (return (f32.floor (get_local 0)))
-  )
-  (func $trunc32
-    (param f32)
-    (result f32)
-    (return (f32.trunc (get_local 0)))
-  )
-  (func $nearest32
-    (param f32)
-    (result f32)
-    (return (f32.nearest (get_local 0)))
-  )
-  (func $nearest32_via_rint
-    (param f32)
-    (result f32)
-    (return (f32.nearest (get_local 0)))
-  )
-  (func $fmin32
-    (param f32)
-    (result f32)
-    (return (f32.min (get_local 0) (f32.const 0x0p0)))
-  )
-  (func $fmax32
-    (param f32)
-    (result f32)
-    (return (f32.max (get_local 0) (f32.const 0x0p0)))
-  )
-  (func $fma32
-    (param f32) (param f32) (param f32)
-    (result f32)
-    (return (call $fmaf (get_local 0) (get_local 1) (get_local 2)))
-  )
-  (memory 0 0
-  )
-)
diff --git a/prototype-wasmate/test/expected-output/f64.wast b/prototype-wasmate/test/expected-output/f64.wast
deleted file mode 100644
index b2ad90c..0000000
--- a/prototype-wasmate/test/expected-output/f64.wast
+++ /dev/null
@@ -1,107 +0,0 @@
-;; This file was generated by wasmate.py, which is a script that converts
-;; from the "flat" text assembly syntax emitted by LLVM into the s-expression
-;; syntax expected by the spec repository.
-;;
-;; Note: this is a hack. A real toolchain will eventually be needed.
-;;
-
-(module
-  (export "fadd64" $fadd64)
-  (export "fsub64" $fsub64)
-  (export "fmul64" $fmul64)
-  (export "fdiv64" $fdiv64)
-  (export "fabs64" $fabs64)
-  (export "fneg64" $fneg64)
-  (export "copysign64" $copysign64)
-  (export "sqrt64" $sqrt64)
-  (export "ceil64" $ceil64)
-  (export "floor64" $floor64)
-  (export "trunc64" $trunc64)
-  (export "nearest64" $nearest64)
-  (export "nearest64_via_rint" $nearest64_via_rint)
-  (export "fmin64" $fmin64)
-  (export "fmax64" $fmax64)
-  (export "fma64" $fma64)
-  (func $fadd64
-    (param f64) (param f64)
-    (result f64)
-    (return (f64.add (get_local 0) (get_local 1)))
-  )
-  (func $fsub64
-    (param f64) (param f64)
-    (result f64)
-    (return (f64.sub (get_local 0) (get_local 1)))
-  )
-  (func $fmul64
-    (param f64) (param f64)
-    (result f64)
-    (return (f64.mul (get_local 0) (get_local 1)))
-  )
-  (func $fdiv64
-    (param f64) (param f64)
-    (result f64)
-    (return (f64.div (get_local 0) (get_local 1)))
-  )
-  (func $fabs64
-    (param f64)
-    (result f64)
-    (return (f64.abs (get_local 0)))
-  )
-  (func $fneg64
-    (param f64)
-    (result f64)
-    (return (f64.neg (get_local 0)))
-  )
-  (func $copysign64
-    (param f64) (param f64)
-    (result f64)
-    (return (f64.copysign (get_local 0) (get_local 1)))
-  )
-  (func $sqrt64
-    (param f64)
-    (result f64)
-    (return (f64.sqrt (get_local 0)))
-  )
-  (func $ceil64
-    (param f64)
-    (result f64)
-    (return (f64.ceil (get_local 0)))
-  )
-  (func $floor64
-    (param f64)
-    (result f64)
-    (return (f64.floor (get_local 0)))
-  )
-  (func $trunc64
-    (param f64)
-    (result f64)
-    (return (f64.trunc (get_local 0)))
-  )
-  (func $nearest64
-    (param f64)
-    (result f64)
-    (return (f64.nearest (get_local 0)))
-  )
-  (func $nearest64_via_rint
-    (param f64)
-    (result f64)
-    (return (f64.nearest (get_local 0)))
-  )
-  (func $fmin64
-    (param f64)
-    (result f64)
-    (return (f64.min (get_local 0) (f64.const 0x0p0)))
-  )
-  (func $fmax64
-    (param f64)
-    (result f64)
-    (return (f64.max (get_local 0) (f64.const 0x0p0)))
-  )
-  (func $fma64
-    (param f64) (param f64) (param f64)
-    (result f64)
-    (return (call $fma (get_local 0) (get_local 1) (get_local 2)))
-  )
-  (memory 0 0
-  )
-)
diff --git a/prototype-wasmate/test/expected-output/fast-isel.wast b/prototype-wasmate/test/expected-output/fast-isel.wast
deleted file mode 100644
index e4a9109..0000000
--- a/prototype-wasmate/test/expected-output/fast-isel.wast
+++ /dev/null
@@ -1,21 +0,0 @@
-;; This file was generated by wasmate.py, which is a script that converts
-;; from the "flat" text assembly syntax emitted by LLVM into the s-expression
-;; syntax expected by the spec repository.
-;;
-;; Note: this is a hack. A real toolchain will eventually be needed.
-;;
-
-(module
-  (export "immediate_f32" $immediate_f32)
-  (export "immediate_f64" $immediate_f64)
-  (func $immediate_f32
-    (result f32)
-    (return (f32.const 0x1.4p1))
-  )
-  (func $immediate_f64
-    (result f64)
-    (return (f64.const 0x1.4p1))
-  )
-  (memory 0 0
-  )
-)
diff --git a/prototype-wasmate/test/expected-output/frem.wast b/prototype-wasmate/test/expected-output/frem.wast
deleted file mode 100644
index 525a2aa..0000000
--- a/prototype-wasmate/test/expected-output/frem.wast
+++ /dev/null
@@ -1,23 +0,0 @@
-;; This file was generated by wasmate.py, which is a script that converts
-;; from the "flat" text assembly syntax emitted by LLVM into the s-expression
-;; syntax expected by the spec repository.
-;;
-;; Note: this is a hack. A real toolchain will eventually be needed.
-;;
-
-(module
-  (export "frem32" $frem32)
-  (export "frem64" $frem64)
-  (func $frem32
-    (param f32) (param f32)
-    (result f32)
-    (return (call $fmodf (get_local 0) (get_local 1)))
-  )
-  (func $frem64
-    (param f64) (param f64)
-    (result f64)
-    (return (call $fmod (get_local 0) (get_local 1)))
-  )
-  (memory 0 0
-  )
-)
diff --git a/prototype-wasmate/test/expected-output/func.wast b/prototype-wasmate/test/expected-output/func.wast
deleted file mode 100644
index 1d90cf7..0000000
--- a/prototype-wasmate/test/expected-output/func.wast
+++ /dev/null
@@ -1,48 +0,0 @@
-;; This file was generated by wasmate.py, which is a script that converts
-;; from the "flat" text assembly syntax emitted by LLVM into the s-expression
-;; syntax expected by the spec repository.
-;;
-;; Note: this is a hack. A real toolchain will eventually be needed.
-;;
-
-(module
-  (export "f0" $f0)
-  (export "f1" $f1)
-  (export "f2" $f2)
-  (export "f3" $f3)
-  (export "f4" $f4)
-  (export "f5" $f5)
-  (func $f0
-    (return)
-  )
-  (func $f1
-    (result i32)
-    (return (i32.const 0))
-  )
-  (func $f2
-    (param i32) (param f32)
-    (result i32)
-    (return (i32.const 0))
-  )
-  (func $f3
-    (param i32) (param f32)
-    (return)
-  )
-  (func $f4
-    (param i32)
-    (result i32)
-    (local i32)
-    (set_local 1 (i32.const 1))
-    (block $BB4_2
-      (br_if (i32.eq (i32.and (get_local 0) (get_local 1)) (i32.const 0)) $BB4_2)
-      (return (i32.const 0))
-    )
-    (return (get_local 1))
-  )
-  (func $f5
-    (result f32)
-    (unreachable)
-  )
-  (memory 0 0
-  )
-)
diff --git a/prototype-wasmate/test/expected-output/global.wast b/prototype-wasmate/test/expected-output/global.wast
deleted file mode 100644
index 3d300ac..0000000
--- a/prototype-wasmate/test/expected-output/global.wast
+++ /dev/null
@@ -1,27 +0,0 @@
-;; This file was generated by wasmate.py, which is a script that converts
-;; from the "flat" text assembly syntax emitted by LLVM into the s-expression
-;; syntax expected by the spec repository.
-;;
-;; Note: this is a hack. A real toolchain will eventually be needed.
-;;
-
-(module
-  (export "foo" $foo)
-  (export "call_memcpy" $call_memcpy)
-  (func $foo
-    (result i32)
-    (return (i32.load offset=20 (i32.const 0)))
-  )
-  (func $call_memcpy
-    (param i32) (param i32) (param i32)
-    (result i32)
-    (call_import $memcpy (get_local 0) (get_local 1) (get_local 2))
-    (return (get_local 0))
-  )
-  (import $memcpy "misctest" "memcpy" (param i32 i32 i32) (result i32))
-  (memory 1184 1184
-    (segment 0
-      "9\05\00\00\00\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00*\00\00\00\ff\ff\ff\ff\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\ff\ff\ff\ff\ff\ff\ff\ff\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\80\00\00\00@\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\80\00\00\00\00\00\00\00@\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\e0\00\00\00"
-    )
-  )
-)
diff --git a/prototype-wasmate/test/expected-output/globl.wast b/prototype-wasmate/test/expected-output/globl.wast
deleted file mode 100644
index 6f969ed..0000000
--- a/prototype-wasmate/test/expected-output/globl.wast
+++ /dev/null
@@ -1,15 +0,0 @@
-;; This file was generated by wasmate.py, which is a script that converts
-;; from the "flat" text assembly syntax emitted by LLVM into the s-expression
-;; syntax expected by the spec repository.
-;;
-;; Note: this is a hack. A real toolchain will eventually be needed.
-;;
-
-(module
-  (export "foo" $foo)
-  (func $foo
-    (return)
-  )
-  (memory 0 0
-  )
-)
diff --git a/prototype-wasmate/test/expected-output/i32.wast b/prototype-wasmate/test/expected-output/i32.wast
deleted file mode 100644
index 8bd95df..0000000
--- a/prototype-wasmate/test/expected-output/i32.wast
+++ /dev/null
@@ -1,119 +0,0 @@
-;; This file was generated by wasmate.py, which is a script that converts
-;; from the "flat" text assembly syntax emitted by LLVM into the s-expression
-;; syntax expected by the spec repository.
-;;
-;; Note: this is a hack. A real toolchain will eventually be needed.
-;;
-
-(module
-  (export "add32" $add32)
-  (export "sub32" $sub32)
-  (export "mul32" $mul32)
-  (export "sdiv32" $sdiv32)
-  (export "udiv32" $udiv32)
-  (export "srem32" $srem32)
-  (export "urem32" $urem32)
-  (export "and32" $and32)
-  (export "or32" $or32)
-  (export "xor32" $xor32)
-  (export "shl32" $shl32)
-  (export "shr32" $shr32)
-  (export "sar32" $sar32)
-  (export "clz32" $clz32)
-  (export "clz32_zero_undef" $clz32_zero_undef)
-  (export "ctz32" $ctz32)
-  (export "ctz32_zero_undef" $ctz32_zero_undef)
-  (export "popcnt32" $popcnt32)
-  (func $add32
-    (param i32) (param i32)
-    (result i32)
-    (return (i32.add (get_local 0) (get_local 1)))
-  )
-  (func $sub32
-    (param i32) (param i32)
-    (result i32)
-    (return (i32.sub (get_local 0) (get_local 1)))
-  )
-  (func $mul32
-    (param i32) (param i32)
-    (result i32)
-    (return (i32.mul (get_local 0) (get_local 1)))
-  )
-  (func $sdiv32
-    (param i32) (param i32)
-    (result i32)
-    (return (i32.div_s (get_local 0) (get_local 1)))
-  )
-  (func $udiv32
-    (param i32) (param i32)
-    (result i32)
-    (return (i32.div_u (get_local 0) (get_local 1)))
-  )
-  (func $srem32
-    (param i32) (param i32)
-    (result i32)
-    (return (i32.rem_s (get_local 0) (get_local 1)))
-  )
-  (func $urem32
-    (param i32) (param i32)
-    (result i32)
-    (return (i32.rem_u (get_local 0) (get_local 1)))
-  )
-  (func $and32
-    (param i32) (param i32)
-    (result i32)
-    (return (i32.and (get_local 0) (get_local 1)))
-  )
-  (func $or32
-    (param i32) (param i32)
-    (result i32)
-    (return (i32.or (get_local 0) (get_local 1)))
-  )
-  (func $xor32
-    (param i32) (param i32)
-    (result i32)
-    (return (i32.xor (get_local 0) (get_local 1)))
-  )
-  (func $shl32
-    (param i32) (param i32)
-    (result i32)
-    (return (i32.shl (get_local 0) (get_local 1)))
-  )
-  (func $shr32
-    (param i32) (param i32)
-    (result i32)
-    (return (i32.shr_u (get_local 0) (get_local 1)))
-  )
-  (func $sar32
-    (param i32) (param i32)
-    (result i32)
-    (return (i32.shr_s (get_local 0) (get_local 1)))
-  )
-  (func $clz32
-    (param i32)
-    (result i32)
-    (return (i32.clz (get_local 0)))
-  )
-  (func $clz32_zero_undef
-    (param i32)
-    (result i32)
-    (return (i32.clz (get_local 0)))
-  )
-  (func $ctz32
-    (param i32)
-    (result i32)
-    (return (i32.ctz (get_local 0)))
-  )
-  (func $ctz32_zero_undef
-    (param i32)
-    (result i32)
-    (return (i32.ctz (get_local 0)))
-  )
-  (func $popcnt32
-    (param i32)
-    (result i32)
-    (return (i32.popcnt (get_local 0)))
-  )
-  (memory 0 0
-  )
-)
diff --git a/prototype-wasmate/test/expected-output/i64.wast b/prototype-wasmate/test/expected-output/i64.wast
deleted file mode 100644
index ec7cf00..0000000
--- a/prototype-wasmate/test/expected-output/i64.wast
+++ /dev/null
@@ -1,119 +0,0 @@
-;; This file was generated by wasmate.py, which is a script that converts
-;; from the "flat" text assembly syntax emitted by LLVM into the s-expression
-;; syntax expected by the spec repository.
-;;
-;; Note: this is a hack. A real toolchain will eventually be needed.
-;;
-
-(module
-  (export "add64" $add64)
-  (export "sub64" $sub64)
-  (export "mul64" $mul64)
-  (export "sdiv64" $sdiv64)
-  (export "udiv64" $udiv64)
-  (export "srem64" $srem64)
-  (export "urem64" $urem64)
-  (export "and64" $and64)
-  (export "or64" $or64)
-  (export "xor64" $xor64)
-  (export "shl64" $shl64)
-  (export "shr64" $shr64)
-  (export "sar64" $sar64)
-  (export "clz64" $clz64)
-  (export "clz64_zero_undef" $clz64_zero_undef)
-  (export "ctz64" $ctz64)
-  (export "ctz64_zero_undef" $ctz64_zero_undef)
-  (export "popcnt64" $popcnt64)
-  (func $add64
-    (param i64) (param i64)
-    (result i64)
-    (return (i64.add (get_local 0) (get_local 1)))
-  )
-  (func $sub64
-    (param i64) (param i64)
-    (result i64)
-    (return (i64.sub (get_local 0) (get_local 1)))
-  )
-  (func $mul64
-    (param i64) (param i64)
-    (result i64)
-    (return (i64.mul (get_local 0) (get_local 1)))
-  )
-  (func $sdiv64
-    (param i64) (param i64)
-    (result i64)
-    (return (i64.div_s (get_local 0) (get_local 1)))
-  )
-  (func $udiv64
-    (param i64) (param i64)
-    (result i64)
-    (return (i64.div_u (get_local 0) (get_local 1)))
-  )
-  (func $srem64
-    (param i64) (param i64)
-    (result i64)
-    (return (i64.rem_s (get_local 0) (get_local 1)))
-  )
-  (func $urem64
-    (param i64) (param i64)
-    (result i64)
-    (return (i64.rem_u (get_local 0) (get_local 1)))
-  )
-  (func $and64
-    (param i64) (param i64)
-    (result i64)
-    (return (i64.and (get_local 0) (get_local 1)))
-  )
-  (func $or64
-    (param i64) (param i64)
-    (result i64)
-    (return (i64.or (get_local 0) (get_local 1)))
-  )
-  (func $xor64
-    (param i64) (param i64)
-    (result i64)
-    (return (i64.xor (get_local 0) (get_local 1)))
-  )
-  (func $shl64
-    (param i64) (param i64)
-    (result i64)
-    (return (i64.shl (get_local 0) (get_local 1)))
-  )
-  (func $shr64
-    (param i64) (param i64)
-    (result i64)
-    (return (i64.shr_u (get_local 0) (get_local 1)))
-  )
-  (func $sar64
-    (param i64) (param i64)
-    (result i64)
-    (return (i64.shr_s (get_local 0) (get_local 1)))
-  )
-  (func $clz64
-    (param i64)
-    (result i64)
-    (return (i64.clz (get_local 0)))
-  )
-  (func $clz64_zero_undef
-    (param i64)
-    (result i64)
-    (return (i64.clz (get_local 0)))
-  )
-  (func $ctz64
-    (param i64)
-    (result i64)
-    (return (i64.ctz (get_local 0)))
-  )
-  (func $ctz64_zero_undef
-    (param i64)
-    (result i64)
-    (return (i64.ctz (get_local 0)))
-  )
-  (func $popcnt64
-    (param i64)
-    (result i64)
-    (return (i64.popcnt (get_local 0)))
-  )
-  (memory 0 0
-  )
-)
diff --git a/prototype-wasmate/test/expected-output/ident.wast b/prototype-wasmate/test/expected-output/ident.wast
deleted file mode 100644
index 3f14404..0000000
--- a/prototype-wasmate/test/expected-output/ident.wast
+++ /dev/null
@@ -1,11 +0,0 @@
-;; This file was generated by wasmate.py, which is a script that converts
-;; from the "flat" text assembly syntax emitted by LLVM into the s-expression
-;; syntax expected by the spec repository.
-;;
-;; Note: this is a hack. A real toolchain will eventually be needed.
-;;
-
-(module
-  (memory 0 0
-  )
-)
diff --git a/prototype-wasmate/test/expected-output/immediates.wast b/prototype-wasmate/test/expected-output/immediates.wast
deleted file mode 100644
index 140aec1..0000000
--- a/prototype-wasmate/test/expected-output/immediates.wast
+++ /dev/null
@@ -1,131 +0,0 @@
-;; This file was generated by wasmate.py, which is a script that converts
-;; from the "flat" text assembly syntax emitted by LLVM into the s-expression
-;; syntax expected by the spec repository.
-;;
-;; Note: this is a hack. A real toolchain will eventually be needed.
-;;
-
-(module
-  (export "zero_i32" $zero_i32)
-  (export "one_i32" $one_i32)
-  (export "max_i32" $max_i32)
-  (export "min_i32" $min_i32)
-  (export "zero_i64" $zero_i64)
-  (export "one_i64" $one_i64)
-  (export "max_i64" $max_i64)
-  (export "min_i64" $min_i64)
-  (export "negzero_f32" $negzero_f32)
-  (export "zero_f32" $zero_f32)
-  (export "one_f32" $one_f32)
-  (export "two_f32" $two_f32)
-  (export "nan_f32" $nan_f32)
-  (export "negnan_f32" $negnan_f32)
-  (export "inf_f32" $inf_f32)
-  (export "neginf_f32" $neginf_f32)
-  (export "negzero_f64" $negzero_f64)
-  (export "zero_f64" $zero_f64)
-  (export "one_f64" $one_f64)
-  (export "two_f64" $two_f64)
-  (export "nan_f64" $nan_f64)
-  (export "negnan_f64" $negnan_f64)
-  (export "inf_f64" $inf_f64)
-  (export "neginf_f64" $neginf_f64)
-  (func $zero_i32
-    (result i32)
-    (return (i32.const 0))
-  )
-  (func $one_i32
-    (result i32)
-    (return (i32.const 1))
-  )
-  (func $max_i32
-    (result i32)
-    (return (i32.const 2147483647))
-  )
-  (func $min_i32
-    (result i32)
-    (return (i32.const -2147483648))
-  )
-  (func $zero_i64
-    (result i64)
-    (return (i64.const 0))
-  )
-  (func $one_i64
-    (result i64)
-    (return (i64.const 1))
-  )
-  (func $max_i64
-    (result i64)
-    (return (i64.const 9223372036854775807))
-  )
-  (func $min_i64
-    (result i64)
-    (return (i64.const -9223372036854775808))
-  )
-  (func $negzero_f32
-    (result f32)
-    (return (f32.const -0x0p0))
-  )
-  (func $zero_f32
-    (result f32)
-    (return (f32.const 0x0p0))
-  )
-  (func $one_f32
-    (result f32)
-    (return (f32.const 0x1p0))
-  )
-  (func $two_f32
-    (result f32)
-    (return (f32.const 0x1p1))
-  )
-  (func $nan_f32
-    (result f32)
-    (return (f32.const nan))
-  )
-  (func $negnan_f32
-    (result f32)
-    (return (f32.const -nan))
-  )
-  (func $inf_f32
-    (result f32)
-    (return (f32.const infinity))
-  )
-  (func $neginf_f32
-    (result f32)
-    (return (f32.const -infinity))
-  )
-  (func $negzero_f64
-    (result f64)
-    (return (f64.const -0x0p0))
-  )
-  (func $zero_f64
-    (result f64)
-    (return (f64.const 0x0p0))
-  )
-  (func $one_f64
-    (result f64)
-    (return (f64.const 0x1p0))
-  )
-  (func $two_f64
-    (result f64)
-    (return (f64.const 0x1p1))
-  )
-  (func $nan_f64
-    (result f64)
-    (return (f64.const nan))
-  )
-  (func $negnan_f64
-    (result f64)
-    (return (f64.const -nan))
-  )
-  (func $inf_f64
-    (result f64)
-    (return (f64.const infinity))
-  )
-  (func $neginf_f64
-    (result f64)
-    (return (f64.const -infinity))
-  )
-  (memory 0 0
-  )
-)
diff --git a/prototype-wasmate/test/expected-output/inline-asm.wast b/prototype-wasmate/test/expected-output/inline-asm.wast
deleted file mode 100644
index 1119a4a..0000000
--- a/prototype-wasmate/test/expected-output/inline-asm.wast
+++ /dev/null
@@ -1,60 +0,0 @@
-;; This file was generated by wasmate.py, which is a script that converts
-;; from the "flat" text assembly syntax emitted by LLVM into the s-expression
-;; syntax expected by the spec repository.
-;;
-;; Note: this is a hack. A real toolchain will eventually be needed.
-;;
-
-(module
-  (export "foo" $foo)
-  (export "bar" $bar)
-  (export "imm" $imm)
-  (export "foo_i64" $foo_i64)
-  (export "X_i16" $X_i16)
-  (export "X_ptr" $X_ptr)
-  (export "funcname" $funcname)
-  (export "varname" $varname)
-  (func $foo
-    (param i32)
-    (result i32)
-    (return (get_local 0))
-  )
-  (func $bar
-    (param i32) (param i32)
-    (return)
-  )
-  (func $imm
-    (result i32)
-    (local i32)
-    (return (get_local 0))
-  )
-  (func $foo_i64
-    (param i64)
-    (result i64)
-    (return (get_local 0))
-  )
-  (func $X_i16
-    (param i32)
-    (local i32)
-    (foo (get_local 1))
-    (i32.store16 offset=0 (get_local 0) (get_local 1))
-    (return)
-  )
-  (func $X_ptr
-    (param i32)
-    (local i32)
-    (foo (get_local 1))
-    (i32.store offset=0 (get_local 0) (get_local 1))
-    (return)
-  )
-  (func $funcname
-    (foo $funcname)
-    (return)
-  )
-  (func $varname
-    (foo 37)
-    (return)
-  )
-  (memory 0 0
-  )
-)
diff --git a/prototype-wasmate/test/expected-output/lcomm-in-text-segment.wast b/prototype-wasmate/test/expected-output/lcomm-in-text-segment.wast
deleted file mode 100644
index a0d0401..0000000
--- a/prototype-wasmate/test/expected-output/lcomm-in-text-segment.wast
+++ /dev/null
@@ -1,14 +0,0 @@
-;; This file was generated by wasmate.py, which is a script that converts
-;; from the "flat" text assembly syntax emitted by LLVM into the s-expression
-;; syntax expected by the spec repository.
-;;
-;; Note: this is a hack. A real toolchain will eventually be needed.
-;;
-
-(module
-  (memory 12 12
-    (segment 8
-      "\04\00\00\00"
-    )
-  )
-)
diff --git a/prototype-wasmate/test/expected-output/legalize.wast b/prototype-wasmate/test/expected-output/legalize.wast
deleted file mode 100644
index 027a43a..0000000
--- a/prototype-wasmate/test/expected-output/legalize.wast
+++ /dev/null
@@ -1,563 +0,0 @@
-;; This file was generated by wasmate.py, which is a script that converts
-;; from the "flat" text assembly syntax emitted by LLVM into the s-expression
-;; syntax expected by the spec repository.
-;;
-;; Note: this is a hack. A real toolchain will eventually be needed.
-;;
-
-(module
-  (export "shl_i3" $shl_i3)
-  (export "shl_i53" $shl_i53)
-  (export "sext_in_reg_i32_i64" $sext_in_reg_i32_i64)
-  (export "fpext_f32_f64" $fpext_f32_f64)
-  (export "fpconv_f64_f32" $fpconv_f64_f32)
-  (export "bigshift" $bigshift)
-  (func $shl_i3
-    (param i32) (param i32) (param i32)
-    (result i32)
-    (return (i32.shl (get_local 0) (i32.and (get_local 1) (i32.const 7))))
-  )
-  (func $shl_i53
-    (param i64) (param i64) (param i32)
-    (result i64)
-    (return (i64.shl (get_local 0) (i64.and (get_local 1) (i64.const 9007199254740991))))
-  )
-  (func $sext_in_reg_i32_i64
-    (param i64)
-    (result i64)
-    (local i64)
-    (set_local 1 (i64.const 32))
-    (return (i64.shr_s (i64.shl (get_local 0) (get_local 1)) (get_local 1)))
-  )
-  (func $fpext_f32_f64
-    (param i32)
-    (result f64)
-    (return (f64.promote/f32 (f32.load offset=0 (get_local 0))))
-  )
-  (func $fpconv_f64_f32
-    (param i32)
-    (result f32)
-    (return (f32.demote/f64 (f64.load offset=0 (get_local 0))))
-  )
-  (func $bigshift
-    (param i32) (param i64) (param i64) (param i64) (param i64) (param i64) (param i64) (param i64) (param i64) (param i64) (param i64) (param i64) (param i64) (param i64) (param i64) (param i64) (param i64) (param i64) (param i64) (param i64) (param i64) (param i64) (param i64) (param i64) (param i64) (param i64) (param i64) (param i64) (param i64) (param i64) (param i64) (param i64) (param i64)
-    (local i64 i64 i64 i64 i64 i64 i64 i64 i64 i64 i64 i64 i64 i64 i64 i64 i64 i32 i64 i32 i32 i32 i32 i32 i32 i64 i64 i64 i32 i32 i64 i64 i64 i32 i32 i64 i32 i32 i64 i32 i32 i32 i64 i64 i64 i64 i64 i64 i64 i64 i64 i64 i64 i64 i32 i64 i64 i64 i32 i64 i64 i32 i64 i64 i64 i64 i64 i64 i64 i64 i64 i64 i64 i64 i64 i64 i32 i64 i64 i64 i64 i64 i64 i64 i64 i64 i64 i64 i64 i64 i64 i64 i64 i64 i64 i64 i64 i64 i64 i64 i64 i64 i32 i64 i64 i64 i64 i64 i64 i64 i64 i64 i64 i64 i64 i64 i64 i64 i64 i64 i64 i64 i64 i64 i64 i64 i64 i64 i64 i64 i64 i64 i64 i64 i64 i64 i64 i64 i64 i64 i64 i64 i64 i64 i64 i64 i64 i64 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32)
-    (set_local 181 (i32.const __stack_pointer))
-    (set_local 181 (i32.load offset=0 (get_local 181)))
-    (set_local 182 (i32.const 1024))
-    (set_local 279 (i32.sub (get_local 181) (get_local 182)))
-    (set_local 182 (i32.const __stack_pointer))
-    (set_local 279 (i32.store offset=0 (get_local 182) (get_local 279)))
-    (set_local 184 (i32.const 480))
-    (set_local 184 (i32.add (get_local 279) (get_local 184)))
-    (call __lshrti3 (get_local 184) (get_local 1) (get_local 2) (i64.sub (i64.const 896) (get_local 17)))
-    (set_local 33 (i64.add (get_local 17) (i64.const -768)))
-    (set_local 185 (i32.const 464))
-    (set_local 185 (i32.add (get_local 279) (get_local 185)))
-    (call __ashlti3 (get_local 185) (get_local 3) (get_local 4) (get_local 33))
-    (set_local 186 (i32.const 496))
-    (set_local 186 (i32.add (get_local 279) (get_local 186)))
-    (call __ashlti3 (get_local 186) (get_local 1) (get_local 2) (i64.add (get_local 17) (i64.const -896)))
-    (set_local 34 (i64.sub (i64.const 640) (get_local 17)))
-    (set_local 187 (i32.const 352))
-    (set_local 187 (i32.add (get_local 279) (get_local 187)))
-    (call __lshrti3 (get_local 187) (get_local 5) (get_local 6) (get_local 34))
-    (set_local 35 (i64.add (get_local 17) (i64.const -512)))
-    (set_local 188 (i32.const 336))
-    (set_local 188 (i32.add (get_local 279) (get_local 188)))
-    (call __ashlti3 (get_local 188) (get_local 7) (get_local 8) (get_local 35))
-    (set_local 36 (i64.add (get_local 17) (i64.const -640)))
-    (set_local 189 (i32.const 368))
-    (set_local 189 (i32.add (get_local 279) (get_local 189)))
-    (call __ashlti3 (get_local 189) (get_local 5) (get_local 6) (get_local 36))
-    (set_local 37 (i64.sub (i64.const 768) (get_local 17)))
-    (set_local 190 (i32.const 432))
-    (set_local 190 (i32.add (get_local 279) (get_local 190)))
-    (call __lshrti3 (get_local 190) (get_local 3) (get_local 4) (get_local 37))
-    (set_local 38 (i64.const 384))
-    (set_local 39 (i64.sub (get_local 38) (get_local 17)))
-    (set_local 191 (i32.const 864))
-    (set_local 191 (i32.add (get_local 279) (get_local 191)))
-    (call __lshrti3 (get_local 191) (get_local 9) (get_local 10) (get_local 39))
-    (set_local 40 (i64.add (get_local 17) (i64.const -256)))
-    (set_local 192 (i32.const 848))
-    (set_local 192 (i32.add (get_local 279) (get_local 192)))
-    (call __ashlti3 (get_local 192) (get_local 11) (get_local 12) (get_local 40))
-    (set_local 41 (i64.add (get_local 17) (i64.const -384)))
-    (set_local 193 (i32.const 880))
-    (set_local 193 (i32.add (get_local 279) (get_local 193)))
-    (call __ashlti3 (get_local 193) (get_local 9) (get_local 10) (get_local 41))
-    (set_local 194 (i32.const 1008))
-    (set_local 194 (i32.add (get_local 279) (get_local 194)))
-    (call __ashlti3 (get_local 194) (get_local 15) (get_local 16) (get_local 17))
-    (set_local 42 (i64.const 128))
-    (set_local 51 (i64.sub (get_local 42) (get_local 17)))
-    (set_local 195 (i32.const 960))
-    (set_local 195 (i32.add (get_local 279) (get_local 195)))
-    (call __lshrti3 (get_local 195) (get_local 13) (get_local 14) (get_local 51))
-    (set_local 43 (i64.add (get_local 17) (i64.const -128)))
-    (set_local 196 (i32.const 976))
-    (set_local 196 (i32.add (get_local 279) (get_local 196)))
-    (call __ashlti3 (get_local 196) (get_local 13) (get_local 14) (get_local 43))
-    (set_local 44 (i64.const 256))
-    (set_local 45 (i64.sub (get_local 44) (get_local 17)))
-    (set_local 197 (i32.const 816))
-    (set_local 197 (i32.add (get_local 279) (get_local 197)))
-    (call __lshrti3 (get_local 197) (get_local 11) (get_local 12) (get_local 45))
-    (set_local 46 (i64.const 512))
-    (set_local 47 (i64.sub (get_local 46) (get_local 17)))
-    (set_local 198 (i32.const 240))
-    (set_local 198 (i32.add (get_local 279) (get_local 198)))
-    (call __lshrti3 (get_local 198) (get_local 7) (get_local 8) (get_local 47))
-    (set_local 199 (i32.const 912))
-    (set_local 199 (i32.add (get_local 279) (get_local 199)))
-    (call __ashlti3 (get_local 199) (get_local 11) (get_local 12) (get_local 17))
-    (set_local 200 (i32.const 928))
-    (set_local 200 (i32.add (get_local 279) (get_local 200)))
-    (call __lshrti3 (get_local 200) (get_local 9) (get_local 10) (get_local 51))
-    (set_local 201 (i32.const 944))
-    (set_local 201 (i32.add (get_local 279) (get_local 201)))
-    (call __ashlti3 (get_local 201) (get_local 9) (get_local 10) (get_local 43))
-    (set_local 48 (i64.sub (get_local 44) (get_local 47)))
-    (set_local 202 (i32.const 80))
-    (set_local 202 (i32.add (get_local 279) (get_local 202)))
-    (call __ashlti3 (get_local 202) (get_local 7) (get_local 8) (get_local 48))
-    (set_local 203 (i32.const 96))
-    (set_local 203 (i32.add (get_local 279) (get_local 203)))
-    (call __lshrti3 (get_local 203) (get_local 5) (get_local 6) (i64.sub (get_local 42) (get_local 48)))
-    (set_local 49 (i64.sub (get_local 42) (get_local 47)))
-    (set_local 204 (i32.const 112))
-    (set_local 204 (i32.add (get_local 279) (get_local 204)))
-    (call __ashlti3 (get_local 204) (get_local 5) (get_local 6) (get_local 49))
-    (set_local 205 (i32.const 48))
-    (set_local 205 (i32.add (get_local 279) (get_local 205)))
-    (call __lshrti3 (get_local 205) (get_local 3) (get_local 4) (get_local 47))
-    (set_local 206 (i32.const 176))
-    (set_local 206 (i32.add (get_local 279) (get_local 206)))
-    (call __lshrti3 (get_local 206) (get_local 7) (get_local 8) (get_local 45))
-    (set_local 207 (i32.const 288))
-    (set_local 207 (i32.add (get_local 279) (get_local 207)))
-    (call __lshrti3 (get_local 207) (get_local 1) (get_local 2) (get_local 34))
-    (set_local 208 (i32.const 272))
-    (set_local 208 (i32.add (get_local 279) (get_local 208)))
-    (call __ashlti3 (get_local 208) (get_local 3) (get_local 4) (get_local 35))
-    (set_local 209 (i32.const 304))
-    (set_local 209 (i32.add (get_local 279) (get_local 209)))
-    (call __ashlti3 (get_local 209) (get_local 1) (get_local 2) (get_local 36))
-    (set_local 210 (i32.const 128))
-    (set_local 210 (i32.add (get_local 279) (get_local 210)))
-    (call __lshrti3 (get_local 210) (get_local 5) (get_local 6) (get_local 45))
-    (set_local 211 (i32.const 144))
-    (set_local 211 (i32.add (get_local 279) (get_local 211)))
-    (call __ashlti3 (get_local 211) (get_local 7) (get_local 8) (i64.sub (get_local 38) (get_local 47)))
-    (set_local 212 (i32.const 160))
-    (set_local 212 (i32.add (get_local 279) (get_local 212)))
-    (call __lshrti3 (get_local 212) (get_local 7) (get_local 8) (get_local 51))
-    (set_local 213 (i32.const 0))
-    (set_local 213 (i32.add (get_local 279) (get_local 213)))
-    (call __lshrti3 (get_local 213) (get_local 1) (get_local 2) (get_local 47))
-    (set_local 214 (i32.const 16))
-    (set_local 214 (i32.add (get_local 279) (get_local 214)))
-    (call __ashlti3 (get_local 214) (get_local 3) (get_local 4) (get_local 49))
-    (set_local 215 (i32.const 32))
-    (set_local 215 (i32.add (get_local 279) (get_local 215)))
-    (call __lshrti3 (get_local 215) (get_local 3) (get_local 4) (get_local 39))
-    (set_local 216 (i32.const 64))
-    (set_local 216 (i32.add (get_local 279) (get_local 216)))
-    (call __ashlti3 (get_local 216) (get_local 5) (get_local 6) (get_local 48))
-    (set_local 217 (i32.const 896))
-    (set_local 217 (i32.add (get_local 279) (get_local 217)))
-    (call __ashlti3 (get_local 217) (get_local 9) (get_local 10) (get_local 17))
-    (set_local 218 (i32.const 256))
-    (set_local 218 (i32.add (get_local 279) (get_local 218)))
-    (call __ashlti3 (get_local 218) (get_local 1) (get_local 2) (get_local 35))
-    (set_local 219 (i32.const 192))
-    (set_local 219 (i32.add (get_local 279) (get_local 219)))
-    (call __lshrti3 (get_local 219) (get_local 5) (get_local 6) (get_local 47))
-    (set_local 220 (i32.const 208))
-    (set_local 220 (i32.add (get_local 279) (get_local 220)))
-    (call __ashlti3 (get_local 220) (get_local 7) (get_local 8) (get_local 49))
-    (set_local 221 (i32.const 224))
-    (set_local 221 (i32.add (get_local 279) (get_local 221)))
-    (call __lshrti3 (get_local 221) (get_local 7) (get_local 8) (get_local 39))
-    (set_local 222 (i32.const 768))
-    (set_local 222 (i32.add (get_local 279) (get_local 222)))
-    (call __lshrti3 (get_local 222) (get_local 9) (get_local 10) (get_local 45))
-    (set_local 49 (i64.sub (get_local 42) (get_local 45)))
-    (set_local 223 (i32.const 784))
-    (set_local 223 (i32.add (get_local 279) (get_local 223)))
-    (call __ashlti3 (get_local 223) (get_local 11) (get_local 12) (get_local 49))
-    (set_local 224 (i32.const 800))
-    (set_local 224 (i32.add (get_local 279) (get_local 224)))
-    (call __lshrti3 (get_local 224) (get_local 11) (get_local 12) (get_local 51))
-    (set_local 225 (i32.const 992))
-    (set_local 225 (i32.add (get_local 279) (get_local 225)))
-    (call __ashlti3 (get_local 225) (get_local 13) (get_local 14) (get_local 17))
-    (set_local 226 (i32.const 832))
-    (set_local 226 (i32.add (get_local 279) (get_local 226)))
-    (call __ashlti3 (get_local 226) (get_local 9) (get_local 10) (get_local 40))
-    (set_local 227 (i32.const 384))
-    (set_local 227 (i32.add (get_local 279) (get_local 227)))
-    (call __lshrti3 (get_local 227) (get_local 1) (get_local 2) (get_local 37))
-    (set_local 228 (i32.const 400))
-    (set_local 228 (i32.add (get_local 279) (get_local 228)))
-    (call __ashlti3 (get_local 228) (get_local 3) (get_local 4) (i64.sub (get_local 42) (get_local 37)))
-    (set_local 229 (i32.const 416))
-    (set_local 229 (i32.add (get_local 279) (get_local 229)))
-    (call __lshrti3 (get_local 229) (get_local 3) (get_local 4) (get_local 34))
-    (set_local 230 (i32.const 320))
-    (set_local 230 (i32.add (get_local 279) (get_local 230)))
-    (call __ashlti3 (get_local 230) (get_local 5) (get_local 6) (get_local 35))
-    (set_local 231 (i32.const 448))
-    (set_local 231 (i32.add (get_local 279) (get_local 231)))
-    (call __ashlti3 (get_local 231) (get_local 1) (get_local 2) (get_local 33))
-    (set_local 232 (i32.const 736))
-    (set_local 232 (i32.add (get_local 279) (get_local 232)))
-    (call __lshrti3 (get_local 232) (get_local 1) (get_local 2) (get_local 39))
-    (set_local 233 (i32.const 720))
-    (set_local 233 (i32.add (get_local 279) (get_local 233)))
-    (call __ashlti3 (get_local 233) (get_local 3) (get_local 4) (get_local 40))
-    (set_local 234 (i32.const 752))
-    (set_local 234 (i32.add (get_local 279) (get_local 234)))
-    (call __ashlti3 (get_local 234) (get_local 1) (get_local 2) (get_local 41))
-    (set_local 235 (i32.const 592))
-    (set_local 235 (i32.add (get_local 279) (get_local 235)))
-    (call __ashlti3 (get_local 235) (get_local 7) (get_local 8) (get_local 17))
-    (set_local 236 (i32.const 608))
-    (set_local 236 (i32.add (get_local 279) (get_local 236)))
-    (call __lshrti3 (get_local 236) (get_local 5) (get_local 6) (get_local 51))
-    (set_local 237 (i32.const 624))
-    (set_local 237 (i32.add (get_local 279) (get_local 237)))
-    (call __ashlti3 (get_local 237) (get_local 5) (get_local 6) (get_local 43))
-    (set_local 238 (i32.const 688))
-    (set_local 238 (i32.add (get_local 279) (get_local 238)))
-    (call __lshrti3 (get_local 238) (get_local 3) (get_local 4) (get_local 45))
-    (set_local 239 (i32.const 640))
-    (set_local 239 (i32.add (get_local 279) (get_local 239)))
-    (call __lshrti3 (get_local 239) (get_local 1) (get_local 2) (get_local 45))
-    (set_local 240 (i32.const 656))
-    (set_local 240 (i32.add (get_local 279) (get_local 240)))
-    (call __ashlti3 (get_local 240) (get_local 3) (get_local 4) (get_local 49))
-    (set_local 241 (i32.const 672))
-    (set_local 241 (i32.add (get_local 279) (get_local 241)))
-    (call __lshrti3 (get_local 241) (get_local 3) (get_local 4) (get_local 51))
-    (set_local 242 (i32.const 576))
-    (set_local 242 (i32.add (get_local 279) (get_local 242)))
-    (call __ashlti3 (get_local 242) (get_local 5) (get_local 6) (get_local 17))
-    (set_local 243 (i32.const 704))
-    (set_local 243 (i32.add (get_local 279) (get_local 243)))
-    (call __ashlti3 (get_local 243) (get_local 1) (get_local 2) (get_local 40))
-    (set_local 244 (i32.const 528))
-    (set_local 244 (i32.add (get_local 279) (get_local 244)))
-    (call __ashlti3 (get_local 244) (get_local 3) (get_local 4) (get_local 17))
-    (set_local 245 (i32.const 544))
-    (set_local 245 (i32.add (get_local 279) (get_local 245)))
-    (call __lshrti3 (get_local 245) (get_local 1) (get_local 2) (get_local 51))
-    (set_local 246 (i32.const 560))
-    (set_local 246 (i32.add (get_local 279) (get_local 246)))
-    (call __ashlti3 (get_local 246) (get_local 1) (get_local 2) (get_local 43))
-    (set_local 247 (i32.const 512))
-    (set_local 247 (i32.add (get_local 279) (get_local 247)))
-    (call __ashlti3 (get_local 247) (get_local 1) (get_local 2) (get_local 17))
-    (set_local 39 (i64.load offset=480 (get_local 279)))
-    (set_local 43 (i64.load offset=464 (get_local 279)))
-    (set_local 34 (i64.load offset=496 (get_local 279)))
-    (set_local 51 (i64.const 0))
-    (set_local 49 (i64.load offset=352 (get_local 279)))
-    (set_local 36 (i64.load offset=336 (get_local 279)))
-    (set_local 38 (i64.load offset=368 (get_local 279)))
-    (set_local 41 (i64.load offset=432 (get_local 279)))
-    (set_local 58 (i64.load offset=864 (get_local 279)))
-    (set_local 59 (i64.load offset=848 (get_local 279)))
-    (set_local 60 (i64.load offset=880 (get_local 279)))
-    (set_local 63 (i64.load offset=1008 (get_local 279)))
-    (set_local 64 (i64.load offset=960 (get_local 279)))
-    (set_local 65 (i64.load offset=976 (get_local 279)))
-    (set_local 68 (i64.load offset=816 (get_local 279)))
-    (set_local 71 (i64.load offset=240 (get_local 279)))
-    (set_local 50 (i64.lt_u (get_local 33) (get_local 42)))
-    (set_local 52 (i64.eq (get_local 33) (get_local 51)))
-    (set_local 53 (i64.lt_u (get_local 35) (get_local 42)))
-    (set_local 54 (i64.eq (get_local 35) (get_local 51)))
-    (set_local 55 (i64.lt_u (get_local 37) (get_local 42)))
-    (set_local 56 (i64.lt_u (get_local 35) (get_local 44)))
-    (set_local 57 (i64.lt_u (get_local 40) (get_local 42)))
-    (set_local 61 (i64.eq (get_local 40) (get_local 51)))
-    (set_local 62 (i64.lt_u (get_local 17) (get_local 42)))
-    (set_local 66 (i64.eq (get_local 17) (get_local 51)))
-    (set_local 67 (i64.lt_u (get_local 45) (get_local 42)))
-    (set_local 69 (i64.lt_u (get_local 17) (get_local 44)))
-    (set_local 70 (i64.lt_u (get_local 47) (get_local 42)))
-    (set_local 72 (i64.lt_u (get_local 47) (get_local 44)))
-    (set_local 73 (i64.lt_u (get_local 17) (get_local 46)))
-    (set_local 74 (i32.const 8))
-    (set_local 248 (i32.const 480))
-    (set_local 248 (i32.add (get_local 279) (get_local 248)))
-    (set_local 17 (i64.load offset=0 (i32.add (get_local 248) (get_local 74))))
-    (set_local 249 (i32.const 464))
-    (set_local 249 (i32.add (get_local 279) (get_local 249)))
-    (set_local 35 (i64.load offset=0 (i32.add (get_local 249) (get_local 74))))
-    (set_local 250 (i32.const 496))
-    (set_local 250 (i32.add (get_local 279) (get_local 250)))
-    (set_local 40 (i64.load offset=0 (i32.add (get_local 250) (get_local 74))))
-    (set_local 251 (i32.const 352))
-    (set_local 251 (i32.add (get_local 279) (get_local 251)))
-    (set_local 44 (i64.load offset=0 (i32.add (get_local 251) (get_local 74))))
-    (set_local 252 (i32.const 336))
-    (set_local 252 (i32.add (get_local 279) (get_local 252)))
-    (set_local 33 (i64.load offset=0 (i32.add (get_local 252) (get_local 74))))
-    (set_local 253 (i32.const 368))
-    (set_local 253 (i32.add (get_local 279) (get_local 253)))
-    (set_local 46 (i64.load offset=0 (i32.add (get_local 253) (get_local 74))))
-    (set_local 254 (i32.const 432))
-    (set_local 254 (i32.add (get_local 279) (get_local 254)))
-    (set_local 75 (i64.load offset=0 (i32.add (get_local 254) (get_local 74))))
-    (set_local 255 (i32.const 864))
-    (set_local 255 (i32.add (get_local 279) (get_local 255)))
-    (set_local 76 (i64.load offset=0 (i32.add (get_local 255) (get_local 74))))
-    (set_local 256 (i32.const 848))
-    (set_local 256 (i32.add (get_local 279) (get_local 256)))
-    (set_local 77 (i64.load offset=0 (i32.add (get_local 256) (get_local 74))))
-    (set_local 257 (i32.const 880))
-    (set_local 257 (i32.add (get_local 279) (get_local 257)))
-    (set_local 78 (i64.load offset=0 (i32.add (get_local 257) (get_local 74))))
-    (set_local 258 (i32.const 1008))
-    (set_local 258 (i32.add (get_local 279) (get_local 258)))
-    (set_local 79 (i64.load offset=0 (i32.add (get_local 258) (get_local 74))))
-    (set_local 259 (i32.const 960))
-    (set_local 259 (i32.add (get_local 279) (get_local 259)))
-    (set_local 80 (i64.load offset=0 (i32.add (get_local 259) (get_local 74))))
-    (set_local 260 (i32.const 976))
-    (set_local 260 (i32.add (get_local 279) (get_local 260)))
-    (set_local 81 (i64.load offset=0 (i32.add (get_local 260) (get_local 74))))
-    (set_local 261 (i32.const 816))
-    (set_local 261 (i32.add (get_local 279) (get_local 261)))
-    (set_local 82 (i64.load offset=0 (i32.add (get_local 261) (get_local 74))))
-    (set_local 262 (i32.const 240))
-    (set_local 262 (i32.add (get_local 279) (get_local 262)))
-    (set_local 83 (i64.load offset=0 (i32.add (get_local 262) (get_local 74))))
-    (set_local 84 (i64.load offset=912 (get_local 279)))
-    (set_local 85 (i64.load offset=928 (get_local 279)))
-    (set_local 86 (i64.load offset=944 (get_local 279)))
-    (set_local 88 (i64.load offset=80 (get_local 279)))
-    (set_local 89 (i64.load offset=96 (get_local 279)))
-    (set_local 90 (i64.load offset=112 (get_local 279)))
-    (set_local 92 (i64.load offset=48 (get_local 279)))
-    (set_local 93 (i64.load offset=176 (get_local 279)))
-    (set_local 95 (i64.load offset=288 (get_local 279)))
-    (set_local 96 (i64.load offset=272 (get_local 279)))
-    (set_local 87 (i64.lt_u (get_local 48) (get_local 42)))
-    (set_local 91 (i64.eq (get_local 48) (get_local 51)))
-    (set_local 94 (i64.eq (get_local 47) (get_local 51)))
-    (set_local 42 (i64.load offset=304 (get_local 279)))
-    (set_local 263 (i32.const 912))
-    (set_local 263 (i32.add (get_local 279) (get_local 263)))
-    (set_local 47 (i64.load offset=0 (i32.add (get_local 263) (get_local 74))))
-    (set_local 264 (i32.const 928))
-    (set_local 264 (i32.add (get_local 279) (get_local 264)))
-    (set_local 48 (i64.load offset=0 (i32.add (get_local 264) (get_local 74))))
-    (set_local 265 (i32.const 944))
-    (set_local 265 (i32.add (get_local 279) (get_local 265)))
-    (set_local 97 (i64.load offset=0 (i32.add (get_local 265) (get_local 74))))
-    (set_local 266 (i32.const 80))
-    (set_local 266 (i32.add (get_local 279) (get_local 266)))
-    (set_local 98 (i64.load offset=0 (i32.add (get_local 266) (get_local 74))))
-    (set_local 267 (i32.const 96))
-    (set_local 267 (i32.add (get_local 279) (get_local 267)))
-    (set_local 99 (i64.load offset=0 (i32.add (get_local 267) (get_local 74))))
-    (set_local 268 (i32.const 112))
-    (set_local 268 (i32.add (get_local 279) (get_local 268)))
-    (set_local 100 (i64.load offset=0 (i32.add (get_local 268) (get_local 74))))
-    (set_local 269 (i32.const 48))
-    (set_local 269 (i32.add (get_local 279) (get_local 269)))
-    (set_local 101 (i64.load offset=0 (i32.add (get_local 269) (get_local 74))))
-    (set_local 270 (i32.const 176))
-    (set_local 270 (i32.add (get_local 279) (get_local 270)))
-    (set_local 102 (i64.load offset=0 (i32.add (get_local 270) (get_local 74))))
-    (set_local 271 (i32.const 288))
-    (set_local 271 (i32.add (get_local 279) (get_local 271)))
-    (set_local 103 (i64.load offset=0 (i32.add (get_local 271) (get_local 74))))
-    (set_local 272 (i32.const 272))
-    (set_local 272 (i32.add (get_local 279) (get_local 272)))
-    (set_local 104 (i64.load offset=0 (i32.add (get_local 272) (get_local 74))))
-    (set_local 273 (i32.const 304))
-    (set_local 273 (i32.add (get_local 279) (get_local 273)))
-    (set_local 105 (i64.load offset=0 (i32.add (get_local 273) (get_local 74))))
-    (set_local 106 (i64.load offset=128 (get_local 279)))
-    (set_local 107 (i64.load offset=144 (get_local 279)))
-    (set_local 108 (i64.load offset=160 (get_local 279)))
-    (set_local 110 (i64.load offset=0 (get_local 279)))
-    (set_local 111 (i64.load offset=16 (get_local 279)))
-    (set_local 112 (i64.load offset=32 (get_local 279)))
-    (set_local 113 (i64.load offset=64 (get_local 279)))
-    (set_local 114 (i64.load offset=896 (get_local 279)))
-    (set_local 109 (i64.eq (get_local 45) (get_local 51)))
-    (set_local 45 (i64.load offset=256 (get_local 279)))
-    (set_local 274 (i32.const 128))
-    (set_local 274 (i32.add (get_local 279) (get_local 274)))
-    (set_local 115 (i64.load offset=0 (i32.add (get_local 274) (get_local 74))))
-    (set_local 275 (i32.const 144))
-    (set_local 275 (i32.add (get_local 279) (get_local 275)))
-    (set_local 116 (i64.load offset=0 (i32.add (get_local 275) (get_local 74))))
-    (set_local 276 (i32.const 160))
-    (set_local 276 (i32.add (get_local 279) (get_local 276)))
-    (set_local 117 (i64.load offset=0 (i32.add (get_local 276) (get_local 74))))
-    (set_local 277 (i32.const 0))
-    (set_local 277 (i32.add (get_local 279) (get_local 277)))
-    (set_local 118 (i64.load offset=0 (i32.add (get_local 277) (get_local 74))))
-    (set_local 278 (i32.const 16))
-    (set_local 278 (i32.add (get_local 279) (get_local 278)))
-    (set_local 119 (i64.load offset=0 (i32.add (get_local 278) (get_local 74))))
-    (set_local 279 (i32.const 32))
-    (set_local 279 (i32.add (get_local 279) (get_local 279)))
-    (set_local 120 (i64.load offset=0 (i32.add (get_local 279) (get_local 74))))
-    (set_local 280 (i32.const 64))
-    (set_local 280 (i32.add (get_local 279) (get_local 280)))
-    (set_local 121 (i64.load offset=0 (i32.add (get_local 280) (get_local 74))))
-    (set_local 281 (i32.const 896))
-    (set_local 281 (i32.add (get_local 279) (get_local 281)))
-    (set_local 122 (i64.load offset=0 (i32.add (get_local 281) (get_local 74))))
-    (set_local 282 (i32.const 256))
-    (set_local 282 (i32.add (get_local 279) (get_local 282)))
-    (set_local 123 (i64.load offset=0 (i32.add (get_local 282) (get_local 74))))
-    (set_local 124 (i64.load offset=192 (get_local 279)))
-    (set_local 125 (i64.load offset=208 (get_local 279)))
-    (set_local 126 (i64.load offset=224 (get_local 279)))
-    (set_local 127 (i64.load offset=768 (get_local 279)))
-    (set_local 128 (i64.load offset=784 (get_local 279)))
-    (set_local 129 (i64.load offset=800 (get_local 279)))
-    (set_local 130 (i64.load offset=992 (get_local 279)))
-    (set_local 131 (i64.load offset=832 (get_local 279)))
-    (set_local 132 (i64.load offset=384 (get_local 279)))
-    (set_local 133 (i64.load offset=400 (get_local 279)))
-    (set_local 134 (i64.load offset=416 (get_local 279)))
-    (set_local 136 (i64.load offset=320 (get_local 279)))
-    (set_local 135 (i64.eq (get_local 37) (get_local 51)))
-    (set_local 37 (i64.load offset=448 (get_local 279)))
-    (set_local 283 (i32.const 192))
-    (set_local 283 (i32.add (get_local 279) (get_local 283)))
-    (set_local 137 (i64.load offset=0 (i32.add (get_local 283) (get_local 74))))
-    (set_local 284 (i32.const 208))
-    (set_local 284 (i32.add (get_local 279) (get_local 284)))
-    (set_local 138 (i64.load offset=0 (i32.add (get_local 284) (get_local 74))))
-    (set_local 285 (i32.const 224))
-    (set_local 285 (i32.add (get_local 279) (get_local 285)))
-    (set_local 139 (i64.load offset=0 (i32.add (get_local 285) (get_local 74))))
-    (set_local 286 (i32.const 768))
-    (set_local 286 (i32.add (get_local 279) (get_local 286)))
-    (set_local 140 (i64.load offset=0 (i32.add (get_local 286) (get_local 74))))
-    (set_local 287 (i32.const 784))
-    (set_local 287 (i32.add (get_local 279) (get_local 287)))
-    (set_local 141 (i64.load offset=0 (i32.add (get_local 287) (get_local 74))))
-    (set_local 288 (i32.const 800))
-    (set_local 288 (i32.add (get_local 279) (get_local 288)))
-    (set_local 142 (i64.load offset=0 (i32.add (get_local 288) (get_local 74))))
-    (set_local 289 (i32.const 992))
-    (set_local 289 (i32.add (get_local 279) (get_local 289)))
-    (set_local 143 (i64.load offset=0 (i32.add (get_local 289) (get_local 74))))
-    (set_local 290 (i32.const 832))
-    (set_local 290 (i32.add (get_local 279) (get_local 290)))
-    (set_local 144 (i64.load offset=0 (i32.add (get_local 290) (get_local 74))))
-    (set_local 291 (i32.const 384))
-    (set_local 291 (i32.add (get_local 279) (get_local 291)))
-    (set_local 145 (i64.load offset=0 (i32.add (get_local 291) (get_local 74))))
-    (set_local 292 (i32.const 400))
-    (set_local 292 (i32.add (get_local 279) (get_local 292)))
-    (set_local 146 (i64.load offset=0 (i32.add (get_local 292) (get_local 74))))
-    (set_local 293 (i32.const 416))
-    (set_local 293 (i32.add (get_local 279) (get_local 293)))
-    (set_local 147 (i64.load offset=0 (i32.add (get_local 293) (get_local 74))))
-    (set_local 294 (i32.const 320))
-    (set_local 294 (i32.add (get_local 279) (get_local 294)))
-    (set_local 148 (i64.load offset=0 (i32.add (get_local 294) (get_local 74))))
-    (set_local 295 (i32.const 448))
-    (set_local 295 (i32.add (get_local 279) (get_local 295)))
-    (set_local 149 (i64.load offset=0 (i32.add (get_local 295) (get_local 74))))
-    (set_local 150 (i64.load offset=736 (get_local 279)))
-    (set_local 151 (i64.load offset=720 (get_local 279)))
-    (set_local 152 (i64.load offset=752 (get_local 279)))
-    (set_local 153 (i64.load offset=592 (get_local 279)))
-    (set_local 154 (i64.load offset=608 (get_local 279)))
-    (set_local 155 (i64.load offset=624 (get_local 279)))
-    (set_local 156 (i64.load offset=688 (get_local 279)))
-    (set_local 296 (i32.const 736))
-    (set_local 296 (i32.add (get_local 279) (get_local 296)))
-    (set_local 157 (i64.load offset=0 (i32.add (get_local 296) (get_local 74))))
-    (set_local 297 (i32.const 720))
-    (set_local 297 (i32.add (get_local 279) (get_local 297)))
-    (set_local 158 (i64.load offset=0 (i32.add (get_local 297) (get_local 74))))
-    (set_local 298 (i32.const 752))
-    (set_local 298 (i32.add (get_local 279) (get_local 298)))
-    (set_local 159 (i64.load offset=0 (i32.add (get_local 298) (get_local 74))))
-    (set_local 299 (i32.const 592))
-    (set_local 299 (i32.add (get_local 279) (get_local 299)))
-    (set_local 160 (i64.load offset=0 (i32.add (get_local 299) (get_local 74))))
-    (set_local 300 (i32.const 608))
-    (set_local 300 (i32.add (get_local 279) (get_local 300)))
-    (set_local 161 (i64.load offset=0 (i32.add (get_local 300) (get_local 74))))
-    (set_local 301 (i32.const 624))
-    (set_local 301 (i32.add (get_local 279) (get_local 301)))
-    (set_local 162 (i64.load offset=0 (i32.add (get_local 301) (get_local 74))))
-    (set_local 302 (i32.const 688))
-    (set_local 302 (i32.add (get_local 279) (get_local 302)))
-    (set_local 163 (i64.load offset=0 (i32.add (get_local 302) (get_local 74))))
-    (set_local 164 (i64.load offset=640 (get_local 279)))
-    (set_local 165 (i64.load offset=656 (get_local 279)))
-    (set_local 166 (i64.load offset=672 (get_local 279)))
-    (set_local 167 (i64.load offset=576 (get_local 279)))
-    (set_local 168 (i64.load offset=704 (get_local 279)))
-    (set_local 303 (i32.const 640))
-    (set_local 303 (i32.add (get_local 279) (get_local 303)))
-    (set_local 169 (i64.load offset=0 (i32.add (get_local 303) (get_local 74))))
-    (set_local 304 (i32.const 656))
-    (set_local 304 (i32.add (get_local 279) (get_local 304)))
-    (set_local 170 (i64.load offset=0 (i32.add (get_local 304) (get_local 74))))
-    (set_local 305 (i32.const 672))
-    (set_local 305 (i32.add (get_local 279) (get_local 305)))
-    (set_local 171 (i64.load offset=0 (i32.add (get_local 305) (get_local 74))))
-    (set_local 306 (i32.const 576))
-    (set_local 306 (i32.add (get_local 279) (get_local 306)))
-    (set_local 172 (i64.load offset=0 (i32.add (get_local 306) (get_local 74))))
-    (set_local 307 (i32.const 704))
-    (set_local 307 (i32.add (get_local 279) (get_local 307)))
-    (set_local 173 (i64.load offset=0 (i32.add (get_local 307) (get_local 74))))
-    (set_local 174 (i64.load offset=528 (get_local 279)))
-    (set_local 175 (i64.load offset=544 (get_local 279)))
-    (set_local 176 (i64.load offset=560 (get_local 279)))
-    (set_local 308 (i32.const 528))
-    (set_local 308 (i32.add (get_local 279) (get_local 308)))
-    (set_local 177 (i64.load offset=0 (i32.add (get_local 308) (get_local 74))))
-    (set_local 309 (i32.const 544))
-    (set_local 309 (i32.add (get_local 279) (get_local 309)))
-    (set_local 178 (i64.load offset=0 (i32.add (get_local 309) (get_local 74))))
-    (set_local 310 (i32.const 560))
-    (set_local 310 (i32.add (get_local 279) (get_local 310)))
-    (set_local 179 (i64.load offset=0 (i32.add (get_local 310) (get_local 74))))
-    (set_local 180 (i64.load offset=512 (get_local 279)))
-    (set_local 311 (i32.const 512))
-    (set_local 311 (i32.add (get_local 279) (get_local 311)))
-    (i64.store offset=0 (i32.add (get_local 0) (get_local 74)) (i64.select (get_local 73) (i64.select (get_local 69) (i64.select (get_local 62) (i64.load offset=0 (i32.add (get_local 311) (get_local 74))) (get_local 51)) (get_local 51)) (get_local 51)))
-    (i64.store offset=0 (get_local 0) (i64.select (get_local 73) (i64.select (get_local 69) (i64.select (get_local 62) (get_local 180) (get_local 51)) (get_local 51)) (get_local 51)))
-    (i64.store offset=0 (i32.add (get_local 0) (i32.const 24)) (i64.select (get_local 73) (i64.select (get_local 69) (i64.select (get_local 66) (get_local 4) (i64.select (get_local 62) (i64.or (get_local 177) (get_local 178)) (get_local 179))) (get_local 51)) (get_local 51)))
-    (i64.store offset=0 (i32.add (get_local 0) (i32.const 16)) (i64.select (get_local 73) (i64.select (get_local 69) (i64.select (get_local 66) (get_local 3) (i64.select (get_local 62) (i64.or (get_local 174) (get_local 175)) (get_local 176))) (get_local 51)) (get_local 51)))
-    (i64.store offset=0 (i32.add (get_local 0) (i32.const 56)) (i64.select (get_local 73) (i64.select (get_local 66) (get_local 8) (i64.select (get_local 69) (i64.or (i64.select (get_local 66) (get_local 8) (i64.select (get_local 62) (i64.or (get_local 160) (get_local 161)) (get_local 162))) (i64.select (get_local 67) (get_local 163) (get_local 51))) (i64.select (get_local 61) (get_local 4) (i64.select (get_local 57) (i64.or (get_local 158) (get_local 157)) (get_local 159))))) (get_local 51)))
-    (i64.store offset=0 (i32.add (get_local 0) (i32.const 48)) (i64.select (get_local 73) (i64.select (get_local 66) (get_local 7) (i64.select (get_local 69) (i64.or (i64.select (get_local 66) (get_local 7) (i64.select (get_local 62) (i64.or (get_local 153) (get_local 154)) (get_local 155))) (i64.select (get_local 67) (get_local 156) (get_local 51))) (i64.select (get_local 61) (get_local 3) (i64.select (get_local 57) (i64.or (get_local 151) (get_local 150)) (get_local 152))))) (get_local 51)))
-    (i64.store offset=0 (i32.add (get_local 0) (i32.const 40)) (i64.select (get_local 73) (i64.select (get_local 66) (get_local 6) (i64.select (get_local 69) (i64.or (i64.select (get_local 62) (get_local 172) (get_local 51)) (i64.select (get_local 109) (get_local 2) (i64.select (get_local 67) (i64.or (get_local 169) (get_local 170)) (get_local 171)))) (i64.select (get_local 57) (get_local 173) (get_local 51)))) (get_local 51)))
-    (i64.store offset=0 (i32.add (get_local 0) (i32.const 32)) (i64.select (get_local 73) (i64.select (get_local 66) (get_local 5) (i64.select (get_local 69) (i64.or (i64.select (get_local 62) (get_local 167) (get_local 51)) (i64.select (get_local 109) (get_local 1) (i64.select (get_local 67) (i64.or (get_local 164) (get_local 165)) (get_local 166)))) (i64.select (get_local 57) (get_local 168) (get_local 51)))) (get_local 51)))
-    (i64.store offset=0 (i32.add (get_local 0) (i32.const 120)) (i64.select (get_local 66) (get_local 16) (i64.select (get_local 73) (i64.or (i64.select (get_local 66) (get_local 16) (i64.select (get_local 69) (i64.or (i64.select (get_local 66) (get_local 16) (i64.select (get_local 62) (i64.or (get_local 79) (get_local 80)) (get_local 81))) (i64.select (get_local 67) (get_local 82) (get_local 51))) (i64.select (get_local 61) (get_local 12) (i64.select (get_local 57) (i64.or (get_local 77) (get_local 76)) (get_local 78))))) (i64.select (get_local 72) (i64.select (get_local 70) (get_local 83) (get_local 51)) (get_local 51))) (i64.select (get_local 54) (get_local 8) (i64.select (get_local 56) (i64.or (i64.select (get_local 54) (get_local 8) (i64.select (get_local 53) (i64.or (get_local 33) (get_local 44)) (get_local 46))) (i64.select (get_local 55) (get_local 75) (get_local 51))) (i64.select (get_local 52) (get_local 4) (i64.select (get_local 50) (i64.or (get_local 35) (get_local 17)) (get_local 40))))))))
-    (i64.store offset=0 (i32.add (get_local 0) (i32.const 112)) (i64.select (get_local 66) (get_local 15) (i64.select (get_local 73) (i64.or (i64.select (get_local 66) (get_local 15) (i64.select (get_local 69) (i64.or (i64.select (get_local 66) (get_local 15) (i64.select (get_local 62) (i64.or (get_local 63) (get_local 64)) (get_local 65))) (i64.select (get_local 67) (get_local 68) (get_local 51))) (i64.select (get_local 61) (get_local 11) (i64.select (get_local 57) (i64.or (get_local 59) (get_local 58)) (get_local 60))))) (i64.select (get_local 72) (i64.select (get_local 70) (get_local 71) (get_local 51)) (get_local 51))) (i64.select (get_local 54) (get_local 7) (i64.select (get_local 56) (i64.or (i64.select (get_local 54) (get_local 7) (i64.select (get_local 53) (i64.or (get_local 36) (get_local 49)) (get_local 38))) (i64.select (get_local 55) (get_local 41) (get_local 51))) (i64.select (get_local 52) (get_local 3) (i64.select (get_local 50) (i64.or (get_local 43) (get_local 39)) (get_local 34))))))))
-    (i64.store offset=0 (i32.add (get_local 0) (i32.const 104)) (i64.select (get_local 66) (get_local 14) (i64.select (get_local 73) (i64.or (i64.select (get_local 66) (get_local 14) (i64.select (get_local 69) (i64.or (i64.select (get_local 62) (get_local 143) (get_local 51)) (i64.select (get_local 109) (get_local 10) (i64.select (get_local 67) (i64.or (get_local 140) (get_local 141)) (get_local 142)))) (i64.select (get_local 57) (get_local 144) (get_local 51)))) (i64.select (get_local 72) (i64.select (get_local 94) (get_local 6) (i64.select (get_local 70) (i64.or (get_local 137) (get_local 138)) (get_local 139))) (get_local 51))) (i64.select (get_local 54) (get_local 6) (i64.select (get_local 56) (i64.or (i64.select (get_local 53) (get_local 148) (get_local 51)) (i64.select (get_local 135) (get_local 2) (i64.select (get_local 55) (i64.or (get_local 145) (get_local 146)) (get_local 147)))) (i64.select (get_local 50) (get_local 149) (get_local 51)))))))
-    (i64.store offset=0 (i32.add (get_local 0) (i32.const 96)) (i64.select (get_local 66) (get_local 13) (i64.select (get_local 73) (i64.or (i64.select (get_local 66) (get_local 13) (i64.select (get_local 69) (i64.or (i64.select (get_local 62) (get_local 130) (get_local 51)) (i64.select (get_local 109) (get_local 9) (i64.select (get_local 67) (i64.or (get_local 127) (get_local 128)) (get_local 129)))) (i64.select (get_local 57) (get_local 131) (get_local 51)))) (i64.select (get_local 72) (i64.select (get_local 94) (get_local 5) (i64.select (get_local 70) (i64.or (get_local 124) (get_local 125)) (get_local 126))) (get_local 51))) (i64.select (get_local 54) (get_local 5) (i64.select (get_local 56) (i64.or (i64.select (get_local 53) (get_local 136) (get_local 51)) (i64.select (get_local 135) (get_local 1) (i64.select (get_local 55) (i64.or (get_local 132) (get_local 133)) (get_local 134)))) (i64.select (get_local 50) (get_local 37) (get_local 51)))))))
-    (i64.store offset=0 (i32.add (get_local 0) (i32.const 72)) (i64.select (get_local 66) (get_local 10) (i64.select (get_local 73) (i64.or (i64.select (get_local 69) (i64.select (get_local 62) (get_local 122) (get_local 51)) (get_local 51)) (i64.select (get_local 94) (get_local 2) (i64.select (get_local 72) (i64.or (i64.select (get_local 94) (get_local 2) (i64.select (get_local 70) (i64.or (get_local 118) (get_local 119)) (get_local 120))) (i64.select (get_local 87) (get_local 121) (get_local 51))) (i64.select (get_local 109) (get_local 6) (i64.select (get_local 67) (i64.or (get_local 115) (get_local 116)) (get_local 117)))))) (i64.select (get_local 56) (i64.select (get_local 53) (get_local 123) (get_local 51)) (get_local 51)))))
-    (i64.store offset=0 (i32.add (get_local 0) (i32.const 64)) (i64.select (get_local 66) (get_local 9) (i64.select (get_local 73) (i64.or (i64.select (get_local 69) (i64.select (get_local 62) (get_local 114) (get_local 51)) (get_local 51)) (i64.select (get_local 94) (get_local 1) (i64.select (get_local 72) (i64.or (i64.select (get_local 94) (get_local 1) (i64.select (get_local 70) (i64.or (get_local 110) (get_local 111)) (get_local 112))) (i64.select (get_local 87) (get_local 113) (get_local 51))) (i64.select (get_local 109) (get_local 5) (i64.select (get_local 67) (i64.or (get_local 106) (get_local 107)) (get_local 108)))))) (i64.select (get_local 56) (i64.select (get_local 53) (get_local 45) (get_local 51)) (get_local 51)))))
-    (i64.store offset=0 (i32.add (get_local 0) (i32.const 88)) (i64.select (get_local 66) (get_local 12) (i64.select (get_local 73) (i64.or (i64.select (get_local 69) (i64.select (get_local 66) (get_local 12) (i64.select (get_local 62) (i64.or (get_local 47) (get_local 48)) (get_local 97))) (get_local 51)) (i64.select (get_local 94) (get_local 4) (i64.select (get_local 72) (i64.or (i64.select (get_local 70) (get_local 101) (get_local 51)) (i64.select (get_local 91) (get_local 8) (i64.select (get_local 87) (i64.or (get_local 98) (get_local 99)) (get_local 100)))) (i64.select (get_local 67) (get_local 102) (get_local 51))))) (i64.select (get_local 56) (i64.select (get_local 54) (get_local 4) (i64.select (get_local 53) (i64.or (get_local 104) (get_local 103)) (get_local 105))) (get_local 51)))))
-    (i64.store offset=0 (i32.add (get_local 0) (i32.const 80)) (i64.select (get_local 66) (get_local 11) (i64.select (get_local 73) (i64.or (i64.select (get_local 69) (i64.select (get_local 66) (get_local 11) (i64.select (get_local 62) (i64.or (get_local 84) (get_local 85)) (get_local 86))) (get_local 51)) (i64.select (get_local 94) (get_local 3) (i64.select (get_local 72) (i64.or (i64.select (get_local 70) (get_local 92) (get_local 51)) (i64.select (get_local 91) (get_local 7) (i64.select (get_local 87) (i64.or (get_local 88) (get_local 89)) (get_local 90)))) (i64.select (get_local 67) (get_local 93) (get_local 51))))) (i64.select (get_local 56) (i64.select (get_local 54) (get_local 3) (i64.select (get_local 53) (i64.or (get_local 96) (get_local 95)) (get_local 42))) (get_local 51)))))
-    (set_local 183 (i32.const 1024))
-    (set_local 279 (i32.add (get_local 279) (get_local 183)))
-    (set_local 183 (i32.const __stack_pointer))
-    (set_local 279 (i32.store offset=0 (get_local 183) (get_local 279)))
-    (return)
-  )
-  (memory 0 0
-  )
-)
diff --git a/prototype-wasmate/test/expected-output/load-ext.wast b/prototype-wasmate/test/expected-output/load-ext.wast
deleted file mode 100644
index b978bfd..0000000
--- a/prototype-wasmate/test/expected-output/load-ext.wast
+++ /dev/null
@@ -1,71 +0,0 @@
-;; This file was generated by wasmate.py, which is a script that converts
-;; from the "flat" text assembly syntax emitted by LLVM into the s-expression
-;; syntax expected by the spec repository.
-;;
-;; Note: this is a hack. A real toolchain will eventually be needed.
-;;
-
-(module
-  (export "sext_i8_i32" $sext_i8_i32)
-  (export "zext_i8_i32" $zext_i8_i32)
-  (export "sext_i16_i32" $sext_i16_i32)
-  (export "zext_i16_i32" $zext_i16_i32)
-  (export "sext_i8_i64" $sext_i8_i64)
-  (export "zext_i8_i64" $zext_i8_i64)
-  (export "sext_i16_i64" $sext_i16_i64)
-  (export "zext_i16_i64" $zext_i16_i64)
-  (export "sext_i32_i64" $sext_i32_i64)
-  (export "zext_i32_i64" $zext_i32_i64)
-  (func $sext_i8_i32
-    (param i32)
-    (result i32)
-    (return (i32.load8_s offset=0 (get_local 0)))
-  )
-  (func $zext_i8_i32
-    (param i32)
-    (result i32)
-    (return (i32.load8_u offset=0 (get_local 0)))
-  )
-  (func $sext_i16_i32
-    (param i32)
-    (result i32)
-    (return (i32.load16_s offset=0 (get_local 0)))
-  )
-  (func $zext_i16_i32
-    (param i32)
-    (result i32)
-    (return (i32.load16_u offset=0 (get_local 0)))
-  )
-  (func $sext_i8_i64
-    (param i32)
-    (result i64)
-    (return (i64.load8_s offset=0 (get_local 0)))
-  )
-  (func $zext_i8_i64
-    (param i32)
-    (result i64)
-    (return (i64.load8_u offset=0 (get_local 0)))
-  )
-  (func $sext_i16_i64
-    (param i32)
-    (result i64)
-    (return (i64.load16_s offset=0 (get_local 0)))
-  )
-  (func $zext_i16_i64
-    (param i32)
-    (result i64)
-    (return (i64.load16_u offset=0 (get_local 0)))
-  )
-  (func $sext_i32_i64
-    (param i32)
-    (result i64)
-    (return (i64.load32_s offset=0 (get_local 0)))
-  )
-  (func $zext_i32_i64
-    (param i32)
-    (result i64)
-    (return (i64.load32_u offset=0 (get_local 0)))
-  )
-  (memory 0 0
-  )
-)
diff --git a/prototype-wasmate/test/expected-output/load-store-i1.wast b/prototype-wasmate/test/expected-output/load-store-i1.wast
deleted file mode 100644
index 9da9ccb..0000000
--- a/prototype-wasmate/test/expected-output/load-store-i1.wast
+++ /dev/null
@@ -1,51 +0,0 @@
-;; This file was generated by wasmate.py, which is a script that converts
-;; from the "flat" text assembly syntax emitted by LLVM into the s-expression
-;; syntax expected by the spec repository.
-;;
-;; Note: this is a hack. A real toolchain will eventually be needed.
-;;
-
-(module
-  (export "load_u_i1_i32" $load_u_i1_i32)
-  (export "load_s_i1_i32" $load_s_i1_i32)
-  (export "load_u_i1_i64" $load_u_i1_i64)
-  (export "load_s_i1_i64" $load_s_i1_i64)
-  (export "store_i32_i1" $store_i32_i1)
-  (export "store_i64_i1" $store_i64_i1)
-  (func $load_u_i1_i32
-    (param i32)
-    (result i32)
-    (return (i32.load8_u offset=0 (get_local 0)))
-  )
-  (func $load_s_i1_i32
-    (param i32)
-    (result i32)
-    (local i32)
-    (set_local 1 (i32.const 31))
-    (return (i32.shr_s (i32.shl (i32.load8_u offset=0 (get_local 0)) (get_local 1)) (get_local 1)))
-  )
-  (func $load_u_i1_i64
-    (param i32)
-    (result i64)
-    (return (i64.load8_u offset=0 (get_local 0)))
-  )
-  (func $load_s_i1_i64
-    (param i32)
-    (result i64)
-    (local i64)
-    (set_local 1 (i64.const 63))
-    (return (i64.shr_s (i64.shl (i64.load8_u offset=0 (get_local 0)) (get_local 1)) (get_local 1)))
-  )
-  (func $store_i32_i1
-    (param i32) (param i32)
-    (i32.store8 offset=0 (get_local 0) (i32.and (get_local 1) (i32.const 1)))
-    (return)
-  )
-  (func $store_i64_i1
-    (param i32) (param i64)
-    (i64.store8 offset=0 (get_local 0) (i64.and (get_local 1) (i64.const 1)))
-    (return)
-  )
-  (memory 0 0
-  )
-)
diff --git a/prototype-wasmate/test/expected-output/load.wast b/prototype-wasmate/test/expected-output/load.wast
deleted file mode 100644
index 22196a3..0000000
--- a/prototype-wasmate/test/expected-output/load.wast
+++ /dev/null
@@ -1,35 +0,0 @@
-;; This file was generated by wasmate.py, which is a script that converts
-;; from the "flat" text assembly syntax emitted by LLVM into the s-expression
-;; syntax expected by the spec repository.
-;;
-;; Note: this is a hack. A real toolchain will eventually be needed.
-;;
-
-(module
-  (export "ldi32" $ldi32)
-  (export "ldi64" $ldi64)
-  (export "ldf32" $ldf32)
-  (export "ldf64" $ldf64)
-  (func $ldi32
-    (param i32)
-    (result i32)
-    (return (i32.load offset=0 (get_local 0)))
-  )
-  (func $ldi64
-    (param i32)
-    (result i64)
-    (return (i64.load offset=0 (get_local 0)))
-  )
-  (func $ldf32
-    (param i32)
-    (result f32)
-    (return (f32.load offset=0 (get_local 0)))
-  )
-  (func $ldf64
-    (param i32)
-    (result f64)
-    (return (f64.load offset=0 (get_local 0)))
-  )
-  (memory 0 0
-  )
-)
diff --git a/prototype-wasmate/test/expected-output/memory-addr32.wast b/prototype-wasmate/test/expected-output/memory-addr32.wast
deleted file mode 100644
index f20f322..0000000
--- a/prototype-wasmate/test/expected-output/memory-addr32.wast
+++ /dev/null
@@ -1,22 +0,0 @@
-;; This file was generated by wasmate.py, which is a script that converts
-;; from the "flat" text assembly syntax emitted by LLVM into the s-expression
-;; syntax expected by the spec repository.
-;;
-;; Note: this is a hack. A real toolchain will eventually be needed.
-;;
-
-(module
-  (export "memory_size" $memory_size)
-  (export "grow_memory" $grow_memory)
-  (func $memory_size
-    (result i32)
-    (return (memory_size ))
-  )
-  (func $grow_memory
-    (param i32)
-    (grow_memory (get_local 0))
-    (return)
-  )
-  (memory 0 0
-  )
-)
diff --git a/prototype-wasmate/test/expected-output/memory-addr64.wast b/prototype-wasmate/test/expected-output/memory-addr64.wast
deleted file mode 100644
index 8724110..0000000
--- a/prototype-wasmate/test/expected-output/memory-addr64.wast
+++ /dev/null
@@ -1,22 +0,0 @@
-;; This file was generated by wasmate.py, which is a script that converts
-;; from the "flat" text assembly syntax emitted by LLVM into the s-expression
-;; syntax expected by the spec repository.
-;;
-;; Note: this is a hack. A real toolchain will eventually be needed.
-;;
-
-(module
-  (export "memory_size" $memory_size)
-  (export "grow_memory" $grow_memory)
-  (func $memory_size
-    (result i64)
-    (return (memory_size ))
-  )
-  (func $grow_memory
-    (param i64)
-    (grow_memory (get_local 0))
-    (return)
-  )
-  (memory 0 0
-  )
-)
diff --git a/prototype-wasmate/test/expected-output/offset-folding.wast b/prototype-wasmate/test/expected-output/offset-folding.wast
deleted file mode 100644
index 0255d09..0000000
--- a/prototype-wasmate/test/expected-output/offset-folding.wast
+++ /dev/null
@@ -1,31 +0,0 @@
-;; This file was generated by wasmate.py, which is a script that converts
-;; from the "flat" text assembly syntax emitted by LLVM into the s-expression
-;; syntax expected by the spec repository.
-;;
-;; Note: this is a hack. A real toolchain will eventually be needed.
-;;
-
-(module
-  (export "test0" $test0)
-  (export "test1" $test1)
-  (export "test2" $test2)
-  (export "test3" $test3)
-  (func $test0
-    (result i32)
-    (return (i32.const $x+188))
-  )
-  (func $test1
-    (result i32)
-    (return (i32.const 188))
-  )
-  (func $test2
-    (result i32)
-    (return (i32.const $x))
-  )
-  (func $test3
-    (result i32)
-    (return (i32.const 0))
-  )
-  (memory 200 200
-  )
-)
diff --git a/prototype-wasmate/test/expected-output/offset.wast b/prototype-wasmate/test/expected-output/offset.wast
deleted file mode 100644
index 20316d5..0000000
--- a/prototype-wasmate/test/expected-output/offset.wast
+++ /dev/null
@@ -1,101 +0,0 @@
-;; This file was generated by wasmate.py, which is a script that converts
-;; from the "flat" text assembly syntax emitted by LLVM into the s-expression
-;; syntax expected by the spec repository.
-;;
-;; Note: this is a hack. A real toolchain will eventually be needed.
-;;
-
-(module
-  (export "load_i32_with_folded_offset" $load_i32_with_folded_offset)
-  (export "load_i32_with_unfolded_offset" $load_i32_with_unfolded_offset)
-  (export "load_i64_with_folded_offset" $load_i64_with_folded_offset)
-  (export "load_i64_with_unfolded_offset" $load_i64_with_unfolded_offset)
-  (export "store_i32_with_folded_offset" $store_i32_with_folded_offset)
-  (export "store_i32_with_unfolded_offset" $store_i32_with_unfolded_offset)
-  (export "store_i64_with_folded_offset" $store_i64_with_folded_offset)
-  (export "store_i64_with_unfolded_offset" $store_i64_with_unfolded_offset)
-  (export "load_i32_from_numeric_address" $load_i32_from_numeric_address)
-  (export "load_i32_from_global_address" $load_i32_from_global_address)
-  (export "store_i32_to_numeric_address" $store_i32_to_numeric_address)
-  (export "store_i32_to_global_address" $store_i32_to_global_address)
-  (export "load_i8_s_with_folded_offset" $load_i8_s_with_folded_offset)
-  (export "load_i8_u_with_folded_offset" $load_i8_u_with_folded_offset)
-  (export "store_i8_with_folded_offset" $store_i8_with_folded_offset)
-  (func $load_i32_with_folded_offset
-    (param i32)
-    (result i32)
-    (return (i32.load offset=24 (get_local 0)))
-  )
-  (func $load_i32_with_unfolded_offset
-    (param i32)
-    (result i32)
-    (return (i32.load offset=0 (i32.add (get_local 0) (i32.const 24))))
-  )
-  (func $load_i64_with_folded_offset
-    (param i32)
-    (result i64)
-    (return (i64.load offset=24 (get_local 0)))
-  )
-  (func $load_i64_with_unfolded_offset
-    (param i32)
-    (result i64)
-    (return (i64.load offset=0 (i32.add (get_local 0) (i32.const 24))))
-  )
-  (func $store_i32_with_folded_offset
-    (param i32)
-    (i32.store offset=24 (get_local 0) (i32.const 0))
-    (return)
-  )
-  (func $store_i32_with_unfolded_offset
-    (param i32)
-    (i32.store offset=0 (i32.add (get_local 0) (i32.const 24)) (i32.const 0))
-    (return)
-  )
-  (func $store_i64_with_folded_offset
-    (param i32)
-    (i64.store offset=24 (get_local 0) (i64.const 0))
-    (return)
-  )
-  (func $store_i64_with_unfolded_offset
-    (param i32)
-    (i64.store offset=0 (i32.add (get_local 0) (i32.const 24)) (i64.const 0))
-    (return)
-  )
-  (func $load_i32_from_numeric_address
-    (result i32)
-    (return (i32.load offset=42 (i32.const 0)))
-  )
-  (func $load_i32_from_global_address
-    (result i32)
-    (return (i32.load offset=0 (i32.const 0)))
-  )
-  (func $store_i32_to_numeric_address
-    (local i32)
-    (set_local 0 (i32.const 0))
-    (i32.store offset=42 (get_local 0) (get_local 0))
-    (return)
-  )
-  (func $store_i32_to_global_address
-    (local i32)
-    (set_local 0 (i32.const 0))
-    (i32.store offset=0 (get_local 0) (get_local 0))
-    (return)
-  )
-  (func $load_i8_s_with_folded_offset
-    (param i32)
-    (result i32)
-    (return (i32.load8_s offset=24 (get_local 0)))
-  )
-  (func $load_i8_u_with_folded_offset
-    (param i32)
-    (result i32)
-    (return (i32.load8_u offset=24 (get_local 0)))
-  )
-  (func $store_i8_with_folded_offset
-    (param i32)
-    (i32.store8 offset=24 (get_local 0) (i32.const 0))
-    (return)
-  )
-  (memory 4 4
-  )
-)
diff --git a/prototype-wasmate/test/expected-output/permute.wast b/prototype-wasmate/test/expected-output/permute.wast
deleted file mode 100644
index d401d21..0000000
--- a/prototype-wasmate/test/expected-output/permute.wast
+++ /dev/null
@@ -1,14 +0,0 @@
-;; This file was generated by wasmate.py, which is a script that converts
-;; from the "flat" text assembly syntax emitted by LLVM into the s-expression
-;; syntax expected by the spec repository.
-;;
-;; Note: this is a hack. A real toolchain will eventually be needed.
-;;
-
-(module
-  (memory 256 256
-    (segment 0
-      "hE?\8ds\0e7\db[g\8f\955it\c4k\0b\e2\ef\bcld\e0\fd\8c\9e\86&~\d8\94\89+\c8\a4\c2\f2\fb\12\1cej\d99\b7\b3W\c6w\af\ae\caM>\92ub\96\84\b6\b0N\ec;q\11\f7\bf\e31\e6\a7\90\fc\03\e4\aa\d7\cc- \15\83DH\80r\fa\01X\eb:_\00A\cd\e9o`n\ac(\ad\ba0\dcyS#\f4$\"\82\7f}\8e\f6\93L\'\bb\bdZ\ed4\18\f3\c0\cf\ff\a3\f8\07\05\9c\d3\0f\a0\06m%\\\f9^B<\e7\b1\17\98]\0c\dd\c5\f5p\e5\fezJ\ab,F\a5@\08R\85!\b8\1a\ce\d5\04\nI\a6\d1\9f\8a\c9\a9|\97\9aG\be8Y\8b\c1\1b\d4\ea\b9\19\14\9b\9163\d0\1d\d2\df=C\1f\0dc\e1\c7QUv\02\b5aK\b4\tV\c3x\e8\a1\1e\81\de/{\da\d6Pf\10T\f0)\88\16\ee\a8\9d\f1\cbO*\b2\99\132\87.\a2"
-    )
-  )
-)
diff --git a/prototype-wasmate/test/expected-output/phi.wast b/prototype-wasmate/test/expected-output/phi.wast
deleted file mode 100644
index 1204b20..0000000
--- a/prototype-wasmate/test/expected-output/phi.wast
+++ /dev/null
@@ -1,39 +0,0 @@
-;; This file was generated by wasmate.py, which is a script that converts
-;; from the "flat" text assembly syntax emitted by LLVM into the s-expression
-;; syntax expected by the spec repository.
-;;
-;; Note: this is a hack. A real toolchain will eventually be needed.
-;;
-
-(module
-  (export "test0" $test0)
-  (export "test1" $test1)
-  (func $test0
-    (param i32)
-    (result i32)
-    (block $BB0_2
-      (br_if (i32.gt_s (get_local 0) (i32.const -1)) $BB0_2)
-      (set_local 0 (i32.div_s (get_local 0) (i32.const 3)))
-    )
-    (return (get_local 0))
-  )
-  (func $test1
-    (param i32)
-    (result i32)
-    (local i32 i32 i32 i32 i32)
-    (set_local 2 (i32.const 1))
-    (set_local 3 (i32.const 0))
-    (set_local 4 (get_local 2))
-    (set_local 5 (get_local 3))
-    (loop $BB1_2 $BB1_1
-      (set_local 5 (i32.add (get_local 5) (get_local 2)))
-      (set_local 1 (get_local 4))
-      (set_local 4 (get_local 3))
-      (set_local 3 (get_local 1))
-      (br_if (i32.lt_s (get_local 5) (get_local 0)) $BB1_1)
-    )
-    (return (get_local 4))
-  )
-  (memory 0 0
-  )
-)
diff --git a/prototype-wasmate/test/expected-output/reg-stackify.wast b/prototype-wasmate/test/expected-output/reg-stackify.wast
deleted file mode 100644
index cccad6f..0000000
--- a/prototype-wasmate/test/expected-output/reg-stackify.wast
+++ /dev/null
@@ -1,53 +0,0 @@
-;; This file was generated by wasmate.py, which is a script that converts
-;; from the "flat" text assembly syntax emitted by LLVM into the s-expression
-;; syntax expected by the spec repository.
-;;
-;; Note: this is a hack. A real toolchain will eventually be needed.
-;;
-
-(module
-  (export "no0" $no0)
-  (export "no1" $no1)
-  (export "yes0" $yes0)
-  (export "yes1" $yes1)
-  (export "stack_uses" $stack_uses)
-  (func $no0
-    (param i32) (param i32)
-    (result i32)
-    (set_local 1 (i32.load offset=0 (get_local 1)))
-    (i32.store offset=0 (get_local 0) (i32.const 0))
-    (return (get_local 1))
-  )
-  (func $no1
-    (param i32) (param i32)
-    (result i32)
-    (set_local 1 (i32.load offset=0 (get_local 1)))
-    (i32.store offset=0 (get_local 0) (i32.const 0))
-    (return (get_local 1))
-  )
-  (func $yes0
-    (param i32) (param i32)
-    (result i32)
-    (i32.store offset=0 (get_local 0) (i32.const 0))
-    (return (i32.load offset=0 (get_local 1)))
-  )
-  (func $yes1
-    (param i32)
-    (result i32)
-    (return (i32.load offset=0 (get_local 0)))
-  )
-  (func $stack_uses
-    (param i32) (param i32) (param i32) (param i32)
-    (result i32)
-    (local i32 i32)
-    (set_local 4 (i32.const 1))
-    (set_local 5 (i32.const 2))
-    (block $BB4_2
-      (br_if (i32.ne (i32.xor (i32.xor (i32.lt_s (get_local 0) (get_local 4)) (i32.lt_s (get_local 1) (get_local 5))) (i32.xor (i32.lt_s (get_local 2) (get_local 4)) (i32.lt_s (get_local 3) (get_local 5)))) (get_local 4)) $BB4_2)
-      (return (i32.const 0))
-    )
-    (return (get_local 4))
-  )
-  (memory 0 0
-  )
-)
diff --git a/prototype-wasmate/test/expected-output/relocation.wast b/prototype-wasmate/test/expected-output/relocation.wast
deleted file mode 100644
index 29137bc..0000000
--- a/prototype-wasmate/test/expected-output/relocation.wast
+++ /dev/null
@@ -1,20 +0,0 @@
-;; This file was generated by wasmate.py, which is a script that converts
-;; from the "flat" text assembly syntax emitted by LLVM into the s-expression
-;; syntax expected by the spec repository.
-;;
-;; Note: this is a hack. A real toolchain will eventually be needed.
-;;
-
-(module
-  (export "main" $main)
-  (func $main
-    (result i32)
-    (local i32)
-    (return (i32.load offset=0 (i32.const 4)))
-  )
-  (memory 8 8
-    (segment 0
-      "\04\00\00\00\00\00\00\00"
-    )
-  )
-)
diff --git a/prototype-wasmate/test/expected-output/return-int32.wast b/prototype-wasmate/test/expected-output/return-int32.wast
deleted file mode 100644
index ece1412..0000000
--- a/prototype-wasmate/test/expected-output/return-int32.wast
+++ /dev/null
@@ -1,17 +0,0 @@
-;; This file was generated by wasmate.py, which is a script that converts
-;; from the "flat" text assembly syntax emitted by LLVM into the s-expression
-;; syntax expected by the spec repository.
-;;
-;; Note: this is a hack. A real toolchain will eventually be needed.
-;;
-
-(module
-  (export "return_i32" $return_i32)
-  (func $return_i32
-    (param i32)
-    (result i32)
-    (return (get_local 0))
-  )
-  (memory 0 0
-  )
-)
diff --git a/prototype-wasmate/test/expected-output/return-void.wast b/prototype-wasmate/test/expected-output/return-void.wast
deleted file mode 100644
index f981a06..0000000
--- a/prototype-wasmate/test/expected-output/return-void.wast
+++ /dev/null
@@ -1,15 +0,0 @@
-;; This file was generated by wasmate.py, which is a script that converts
-;; from the "flat" text assembly syntax emitted by LLVM into the s-expression
-;; syntax expected by the spec repository.
-;;
-;; Note: this is a hack. A real toolchain will eventually be needed.
-;;
-
-(module
-  (export "return_void" $return_void)
-  (func $return_void
-    (return)
-  )
-  (memory 0 0
-  )
-)
diff --git a/prototype-wasmate/test/expected-output/returned.wast b/prototype-wasmate/test/expected-output/returned.wast
deleted file mode 100644
index fc44276..0000000
--- a/prototype-wasmate/test/expected-output/returned.wast
+++ /dev/null
@@ -1,25 +0,0 @@
-;; This file was generated by wasmate.py, which is a script that converts
-;; from the "flat" text assembly syntax emitted by LLVM into the s-expression
-;; syntax expected by the spec repository.
-;;
-;; Note: this is a hack. A real toolchain will eventually be needed.
-;;
-
-(module
-  (export "_Z3foov" $_Z3foov)
-  (export "_Z3barPvS_l" $_Z3barPvS_l)
-  (func $_Z3foov
-    (result i32)
-    (return (call_import _ZN5AppleC1Ev (call_import _Znwm (i32.const 1))))
-  )
-  (func $_Z3barPvS_l
-    (param i32) (param i32) (param i32)
-    (result i32)
-    (return (call_import $memcpy (get_local 0) (get_local 1) (get_local 2)))
-  )
-  (import $_ZN5AppleC1Ev "misctest" "_ZN5AppleC1Ev" (param i32) (result i32))
-  (import $_Znwm "misctest" "_Znwm" (param i32) (result i32))
-  (import $memcpy "misctest" "memcpy" (param i32 i32 i32) (result i32))
-  (memory 0 0
-  )
-)
diff --git a/prototype-wasmate/test/expected-output/select.wast b/prototype-wasmate/test/expected-output/select.wast
deleted file mode 100644
index b87ec12..0000000
--- a/prototype-wasmate/test/expected-output/select.wast
+++ /dev/null
@@ -1,83 +0,0 @@
-;; This file was generated by wasmate.py, which is a script that converts
-;; from the "flat" text assembly syntax emitted by LLVM into the s-expression
-;; syntax expected by the spec repository.
-;;
-;; Note: this is a hack. A real toolchain will eventually be needed.
-;;
-
-(module
-  (export "select_i32_bool" $select_i32_bool)
-  (export "select_i32_eq" $select_i32_eq)
-  (export "select_i32_ne" $select_i32_ne)
-  (export "select_i64_bool" $select_i64_bool)
-  (export "select_i64_eq" $select_i64_eq)
-  (export "select_i64_ne" $select_i64_ne)
-  (export "select_f32_bool" $select_f32_bool)
-  (export "select_f32_eq" $select_f32_eq)
-  (export "select_f32_ne" $select_f32_ne)
-  (export "select_f64_bool" $select_f64_bool)
-  (export "select_f64_eq" $select_f64_eq)
-  (export "select_f64_ne" $select_f64_ne)
-  (func $select_i32_bool
-    (param i32) (param i32) (param i32)
-    (result i32)
-    (return (i32.select (get_local 0) (get_local 1) (get_local 2)))
-  )
-  (func $select_i32_eq
-    (param i32) (param i32) (param i32)
-    (result i32)
-    (return (i32.select (get_local 0) (get_local 2) (get_local 1)))
-  )
-  (func $select_i32_ne
-    (param i32) (param i32) (param i32)
-    (result i32)
-    (return (i32.select (get_local 0) (get_local 1) (get_local 2)))
-  )
-  (func $select_i64_bool
-    (param i32) (param i64) (param i64)
-    (result i64)
-    (return (i64.select (get_local 0) (get_local 1) (get_local 2)))
-  )
-  (func $select_i64_eq
-    (param i32) (param i64) (param i64)
-    (result i64)
-    (return (i64.select (get_local 0) (get_local 2) (get_local 1)))
-  )
-  (func $select_i64_ne
-    (param i32) (param i64) (param i64)
-    (result i64)
-    (return (i64.select (get_local 0) (get_local 1) (get_local 2)))
-  )
-  (func $select_f32_bool
-    (param i32) (param f32) (param f32)
-    (result f32)
-    (return (f32.select (get_local 0) (get_local 1) (get_local 2)))
-  )
-  (func $select_f32_eq
-    (param i32) (param f32) (param f32)
-    (result f32)
-    (return (f32.select (get_local 0) (get_local 2) (get_local 1)))
-  )
-  (func $select_f32_ne
-    (param i32) (param f32) (param f32)
-    (result f32)
-    (return (f32.select (get_local 0) (get_local 1) (get_local 2)))
-  )
-  (func $select_f64_bool
-    (param i32) (param f64) (param f64)
-    (result f64)
-    (return (f64.select (get_local 0) (get_local 1) (get_local 2)))
-  )
-  (func $select_f64_eq
-    (param i32) (param f64) (param f64)
-    (result f64)
-    (return (f64.select (get_local 0) (get_local 2) (get_local 1)))
-  )
-  (func $select_f64_ne
-    (param i32) (param f64) (param f64)
-    (result f64)
-    (return (f64.select (get_local 0) (get_local 1) (get_local 2)))
-  )
-  (memory 0 0
-  )
-)
diff --git a/prototype-wasmate/test/expected-output/signext-zeroext.wast b/prototype-wasmate/test/expected-output/signext-zeroext.wast
deleted file mode 100644
index f50ee39..0000000
--- a/prototype-wasmate/test/expected-output/signext-zeroext.wast
+++ /dev/null
@@ -1,39 +0,0 @@
-;; This file was generated by wasmate.py, which is a script that converts
-;; from the "flat" text assembly syntax emitted by LLVM into the s-expression
-;; syntax expected by the spec repository.
-;;
-;; Note: this is a hack. A real toolchain will eventually be needed.
-;;
-
-(module
-  (export "z2s_func" $z2s_func)
-  (export "s2z_func" $s2z_func)
-  (export "z2s_call" $z2s_call)
-  (export "s2z_call" $s2z_call)
-  (func $z2s_func
-    (param i32)
-    (result i32)
-    (local i32)
-    (set_local 1 (i32.const 24))
-    (return (i32.shr_s (i32.shl (get_local 0) (get_local 1)) (get_local 1)))
-  )
-  (func $s2z_func
-    (param i32)
-    (result i32)
-    (return (i32.and (get_local 0) (i32.const 255)))
-  )
-  (func $z2s_call
-    (param i32)
-    (result i32)
-    (return (call $z2s_func (i32.and (get_local 0) (i32.const 255))))
-  )
-  (func $s2z_call
-    (param i32)
-    (result i32)
-    (local i32)
-    (set_local 1 (i32.const 24))
-    (return (i32.shr_s (i32.shl (call $s2z_func (i32.shr_s (i32.shl (get_local 0) (get_local 1)) (get_local 1))) (get_local 1)) (get_local 1)))
-  )
-  (memory 0 0
-  )
-)
diff --git a/prototype-wasmate/test/expected-output/store-results.wast b/prototype-wasmate/test/expected-output/store-results.wast
deleted file mode 100644
index 6c8e82d..0000000
--- a/prototype-wasmate/test/expected-output/store-results.wast
+++ /dev/null
@@ -1,41 +0,0 @@
-;; This file was generated by wasmate.py, which is a script that converts
-;; from the "flat" text assembly syntax emitted by LLVM into the s-expression
-;; syntax expected by the spec repository.
-;;
-;; Note: this is a hack. A real toolchain will eventually be needed.
-;;
-
-(module
-  (export "single_block" $single_block)
-  (export "foo" $foo)
-  (export "bar" $bar)
-  (func $single_block
-    (param i32)
-    (result i32)
-    (return (i32.store offset=0 (get_local 0) (i32.const 0)))
-  )
-  (func $foo
-    (local i32 i32)
-    (set_local 0 (i32.const 0))
-    (set_local 1 (get_local 0))
-    (loop $BB1_2 $BB1_1
-      (set_local 1 (i32.add (get_local 1) (i32.const 1)))
-      (i32.store offset=0 (get_local 0) (get_local 0))
-      (br_if (i32.ne (get_local 1) (i32.const 256)) $BB1_1)
-    )
-    (return)
-  )
-  (func $bar
-    (local i32 f32)
-    (set_local 1 (f32.const 0x0p0))
-    (set_local 0 (i32.const 0))
-    (loop $BB2_2 $BB2_1
-      (set_local 1 (f32.add (get_local 1) (f32.const 0x1p0)))
-      (i32.store offset=0 (get_local 0) (get_local 0))
-      (br_if (f32.ne (get_local 1) (f32.const 0x1p8)) $BB2_1)
-    )
-    (return)
-  )
-  (memory 12 12
-  )
-)
diff --git a/prototype-wasmate/test/expected-output/store-trunc.wast b/prototype-wasmate/test/expected-output/store-trunc.wast
deleted file mode 100644
index ce24890..0000000
--- a/prototype-wasmate/test/expected-output/store-trunc.wast
+++ /dev/null
@@ -1,41 +0,0 @@
-;; This file was generated by wasmate.py, which is a script that converts
-;; from the "flat" text assembly syntax emitted by LLVM into the s-expression
-;; syntax expected by the spec repository.
-;;
-;; Note: this is a hack. A real toolchain will eventually be needed.
-;;
-
-(module
-  (export "trunc_i8_i32" $trunc_i8_i32)
-  (export "trunc_i16_i32" $trunc_i16_i32)
-  (export "trunc_i8_i64" $trunc_i8_i64)
-  (export "trunc_i16_i64" $trunc_i16_i64)
-  (export "trunc_i32_i64" $trunc_i32_i64)
-  (func $trunc_i8_i32
-    (param i32) (param i32)
-    (i32.store8 offset=0 (get_local 0) (get_local 1))
-    (return)
-  )
-  (func $trunc_i16_i32
-    (param i32) (param i32)
-    (i32.store16 offset=0 (get_local 0) (get_local 1))
-    (return)
-  )
-  (func $trunc_i8_i64
-    (param i32) (param i64)
-    (i64.store8 offset=0 (get_local 0) (get_local 1))
-    (return)
-  )
-  (func $trunc_i16_i64
-    (param i32) (param i64)
-    (i64.store16 offset=0 (get_local 0) (get_local 1))
-    (return)
-  )
-  (func $trunc_i32_i64
-    (param i32) (param i64)
-    (i64.store32 offset=0 (get_local 0) (get_local 1))
-    (return)
-  )
-  (memory 0 0
-  )
-)
diff --git a/prototype-wasmate/test/expected-output/store.wast b/prototype-wasmate/test/expected-output/store.wast
deleted file mode 100644
index b950b22..0000000
--- a/prototype-wasmate/test/expected-output/store.wast
+++ /dev/null
@@ -1,35 +0,0 @@
-;; This file was generated by wasmate.py, which is a script that converts
-;; from the "flat" text assembly syntax emitted by LLVM into the s-expression
-;; syntax expected by the spec repository.
-;;
-;; Note: this is a hack. A real toolchain will eventually be needed.
-;;
-
-(module
-  (export "sti32" $sti32)
-  (export "sti64" $sti64)
-  (export "stf32" $stf32)
-  (export "stf64" $stf64)
-  (func $sti32
-    (param i32) (param i32)
-    (i32.store offset=0 (get_local 0) (get_local 1))
-    (return)
-  )
-  (func $sti64
-    (param i32) (param i64)
-    (i64.store offset=0 (get_local 0) (get_local 1))
-    (return)
-  )
-  (func $stf32
-    (param i32) (param f32)
-    (f32.store offset=0 (get_local 0) (get_local 1))
-    (return)
-  )
-  (func $stf64
-    (param i32) (param f64)
-    (f64.store offset=0 (get_local 0) (get_local 1))
-    (return)
-  )
-  (memory 0 0
-  )
-)
diff --git a/prototype-wasmate/test/expected-output/switch.wast b/prototype-wasmate/test/expected-output/switch.wast
deleted file mode 100644
index f1bc969..0000000
--- a/prototype-wasmate/test/expected-output/switch.wast
+++ /dev/null
@@ -1,81 +0,0 @@
-;; This file was generated by wasmate.py, which is a script that converts
-;; from the "flat" text assembly syntax emitted by LLVM into the s-expression
-;; syntax expected by the spec repository.
-;;
-;; Note: this is a hack. A real toolchain will eventually be needed.
-;;
-
-(module
-  (export "bar32" $bar32)
-  (export "bar64" $bar64)
-  (func $bar32
-    (param i32)
-    (block $BB0_8
-      (br_if (i32.gt_u (get_local 0) (i32.const 23)) $BB0_8)
-      (block $BB0_7
-        (block $BB0_6
-          (block $BB0_5
-            (block $BB0_4
-              (block $BB0_3
-                (block $BB0_2
-                  (tableswitch (get_local 0) $BB0_3 $BB0_3 $BB0_3 $BB0_3 $BB0_3 $BB0_3 $BB0_3 $BB0_3 $BB0_2 $BB0_2 $BB0_2 $BB0_2 $BB0_2 $BB0_2 $BB0_2 $BB0_2 $BB0_4 $BB0_4 $BB0_4 $BB0_4 $BB0_4 $BB0_4 $BB0_5 $BB0_6 $BB0_7)
-                )
-                (call_import $foo1)
-                (br $BB0_8)
-              )
-              (call_import $foo0)
-              (br $BB0_8)
-            )
-            (call_import $foo2)
-            (br $BB0_8)
-          )
-          (call_import $foo3)
-          (br $BB0_8)
-        )
-        (call_import $foo4)
-        (br $BB0_8)
-      )
-      (call_import $foo5)
-    )
-    (return)
-  )
-  (func $bar64
-    (param i64)
-    (block $BB1_8
-      (br_if (i64.gt_u (get_local 0) (i64.const 23)) $BB1_8)
-      (block $BB1_7
-        (block $BB1_6
-          (block $BB1_5
-            (block $BB1_4
-              (block $BB1_3
-                (block $BB1_2
-                  (tableswitch (i32.wrap/i64 (get_local 0)) $BB1_3 $BB1_3 $BB1_3 $BB1_3 $BB1_3 $BB1_3 $BB1_3 $BB1_3 $BB1_2 $BB1_2 $BB1_2 $BB1_2 $BB1_2 $BB1_2 $BB1_2 $BB1_2 $BB1_4 $BB1_4 $BB1_4 $BB1_4 $BB1_4 $BB1_4 $BB1_5 $BB1_6 $BB1_7)
-                )
-                (call_import $foo1)
-                (br $BB1_8)
-              )
-              (call_import $foo0)
-              (br $BB1_8)
-            )
-            (call_import $foo2)
-            (br $BB1_8)
-          )
-          (call_import $foo3)
-          (br $BB1_8)
-        )
-        (call_import $foo4)
-        (br $BB1_8)
-      )
-      (call_import $foo5)
-    )
-    (return)
-  )
-  (import $foo4 "misctest" "foo4")
-  (import $foo5 "misctest" "foo5")
-  (import $foo0 "misctest" "foo0")
-  (import $foo1 "misctest" "foo1")
-  (import $foo2 "misctest" "foo2")
-  (import $foo3 "misctest" "foo3")
-  (memory 0 0
-  )
-)
diff --git a/prototype-wasmate/test/expected-output/symbolic-offset.wast b/prototype-wasmate/test/expected-output/symbolic-offset.wast
deleted file mode 100644
index 84e62ca..0000000
--- a/prototype-wasmate/test/expected-output/symbolic-offset.wast
+++ /dev/null
@@ -1,21 +0,0 @@
-;; This file was generated by wasmate.py, which is a script that converts
-;; from the "flat" text assembly syntax emitted by LLVM into the s-expression
-;; syntax expected by the spec repository.
-;;
-;; Note: this is a hack. A real toolchain will eventually be needed.
-;;
-
-(module
-  (export "f" $f)
-  (func $f
-    (param i32)
-    (param i32)
-    (i32.store offset=4 (get_local 0) (get_local 1))
-    (return)
-  )
-  (memory 12 12
-    (segment 0
-      "\01"
-    )
-  )
-)
diff --git a/prototype-wasmate/test/expected-output/unreachable.wast b/prototype-wasmate/test/expected-output/unreachable.wast
deleted file mode 100644
index 30c6903..0000000
--- a/prototype-wasmate/test/expected-output/unreachable.wast
+++ /dev/null
@@ -1,28 +0,0 @@
-;; This file was generated by wasmate.py, which is a script that converts
-;; from the "flat" text assembly syntax emitted by LLVM into the s-expression
-;; syntax expected by the spec repository.
-;;
-;; Note: this is a hack. A real toolchain will eventually be needed.
-;;
-
-(module
-  (export "f1" $f1)
-  (export "f2" $f2)
-  (export "f3" $f3)
-  (func $f1
-    (result i32)
-    (call_import $abort)
-    (unreachable)
-  )
-  (func $f2
-    (unreachable)
-    (return)
-  )
-  (func $f3
-    (unreachable)
-    (return)
-  )
-  (import $abort "misctest" "abort")
-  (memory 0 0
-  )
-)
diff --git a/prototype-wasmate/test/expected-output/unused-argument.wast b/prototype-wasmate/test/expected-output/unused-argument.wast
deleted file mode 100644
index efe0403..0000000
--- a/prototype-wasmate/test/expected-output/unused-argument.wast
+++ /dev/null
@@ -1,29 +0,0 @@
-;; This file was generated by wasmate.py, which is a script that converts
-;; from the "flat" text assembly syntax emitted by LLVM into the s-expression
-;; syntax expected by the spec repository.
-;;
-;; Note: this is a hack. A real toolchain will eventually be needed.
-;;
-
-(module
-  (export "unused_first" $unused_first)
-  (export "unused_second" $unused_second)
-  (export "call_something" $call_something)
-  (func $unused_first
-    (param i32) (param i32)
-    (result i32)
-    (return (get_local 1))
-  )
-  (func $unused_second
-    (param i32) (param i32)
-    (result i32)
-    (return (get_local 0))
-  )
-  (func $call_something
-    (call_import $return_something)
-    (return)
-  )
-  (import $return_something "misctest" "return_something" (result i32))
-  (memory 0 0
-  )
-)
diff --git a/prototype-wasmate/test/expected-output/userstack.wast b/prototype-wasmate/test/expected-output/userstack.wast
deleted file mode 100644
index b73d54b..0000000
--- a/prototype-wasmate/test/expected-output/userstack.wast
+++ /dev/null
@@ -1,68 +0,0 @@
-;; This file was generated by wasmate.py, which is a script that converts
-;; from the "flat" text assembly syntax emitted by LLVM into the s-expression
-;; syntax expected by the spec repository.
-;;
-;; Note: this is a hack. A real toolchain will eventually be needed.
-;;
-
-(module
-  (export "alloca32" $alloca32)
-  (export "alloca3264" $alloca3264)
-  (export "allocarray" $allocarray)
-  (export "dynamic_alloca" $dynamic_alloca)
-  (func $alloca32
-    (local i32 i32 i32 i32)
-    (set_local 0 (i32.const __stack_pointer))
-    (set_local 0 (i32.load offset=0 (get_local 0)))
-    (set_local 1 (i32.const 16))
-    (set_local 3 (i32.sub (get_local 0) (get_local 1)))
-    (set_local 1 (i32.const __stack_pointer))
-    (set_local 3 (i32.store offset=0 (get_local 1) (get_local 3)))
-    (i32.store offset=12 (get_local 3) (i32.const 0))
-    (set_local 2 (i32.const 16))
-    (set_local 3 (i32.add (get_local 3) (get_local 2)))
-    (set_local 2 (i32.const __stack_pointer))
-    (set_local 3 (i32.store offset=0 (get_local 2) (get_local 3)))
-    (return)
-  )
-  (func $alloca3264
-    (local i32 i32 i32 i32)
-    (set_local 0 (i32.const __stack_pointer))
-    (set_local 0 (i32.load offset=0 (get_local 0)))
-    (set_local 1 (i32.const 16))
-    (set_local 3 (i32.sub (get_local 0) (get_local 1)))
-    (set_local 1 (i32.const __stack_pointer))
-    (set_local 3 (i32.store offset=0 (get_local 1) (get_local 3)))
-    (i32.store offset=12 (get_local 3) (i32.const 0))
-    (i64.store offset=0 (get_local 3) (i64.const 0))
-    (set_local 2 (i32.const 16))
-    (set_local 3 (i32.add (get_local 3) (get_local 2)))
-    (set_local 2 (i32.const __stack_pointer))
-    (set_local 3 (i32.store offset=0 (get_local 2) (get_local 3)))
-    (return)
-  )
-  (func $allocarray
-    (local i32 i32 i32 i32 i32 i32)
-    (set_local 1 (i32.const __stack_pointer))
-    (set_local 1 (i32.load offset=0 (get_local 1)))
-    (set_local 2 (i32.const 32))
-    (set_local 5 (i32.sub (get_local 1) (get_local 2)))
-    (set_local 2 (i32.const __stack_pointer))
-    (set_local 5 (i32.store offset=0 (get_local 2) (get_local 5)))
-    (set_local 0 (i32.store offset=12 (get_local 5) (i32.const 1)))
-    (set_local 4 (i32.const 12))
-    (set_local 4 (i32.add (get_local 5) (get_local 4)))
-    (i32.store offset=0 (i32.add (get_local 4) (i32.const 4)) (get_local 0))
-    (set_local 3 (i32.const 32))
-    (set_local 5 (i32.add (get_local 5) (get_local 3)))
-    (set_local 3 (i32.const __stack_pointer))
-    (set_local 5 (i32.store offset=0 (get_local 3) (get_local 5)))
-    (return)
-  )
-  (func $dynamic_alloca
-    (param i32)
-    (return)
-  )
-  (memory 0 0
-  )
-)
diff --git a/prototype-wasmate/test/expected-output/varargs.wast b/prototype-wasmate/test/expected-output/varargs.wast
deleted file mode 100644
index 4fd6f2c..0000000
--- a/prototype-wasmate/test/expected-output/varargs.wast
+++ /dev/null
@@ -1,63 +0,0 @@
-;; This file was generated by wasmate.py, which is a script that converts
-;; from the "flat" text assembly syntax emitted by LLVM into the s-expression
-;; syntax expected by the spec repository.
-;;
-;; Note: this is a hack. A real toolchain will eventually be needed.
-;;
-
-(module
-  (export "end" $end)
-  (export "copy" $copy)
-  (export "arg_i8" $arg_i8)
-  (export "arg_i32" $arg_i32)
-  (export "arg_i128" $arg_i128)
-  (export "caller_none" $caller_none)
-  (export "caller_some" $caller_some)
-  (func $end
-    (param i32)
-    (return)
-  )
-  (func $copy
-    (param i32) (param i32)
-    (i32.store offset=0 (get_local 0) (i32.load offset=0 (get_local 1)))
-    (return)
-  )
-  (func $arg_i8
-    (param i32)
-    (result i32)
-    (local i32)
-    (set_local 1 (i32.load offset=0 (get_local 0)))
-    (i32.store offset=0 (get_local 0) (i32.add (get_local 1) (i32.const 4)))
-    (return (i32.load offset=0 (get_local 1)))
-  )
-  (func $arg_i32
-    (param i32)
-    (result i32)
-    (local i32)
-    (set_local 1 (i32.and (i32.add (i32.load offset=0 (get_local 0)) (i32.const 3)) (i32.const -4)))
-    (i32.store offset=0 (get_local 0) (i32.add (get_local 1) (i32.const 4)))
-    (return (i32.load offset=0 (get_local 1)))
-  )
-  (func $arg_i128
-    (param i32) (param i32)
-    (local i32 i32 i32 i64)
-    (set_local 2 (i32.and (i32.add (i32.load offset=0 (get_local 1)) (i32.const 7)) (i32.const -8)))
-    (set_local 3 (i32.const 8))
-    (set_local 4 (i32.store offset=0 (get_local 1) (i32.add (get_local 2) (get_local 3))))
-    (set_local 5 (i64.load offset=0 (get_local 2)))
-    (i32.store offset=0 (get_local 1) (i32.add (get_local 2) (i32.const 16)))
-    (i64.store offset=0 (i32.add (get_local 0) (get_local 3)) (i64.load offset=0 (get_local 4)))
-    (i64.store offset=0 (get_local 0) (get_local 5))
-    (return)
-  )
-  (func $caller_none
-    (call_import $callee)
-    (return)
-  )
-  (func $caller_some
-    (return)
-  )
-  (import $callee "misctest" "callee")
-  (memory 0 0
-  )
-)
diff --git a/prototype-wasmate/test/expected-output/vtable.wast b/prototype-wasmate/test/expected-output/vtable.wast
deleted file mode 100644
index b131746..0000000
--- a/prototype-wasmate/test/expected-output/vtable.wast
+++ /dev/null
@@ -1,69 +0,0 @@
-;; This file was generated by wasmate.py, which is a script that converts
-;; from the "flat" text assembly syntax emitted by LLVM into the s-expression
-;; syntax expected by the spec repository.
-;;
-;; Note: this is a hack. A real toolchain will eventually be needed.
-;;
-
-(module
-  (export "_ZN1A3fooEv" $_ZN1A3fooEv)
-  (export "_ZN1B3fooEv" $_ZN1B3fooEv)
-  (export "_ZN1C3fooEv" $_ZN1C3fooEv)
-  (export "_ZN1D3fooEv" $_ZN1D3fooEv)
-  (export "_ZN1AD0Ev" $_ZN1AD0Ev)
-  (export "_ZN1BD0Ev" $_ZN1BD0Ev)
-  (export "_ZN1CD0Ev" $_ZN1CD0Ev)
-  (export "_ZN1AD2Ev" $_ZN1AD2Ev)
-  (export "_ZN1DD0Ev" $_ZN1DD0Ev)
-  (table $_ZN1AD2Ev $_ZN1AD0Ev $_ZN1A3fooEv $_ZN1BD0Ev $_ZN1B3fooEv $_ZN1CD0Ev $_ZN1C3fooEv $_ZN1DD0Ev $_ZN1D3fooEv)
-  (func $_ZN1A3fooEv
-    (param i32)
-    (i32.store offset=148 (i32.const 0) (i32.const 2))
-    (return)
-  )
-  (func $_ZN1B3fooEv
-    (param i32)
-    (i32.store offset=148 (i32.const 0) (i32.const 4))
-    (return)
-  )
-  (func $_ZN1C3fooEv
-    (param i32)
-    (i32.store offset=148 (i32.const 0) (i32.const 6))
-    (return)
-  )
-  (func $_ZN1D3fooEv
-    (param i32)
-    (i32.store offset=148 (i32.const 0) (i32.const 8))
-    (return)
-  )
-  (func $_ZN1AD0Ev
-    (param i32)
-    (call _ZdlPv (get_local 0))
-    (return)
-  )
-  (func $_ZN1BD0Ev
-    (param i32)
-    (call _ZdlPv (get_local 0))
-    (return)
-  )
-  (func $_ZN1CD0Ev
-    (param i32)
-    (call _ZdlPv (get_local 0))
-    (return)
-  )
-  (func $_ZN1AD2Ev
-    (param i32)
-    (result i32)
-    (return (get_local 0))
-  )
-  (func $_ZN1DD0Ev
-    (param i32)
-    (call _ZdlPv (get_local 0))
-    (return)
-  )
-  (memory 152 152
-    (segment 0
-      "1A\001B\001C\001D\00\00\00\00\00`\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\00\00\00\00h\00\00\00\00\00\00\00\03\00\00\00\04\00\00\00\00\00\00\00x\00\00\00\00\00\00\00\05\00\00\00\06\00\00\00\00\00\00\00\88\00\00\00\00\00\00\00\07\00\00\00\08\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\03\00\00\00`\00\00\00\00\00\00\00\00\00\00\00\06\00\00\00`\00\00\00\00\00\00\00\00\00\00\00\t\00\00\00h\00\00\00"
-    )
-  )
-)
diff --git a/prototype-wasmate/test/f32.s b/prototype-wasmate/test/f32.s
deleted file mode 100644
index f1d29af..0000000
--- a/prototype-wasmate/test/f32.s
+++ /dev/null
@@ -1,182 +0,0 @@
-	.text
-	.file	"/s/llvm/llvm/test/CodeGen/WebAssembly/f32.ll"
-	.globl	fadd32
-	.type	fadd32,@function
-fadd32:                                 # @fadd32
-	.param  	f32, f32
-	.result 	f32
-# BB#0:
-	f32.add 	$push0=, $0, $1
-	return  	$pop0
-func_end0:
-	.size	fadd32, func_end0-fadd32
-
-	.globl	fsub32
-	.type	fsub32,@function
-fsub32:                                 # @fsub32
-	.param  	f32, f32
-	.result 	f32
-# BB#0:
-	f32.sub 	$push0=, $0, $1
-	return  	$pop0
-func_end1:
-	.size	fsub32, func_end1-fsub32
-
-	.globl	fmul32
-	.type	fmul32,@function
-fmul32:                                 # @fmul32
-	.param  	f32, f32
-	.result 	f32
-# BB#0:
-	f32.mul 	$push0=, $0, $1
-	return  	$pop0
-func_end2:
-	.size	fmul32, func_end2-fmul32
-
-	.globl	fdiv32
-	.type	fdiv32,@function
-fdiv32:                                 # @fdiv32
-	.param  	f32, f32
-	.result 	f32
-# BB#0:
-	f32.div 	$push0=, $0, $1
-	return  	$pop0
-func_end3:
-	.size	fdiv32, func_end3-fdiv32
-
-	.globl	fabs32
-	.type	fabs32,@function
-fabs32:                                 # @fabs32
-	.param  	f32
-	.result 	f32
-# BB#0:
-	f32.abs 	$push0=, $0
-	return  	$pop0
-func_end4:
-	.size	fabs32, func_end4-fabs32
-
-	.globl	fneg32
-	.type	fneg32,@function
-fneg32:                                 # @fneg32
-	.param  	f32
-	.result 	f32
-# BB#0:
-	f32.neg 	$push0=, $0
-	return  	$pop0
-func_end5:
-	.size	fneg32, func_end5-fneg32
-
-	.globl	copysign32
-	.type	copysign32,@function
-copysign32:                             # @copysign32
-	.param  	f32, f32
-	.result 	f32
-# BB#0:
-	f32.copysign	$push0=, $0, $1
-	return  	$pop0
-func_end6:
-	.size	copysign32, func_end6-copysign32
-
-	.globl	sqrt32
-	.type	sqrt32,@function
-sqrt32:                                 # @sqrt32
-	.param  	f32
-	.result 	f32
-# BB#0:
-	f32.sqrt	$push0=, $0
-	return  	$pop0
-func_end7:
-	.size	sqrt32, func_end7-sqrt32
-
-	.globl	ceil32
-	.type	ceil32,@function
-ceil32:                                 # @ceil32
-	.param  	f32
-	.result 	f32
-# BB#0:
-	f32.ceil	$push0=, $0
-	return  	$pop0
-func_end8:
-	.size	ceil32, func_end8-ceil32
-
-	.globl	floor32
-	.type	floor32,@function
-floor32:                                # @floor32
-	.param  	f32
-	.result 	f32
-# BB#0:
-	f32.floor	$push0=, $0
-	return  	$pop0
-func_end9:
-	.size	floor32, func_end9-floor32
-
-	.globl	trunc32
-	.type	trunc32,@function
-trunc32:                                # @trunc32
-	.param  	f32
-	.result 	f32
-# BB#0:
-	f32.trunc	$push0=, $0
-	return  	$pop0
-func_end10:
-	.size	trunc32, func_end10-trunc32
-
-	.globl	nearest32
-	.type	nearest32,@function
-nearest32:                              # @nearest32
-	.param  	f32
-	.result 	f32
-# BB#0:
-	f32.nearest	$push0=, $0
-	return  	$pop0
-func_end11:
-	.size	nearest32, func_end11-nearest32
-
-	.globl	nearest32_via_rint
-	.type	nearest32_via_rint,@function
-nearest32_via_rint:                     # @nearest32_via_rint
-	.param  	f32
-	.result 	f32
-# BB#0:
-	f32.nearest	$push0=, $0
-	return  	$pop0
-func_end12:
-	.size	nearest32_via_rint, func_end12-nearest32_via_rint
-
-	.globl	fmin32
-	.type	fmin32,@function
-fmin32:                                 # @fmin32
-	.param  	f32
-	.result 	f32
-# BB#0:
-	f32.const	$push0=, 0x0p0
-	f32.min 	$push1=, $0, $pop0
-	return  	$pop1
-func_end13:
-	.size	fmin32, func_end13-fmin32
-
-	.globl	fmax32
-	.type	fmax32,@function
-fmax32:                                 # @fmax32
-	.param  	f32
-	.result 	f32
-# BB#0:
-	f32.const	$push0=, 0x0p0
-	f32.max 	$push1=, $0, $pop0
-	return  	$pop1
-func_end14:
-	.size	fmax32, func_end14-fmax32
-
-	.globl	fma32
-	.type	fma32,@function
-fma32:                                  # @fma32
-	.param  	f32, f32, f32
-	.result 	f32
-# BB#0:
-	f32.call	$push0=, fmaf, $0, $1, $2
-	return  	$pop0
-func_end15:
-	.size	fma32, func_end15-fma32
-
-
-	.section	".note.GNU-stack","",@progbits
diff --git a/prototype-wasmate/test/f64.s b/prototype-wasmate/test/f64.s
deleted file mode 100644
index 54bbfbd..0000000
--- a/prototype-wasmate/test/f64.s
+++ /dev/null
@@ -1,182 +0,0 @@
-	.text
-	.file	"/s/llvm/llvm/test/CodeGen/WebAssembly/f64.ll"
-	.globl	fadd64
-	.type	fadd64,@function
-fadd64:                                 # @fadd64
-	.param  	f64, f64
-	.result 	f64
-# BB#0:
-	f64.add 	$push0=, $0, $1
-	return  	$pop0
-func_end0:
-	.size	fadd64, func_end0-fadd64
-
-	.globl	fsub64
-	.type	fsub64,@function
-fsub64:                                 # @fsub64
-	.param  	f64, f64
-	.result 	f64
-# BB#0:
-	f64.sub 	$push0=, $0, $1
-	return  	$pop0
-func_end1:
-	.size	fsub64, func_end1-fsub64
-
-	.globl	fmul64
-	.type	fmul64,@function
-fmul64:                                 # @fmul64
-	.param  	f64, f64
-	.result 	f64
-# BB#0:
-	f64.mul 	$push0=, $0, $1
-	return  	$pop0
-func_end2:
-	.size	fmul64, func_end2-fmul64
-
-	.globl	fdiv64
-	.type	fdiv64,@function
-fdiv64:                                 # @fdiv64
-	.param  	f64, f64
-	.result 	f64
-# BB#0:
-	f64.div 	$push0=, $0, $1
-	return  	$pop0
-func_end3:
-	.size	fdiv64, func_end3-fdiv64
-
-	.globl	fabs64
-	.type	fabs64,@function
-fabs64:                                 # @fabs64
-	.param  	f64
-	.result 	f64
-# BB#0:
-	f64.abs 	$push0=, $0
-	return  	$pop0
-func_end4:
-	.size	fabs64, func_end4-fabs64
-
-	.globl	fneg64
-	.type	fneg64,@function
-fneg64:                                 # @fneg64
-	.param  	f64
-	.result 	f64
-# BB#0:
-	f64.neg 	$push0=, $0
-	return  	$pop0
-func_end5:
-	.size	fneg64, func_end5-fneg64
-
-	.globl	copysign64
-	.type	copysign64,@function
-copysign64:                             # @copysign64
-	.param  	f64, f64
-	.result 	f64
-# BB#0:
-	f64.copysign	$push0=, $0, $1
-	return  	$pop0
-func_end6:
-	.size	copysign64, func_end6-copysign64
-
-	.globl	sqrt64
-	.type	sqrt64,@function
-sqrt64:                                 # @sqrt64
-	.param  	f64
-	.result 	f64
-# BB#0:
-	f64.sqrt	$push0=, $0
-	return  	$pop0
-func_end7:
-	.size	sqrt64, func_end7-sqrt64
-
-	.globl	ceil64
-	.type	ceil64,@function
-ceil64:                                 # @ceil64
-	.param  	f64
-	.result 	f64
-# BB#0:
-	f64.ceil	$push0=, $0
-	return  	$pop0
-func_end8:
-	.size	ceil64, func_end8-ceil64
-
-	.globl	floor64
-	.type	floor64,@function
-floor64:                                # @floor64
-	.param  	f64
-	.result 	f64
-# BB#0:
-	f64.floor	$push0=, $0
-	return  	$pop0
-func_end9:
-	.size	floor64, func_end9-floor64
-
-	.globl	trunc64
-	.type	trunc64,@function
-trunc64:                                # @trunc64
-	.param  	f64
-	.result 	f64
-# BB#0:
-	f64.trunc	$push0=, $0
-	return  	$pop0
-func_end10:
-	.size	trunc64, func_end10-trunc64
-
-	.globl	nearest64
-	.type	nearest64,@function
-nearest64:                              # @nearest64
-	.param  	f64
-	.result 	f64
-# BB#0:
-	f64.nearest	$push0=, $0
-	return  	$pop0
-func_end11:
-	.size	nearest64, func_end11-nearest64
-
-	.globl	nearest64_via_rint
-	.type	nearest64_via_rint,@function
-nearest64_via_rint:                     # @nearest64_via_rint
-	.param  	f64
-	.result 	f64
-# BB#0:
-	f64.nearest	$push0=, $0
-	return  	$pop0
-func_end12:
-	.size	nearest64_via_rint, func_end12-nearest64_via_rint
-
-	.globl	fmin64
-	.type	fmin64,@function
-fmin64:                                 # @fmin64
-	.param  	f64
-	.result 	f64
-# BB#0:
-	f64.const	$push0=, 0x0p0
-	f64.min 	$push1=, $0, $pop0
-	return  	$pop1
-func_end13:
-	.size	fmin64, func_end13-fmin64
-
-	.globl	fmax64
-	.type	fmax64,@function
-fmax64:                                 # @fmax64
-	.param  	f64
-	.result 	f64
-# BB#0:
-	f64.const	$push0=, 0x0p0
-	f64.max 	$push1=, $0, $pop0
-	return  	$pop1
-func_end14:
-	.size	fmax64, func_end14-fmax64
-
-	.globl	fma64
-	.type	fma64,@function
-fma64:                                  # @fma64
-	.param  	f64, f64, f64
-	.result 	f64
-# BB#0:
-	f64.call	$push0=, fma, $0, $1, $2
-	return  	$pop0
-func_end15:
-	.size	fma64, func_end15-fma64
-
-
-	.section	".note.GNU-stack","",@progbits
diff --git a/prototype-wasmate/test/fast-isel.s b/prototype-wasmate/test/fast-isel.s
deleted file mode 100644
index 8dca00f..0000000
--- a/prototype-wasmate/test/fast-isel.s
+++ /dev/null
@@ -1,24 +0,0 @@
-	.text
-	.file	"/s/llvm/llvm/test/CodeGen/WebAssembly/fast-isel.ll"
-	.globl	immediate_f32
-	.type	immediate_f32,@function
-immediate_f32:                          # @immediate_f32
-	.result 	f32
-# BB#0:
-	f32.const	$push0=, 0x1.4p1
-	return  	$pop0
-func_end0:
-	.size	immediate_f32, func_end0-immediate_f32
-
-	.globl	immediate_f64
-	.type	immediate_f64,@function
-immediate_f64:                          # @immediate_f64
-	.result 	f64
-# BB#0:
-	f64.const	$push0=, 0x1.4p1
-	return  	$pop0
-func_end1:
-	.size	immediate_f64, func_end1-immediate_f64
-
-
-	.section	".note.GNU-stack","",@progbits
diff --git a/prototype-wasmate/test/frem.s b/prototype-wasmate/test/frem.s
deleted file mode 100644
index ff3ef96..0000000
--- a/prototype-wasmate/test/frem.s
+++ /dev/null
@@ -1,26 +0,0 @@
-	.text
-	.file	"/s/llvm/llvm/test/CodeGen/WebAssembly/frem.ll"
-	.globl	frem32
-	.type	frem32,@function
-frem32:                                 # @frem32
-	.param  	f32, f32
-	.result 	f32
-# BB#0:
-	f32.call	$push0=, fmodf, $0, $1
-	return  	$pop0
-func_end0:
-	.size	frem32, func_end0-frem32
-
-	.globl	frem64
-	.type	frem64,@function
-frem64:                                 # @frem64
-	.param  	f64, f64
-	.result 	f64
-# BB#0:
-	f64.call	$push0=, fmod, $0, $1
-	return  	$pop0
-func_end1:
-	.size	frem64, func_end1-frem64
-
-
-	.section	".note.GNU-stack","",@progbits
diff --git a/prototype-wasmate/test/func.s b/prototype-wasmate/test/func.s
deleted file mode 100644
index 7fd2669..0000000
--- a/prototype-wasmate/test/func.s
+++ /dev/null
@@ -1,72 +0,0 @@
-	.text
-	.file	"/s/llvm/llvm/test/CodeGen/WebAssembly/func.ll"
-	.globl	f0
-	.type	f0,@function
-f0:                                     # @f0
-# BB#0:
-	return
-func_end0:
-	.size	f0, func_end0-f0
-
-	.globl	f1
-	.type	f1,@function
-f1:                                     # @f1
-	.result 	i32
-# BB#0:
-	i32.const	$push0=, 0
-	return  	$pop0
-func_end1:
-	.size	f1, func_end1-f1
-
-	.globl	f2
-	.type	f2,@function
-f2:                                     # @f2
-	.param  	i32, f32
-	.result 	i32
-# BB#0:
-	i32.const	$push0=, 0
-	return  	$pop0
-func_end2:
-	.size	f2, func_end2-f2
-
-	.globl	f3
-	.type	f3,@function
-f3:                                     # @f3
-	.param  	i32, f32
-# BB#0:
-	return
-func_end3:
-	.size	f3, func_end3-f3
-
-	.globl	f4
-	.type	f4,@function
-f4:                                     # @f4
-	.param  	i32
-	.result 	i32
-	.local  	i32
-# BB#0:                                 # %entry
-	i32.const	$1=, 1
-	i32.and 	$push0=, $0, $1
-	block   	BB4_2
-	i32.const	$push2=, 0
-	i32.eq  	$push3=, $pop0, $pop2
-	br_if   	$pop3, BB4_2
-# BB#1:                                 # %true
-	i32.const	$push1=, 0
-	return  	$pop1
-BB4_2:                                  # %false
-	return  	$1
-func_end4:
-	.size	f4, func_end4-f4
-
-	.globl	f5
-	.type	f5,@function
-f5:                                     # @f5
-	.result 	f32
-# BB#0:
-	unreachable
-func_end5:
-	.size	f5, func_end5-f5
-
-
-	.section	".note.GNU-stack","",@progbits
diff --git a/prototype-wasmate/test/global.s b/prototype-wasmate/test/global.s
deleted file mode 100644
index e19094c..0000000
--- a/prototype-wasmate/test/global.s
+++ /dev/null
@@ -1,151 +0,0 @@
-	.text
-	.file	"/s/llvm/llvm/test/CodeGen/WebAssembly/global.ll"
-	.globl	foo
-	.type	foo,@function
-foo:                                    # @foo
-	.result 	i32
-# BB#0:
-	i32.const	$push0=, 0
-	i32.load	$push1=, answer($pop0)
-	return  	$pop1
-func_end0:
-	.size	foo, func_end0-foo
-
-	.globl	call_memcpy
-	.type	call_memcpy,@function
-call_memcpy:                            # @call_memcpy
-	.param  	i32, i32, i32
-	.result 	i32
-# BB#0:
-	call    	memcpy, $0, $1, $2
-	return  	$0
-func_end1:
-	.size	call_memcpy, func_end1-call_memcpy
-
-	.type	g,@object               # @g
-	.data
-	.align	2
-g:
-	.int32	1337                    # 0x539
-	.size	g, 4
-
-	.type	ud,@object              # @ud
-	.align	2
-ud:
-	.zero	4
-	.size	ud, 4
-
-	.type	nil,@object             # @nil
-	.lcomm	nil,4,2
-	.type	z,@object               # @z
-	.lcomm	z,4,2
-	.type	one,@object             # @one
-	.align	2
-one:
-	.int32	1                       # 0x1
-	.size	one, 4
-
-	.type	answer,@object          # @answer
-	.align	2
-answer:
-	.int32	42                      # 0x2a
-	.size	answer, 4
-
-	.type	u32max,@object          # @u32max
-	.align	2
-u32max:
-	.int32	4294967295              # 0xffffffff
-	.size	u32max, 4
-
-	.type	ud64,@object            # @ud64
-	.align	3
-ud64:
-	.zero	8
-	.size	ud64, 8
-
-	.type	nil64,@object           # @nil64
-	.lcomm	nil64,8,3
-	.type	z64,@object             # @z64
-	.lcomm	z64,8,3
-	.type	twoP32,@object          # @twoP32
-	.align	3
-twoP32:
-	.int64	4294967296              # 0x100000000
-	.size	twoP32, 8
-
-	.type	u64max,@object          # @u64max
-	.align	3
-u64max:
-	.int64	-1                      # 0xffffffffffffffff
-	.size	u64max, 8
-
-	.type	f32ud,@object           # @f32ud
-	.align	2
-f32ud:
-	.zero	4
-	.size	f32ud, 4
-
-	.type	f32nil,@object          # @f32nil
-	.lcomm	f32nil,4,2
-	.type	f32z,@object            # @f32z
-	.lcomm	f32z,4,2
-	.type	f32nz,@object           # @f32nz
-	.align	2
-f32nz:
-	.int32	2147483648              # float -0
-	.size	f32nz, 4
-
-	.type	f32two,@object          # @f32two
-	.align	2
-f32two:
-	.int32	1073741824              # float 2
-	.size	f32two, 4
-
-	.type	f64ud,@object           # @f64ud
-	.align	3
-f64ud:
-	.zero	8
-	.size	f64ud, 8
-
-	.type	f64nil,@object          # @f64nil
-	.lcomm	f64nil,8,3
-	.type	f64z,@object            # @f64z
-	.lcomm	f64z,8,3
-	.type	f64nz,@object           # @f64nz
-	.align	3
-f64nz:
-	.int64	-9223372036854775808    # double -0
-	.size	f64nz, 8
-
-	.type	f64two,@object          # @f64two
-	.align	3
-f64two:
-	.int64	4611686018427387904     # double 2
-	.size	f64two, 8
-
-	.type	arr,@object             # @arr
-	.bss
-	.globl	arr
-	.align	4
-arr:
-	.zero	512
-	.size	arr, 512
-
-	.type	ptr,@object             # @ptr
-	.data
-	.globl	ptr
-	.align	2
-ptr:
-	.int32	arr+80
-	.size	ptr, 4
-
-	.type	rom,@object             # @rom
-	.section	.rodata,"a",@progbits
-	.globl	rom
-	.align	4
-rom:
-	.zero	512
-	.size	rom, 512
-
-
-	.section	".note.GNU-stack","",@progbits
diff --git a/prototype-wasmate/test/globl.s b/prototype-wasmate/test/globl.s
deleted file mode 100644
index 18574ba..0000000
--- a/prototype-wasmate/test/globl.s
+++ /dev/null
@@ -1,12 +0,0 @@
-	.text
-	.file	"/s/llvm/llvm/test/CodeGen/WebAssembly/globl.ll"
-	.globl	foo
-	.type	foo,@function
-foo:                                    # @foo
-# BB#0:
-	return
-func_end0:
-	.size	foo, func_end0-foo
-
-
-	.section	".note.GNU-stack","",@progbits
diff --git a/prototype-wasmate/test/i32.s b/prototype-wasmate/test/i32.s
deleted file mode 100644
index eb60992..0000000
--- a/prototype-wasmate/test/i32.s
+++ /dev/null
@@ -1,202 +0,0 @@
-	.text
-	.file	"/s/llvm/llvm/test/CodeGen/WebAssembly/i32.ll"
-	.globl	add32
-	.type	add32,@function
-add32:                                  # @add32
-	.param  	i32, i32
-	.result 	i32
-# BB#0:
-	i32.add 	$push0=, $0, $1
-	return  	$pop0
-func_end0:
-	.size	add32, func_end0-add32
-
-	.globl	sub32
-	.type	sub32,@function
-sub32:                                  # @sub32
-	.param  	i32, i32
-	.result 	i32
-# BB#0:
-	i32.sub 	$push0=, $0, $1
-	return  	$pop0
-func_end1:
-	.size	sub32, func_end1-sub32
-
-	.globl	mul32
-	.type	mul32,@function
-mul32:                                  # @mul32
-	.param  	i32, i32
-	.result 	i32
-# BB#0:
-	i32.mul 	$push0=, $0, $1
-	return  	$pop0
-func_end2:
-	.size	mul32, func_end2-mul32
-
-	.globl	sdiv32
-	.type	sdiv32,@function
-sdiv32:                                 # @sdiv32
-	.param  	i32, i32
-	.result 	i32
-# BB#0:
-	i32.div_s	$push0=, $0, $1
-	return  	$pop0
-func_end3:
-	.size	sdiv32, func_end3-sdiv32
-
-	.globl	udiv32
-	.type	udiv32,@function
-udiv32:                                 # @udiv32
-	.param  	i32, i32
-	.result 	i32
-# BB#0:
-	i32.div_u	$push0=, $0, $1
-	return  	$pop0
-func_end4:
-	.size	udiv32, func_end4-udiv32
-
-	.globl	srem32
-	.type	srem32,@function
-srem32:                                 # @srem32
-	.param  	i32, i32
-	.result 	i32
-# BB#0:
-	i32.rem_s	$push0=, $0, $1
-	return  	$pop0
-func_end5:
-	.size	srem32, func_end5-srem32
-
-	.globl	urem32
-	.type	urem32,@function
-urem32:                                 # @urem32
-	.param  	i32, i32
-	.result 	i32
-# BB#0:
-	i32.rem_u	$push0=, $0, $1
-	return  	$pop0
-func_end6:
-	.size	urem32, func_end6-urem32
-
-	.globl	and32
-	.type	and32,@function
-and32:                                  # @and32
-	.param  	i32, i32
-	.result 	i32
-# BB#0:
-	i32.and 	$push0=, $0, $1
-	return  	$pop0
-func_end7:
-	.size	and32, func_end7-and32
-
-	.globl	or32
-	.type	or32,@function
-or32:                                   # @or32
-	.param  	i32, i32
-	.result 	i32
-# BB#0:
-	i32.or  	$push0=, $0, $1
-	return  	$pop0
-func_end8:
-	.size	or32, func_end8-or32
-
-	.globl	xor32
-	.type	xor32,@function
-xor32:                                  # @xor32
-	.param  	i32, i32
-	.result 	i32
-# BB#0:
-	i32.xor 	$push0=, $0, $1
-	return  	$pop0
-func_end9:
-	.size	xor32, func_end9-xor32
-
-	.globl	shl32
-	.type	shl32,@function
-shl32:                                  # @shl32
-	.param  	i32, i32
-	.result 	i32
-# BB#0:
-	i32.shl 	$push0=, $0, $1
-	return  	$pop0
-func_end10:
-	.size	shl32, func_end10-shl32
-
-	.globl	shr32
-	.type	shr32,@function
-shr32:                                  # @shr32
-	.param  	i32, i32
-	.result 	i32
-# BB#0:
-	i32.shr_u	$push0=, $0, $1
-	return  	$pop0
-func_end11:
-	.size	shr32, func_end11-shr32
-
-	.globl	sar32
-	.type	sar32,@function
-sar32:                                  # @sar32
-	.param  	i32, i32
-	.result 	i32
-# BB#0:
-	i32.shr_s	$push0=, $0, $1
-	return  	$pop0
-func_end12:
-	.size	sar32, func_end12-sar32
-
-	.globl	clz32
-	.type	clz32,@function
-clz32:                                  # @clz32
-	.param  	i32
-	.result 	i32
-# BB#0:
-	i32.clz 	$push0=, $0
-	return  	$pop0
-func_end13:
-	.size	clz32, func_end13-clz32
-
-	.globl	clz32_zero_undef
-	.type	clz32_zero_undef,@function
-clz32_zero_undef:                       # @clz32_zero_undef
-	.param  	i32
-	.result 	i32
-# BB#0:
-	i32.clz 	$push0=, $0
-	return  	$pop0
-func_end14:
-	.size	clz32_zero_undef, func_end14-clz32_zero_undef
-
-	.globl	ctz32
-	.type	ctz32,@function
-ctz32:                                  # @ctz32
-	.param  	i32
-	.result 	i32
-# BB#0:
-	i32.ctz 	$push0=, $0
-	return  	$pop0
-func_end15:
-	.size	ctz32, func_end15-ctz32
-
-	.globl	ctz32_zero_undef
-	.type	ctz32_zero_undef,@function
-ctz32_zero_undef:                       # @ctz32_zero_undef
-	.param  	i32
-	.result 	i32
-# BB#0:
-	i32.ctz 	$push0=, $0
-	return  	$pop0
-func_end16:
-	.size	ctz32_zero_undef, func_end16-ctz32_zero_undef
-
-	.globl	popcnt32
-	.type	popcnt32,@function
-popcnt32:                               # @popcnt32
-	.param  	i32
-	.result 	i32
-# BB#0:
-	i32.popcnt	$push0=, $0
-	return  	$pop0
-func_end17:
-	.size	popcnt32, func_end17-popcnt32
-
-
-	.section	".note.GNU-stack","",@progbits
diff --git a/prototype-wasmate/test/i64.s b/prototype-wasmate/test/i64.s
deleted file mode 100644
index 4e6b16f..0000000
--- a/prototype-wasmate/test/i64.s
+++ /dev/null
@@ -1,202 +0,0 @@
-	.text
-	.file	"/s/llvm/llvm/test/CodeGen/WebAssembly/i64.ll"
-	.globl	add64
-	.type	add64,@function
-add64:                                  # @add64
-	.param  	i64, i64
-	.result 	i64
-# BB#0:
-	i64.add 	$push0=, $0, $1
-	return  	$pop0
-func_end0:
-	.size	add64, func_end0-add64
-
-	.globl	sub64
-	.type	sub64,@function
-sub64:                                  # @sub64
-	.param  	i64, i64
-	.result 	i64
-# BB#0:
-	i64.sub 	$push0=, $0, $1
-	return  	$pop0
-func_end1:
-	.size	sub64, func_end1-sub64
-
-	.globl	mul64
-	.type	mul64,@function
-mul64:                                  # @mul64
-	.param  	i64, i64
-	.result 	i64
-# BB#0:
-	i64.mul 	$push0=, $0, $1
-	return  	$pop0
-func_end2:
-	.size	mul64, func_end2-mul64
-
-	.globl	sdiv64
-	.type	sdiv64,@function
-sdiv64:                                 # @sdiv64
-	.param  	i64, i64
-	.result 	i64
-# BB#0:
-	i64.div_s	$push0=, $0, $1
-	return  	$pop0
-func_end3:
-	.size	sdiv64, func_end3-sdiv64
-
-	.globl	udiv64
-	.type	udiv64,@function
-udiv64:                                 # @udiv64
-	.param  	i64, i64
-	.result 	i64
-# BB#0:
-	i64.div_u	$push0=, $0, $1
-	return  	$pop0
-func_end4:
-	.size	udiv64, func_end4-udiv64
-
-	.globl	srem64
-	.type	srem64,@function
-srem64:                                 # @srem64
-	.param  	i64, i64
-	.result 	i64
-# BB#0:
-	i64.rem_s	$push0=, $0, $1
-	return  	$pop0
-func_end5:
-	.size	srem64, func_end5-srem64
-
-	.globl	urem64
-	.type	urem64,@function
-urem64:                                 # @urem64
-	.param  	i64, i64
-	.result 	i64
-# BB#0:
-	i64.rem_u	$push0=, $0, $1
-	return  	$pop0
-func_end6:
-	.size	urem64, func_end6-urem64
-
-	.globl	and64
-	.type	and64,@function
-and64:                                  # @and64
-	.param  	i64, i64
-	.result 	i64
-# BB#0:
-	i64.and 	$push0=, $0, $1
-	return  	$pop0
-func_end7:
-	.size	and64, func_end7-and64
-
-	.globl	or64
-	.type	or64,@function
-or64:                                   # @or64
-	.param  	i64, i64
-	.result 	i64
-# BB#0:
-	i64.or  	$push0=, $0, $1
-	return  	$pop0
-func_end8:
-	.size	or64, func_end8-or64
-
-	.globl	xor64
-	.type	xor64,@function
-xor64:                                  # @xor64
-	.param  	i64, i64
-	.result 	i64
-# BB#0:
-	i64.xor 	$push0=, $0, $1
-	return  	$pop0
-func_end9:
-	.size	xor64, func_end9-xor64
-
-	.globl	shl64
-	.type	shl64,@function
-shl64:                                  # @shl64
-	.param  	i64, i64
-	.result 	i64
-# BB#0:
-	i64.shl 	$push0=, $0, $1
-	return  	$pop0
-func_end10:
-	.size	shl64, func_end10-shl64
-
-	.globl	shr64
-	.type	shr64,@function
-shr64:                                  # @shr64
-	.param  	i64, i64
-	.result 	i64
-# BB#0:
-	i64.shr_u	$push0=, $0, $1
-	return  	$pop0
-func_end11:
-	.size	shr64, func_end11-shr64
-
-	.globl	sar64
-	.type	sar64,@function
-sar64:                                  # @sar64
-	.param  	i64, i64
-	.result 	i64
-# BB#0:
-	i64.shr_s	$push0=, $0, $1
-	return  	$pop0
-func_end12:
-	.size	sar64, func_end12-sar64
-
-	.globl	clz64
-	.type	clz64,@function
-clz64:                                  # @clz64
-	.param  	i64
-	.result 	i64
-# BB#0:
-	i64.clz 	$push0=, $0
-	return  	$pop0
-func_end13:
-	.size	clz64, func_end13-clz64
-
-	.globl	clz64_zero_undef
-	.type	clz64_zero_undef,@function
-clz64_zero_undef:                       # @clz64_zero_undef
-	.param  	i64
-	.result 	i64
-# BB#0:
-	i64.clz 	$push0=, $0
-	return  	$pop0
-func_end14:
-	.size	clz64_zero_undef, func_end14-clz64_zero_undef
-
-	.globl	ctz64
-	.type	ctz64,@function
-ctz64:                                  # @ctz64
-	.param  	i64
-	.result 	i64
-# BB#0:
-	i64.ctz 	$push0=, $0
-	return  	$pop0
-func_end15:
-	.size	ctz64, func_end15-ctz64
-
-	.globl	ctz64_zero_undef
-	.type	ctz64_zero_undef,@function
-ctz64_zero_undef:                       # @ctz64_zero_undef
-	.param  	i64
-	.result 	i64
-# BB#0:
-	i64.ctz 	$push0=, $0
-	return  	$pop0
-func_end16:
-	.size	ctz64_zero_undef, func_end16-ctz64_zero_undef
-
-	.globl	popcnt64
-	.type	popcnt64,@function
-popcnt64:                               # @popcnt64
-	.param  	i64
-	.result 	i64
-# BB#0:
-	i64.popcnt	$push0=, $0
-	return  	$pop0
-func_end17:
-	.size	popcnt64, func_end17-popcnt64
-
-
-	.section	".note.GNU-stack","",@progbits
diff --git a/prototype-wasmate/test/ident.s b/prototype-wasmate/test/ident.s
deleted file mode 100644
index 46a08c7..0000000
--- a/prototype-wasmate/test/ident.s
+++ /dev/null
@@ -1,5 +0,0 @@
-	.text
-	.file	"/s/llvm/llvm/test/CodeGen/WebAssembly/ident.ll"
-
-	.ident	"hello world"
-	.section	".note.GNU-stack","",@progbits
diff --git a/prototype-wasmate/test/immediates.s b/prototype-wasmate/test/immediates.s
deleted file mode 100644
index 630a75b..0000000
--- a/prototype-wasmate/test/immediates.s
+++ /dev/null
@@ -1,244 +0,0 @@
-	.text
-	.file	"/s/llvm/llvm/test/CodeGen/WebAssembly/immediates.ll"
-	.globl	zero_i32
-	.type	zero_i32,@function
-zero_i32:                               # @zero_i32
-	.result 	i32
-# BB#0:
-	i32.const	$push0=, 0
-	return  	$pop0
-func_end0:
-	.size	zero_i32, func_end0-zero_i32
-
-	.globl	one_i32
-	.type	one_i32,@function
-one_i32:                                # @one_i32
-	.result 	i32
-# BB#0:
-	i32.const	$push0=, 1
-	return  	$pop0
-func_end1:
-	.size	one_i32, func_end1-one_i32
-
-	.globl	max_i32
-	.type	max_i32,@function
-max_i32:                                # @max_i32
-	.result 	i32
-# BB#0:
-	i32.const	$push0=, 2147483647
-	return  	$pop0
-func_end2:
-	.size	max_i32, func_end2-max_i32
-
-	.globl	min_i32
-	.type	min_i32,@function
-min_i32:                                # @min_i32
-	.result 	i32
-# BB#0:
-	i32.const	$push0=, -2147483648
-	return  	$pop0
-func_end3:
-	.size	min_i32, func_end3-min_i32
-
-	.globl	zero_i64
-	.type	zero_i64,@function
-zero_i64:                               # @zero_i64
-	.result 	i64
-# BB#0:
-	i64.const	$push0=, 0
-	return  	$pop0
-func_end4:
-	.size	zero_i64, func_end4-zero_i64
-
-	.globl	one_i64
-	.type	one_i64,@function
-one_i64:                                # @one_i64
-	.result 	i64
-# BB#0:
-	i64.const	$push0=, 1
-	return  	$pop0
-func_end5:
-	.size	one_i64, func_end5-one_i64
-
-	.globl	max_i64
-	.type	max_i64,@function
-max_i64:                                # @max_i64
-	.result 	i64
-# BB#0:
-	i64.const	$push0=, 9223372036854775807
-	return  	$pop0
-func_end6:
-	.size	max_i64, func_end6-max_i64
-
-	.globl	min_i64
-	.type	min_i64,@function
-min_i64:                                # @min_i64
-	.result 	i64
-# BB#0:
-	i64.const	$push0=, -9223372036854775808
-	return  	$pop0
-func_end7:
-	.size	min_i64, func_end7-min_i64
-
-	.globl	negzero_f32
-	.type	negzero_f32,@function
-negzero_f32:                            # @negzero_f32
-	.result 	f32
-# BB#0:
-	f32.const	$push0=, -0x0p0
-	return  	$pop0
-func_end8:
-	.size	negzero_f32, func_end8-negzero_f32
-
-	.globl	zero_f32
-	.type	zero_f32,@function
-zero_f32:                               # @zero_f32
-	.result 	f32
-# BB#0:
-	f32.const	$push0=, 0x0p0
-	return  	$pop0
-func_end9:
-	.size	zero_f32, func_end9-zero_f32
-
-	.globl	one_f32
-	.type	one_f32,@function
-one_f32:                                # @one_f32
-	.result 	f32
-# BB#0:
-	f32.const	$push0=, 0x1p0
-	return  	$pop0
-func_end10:
-	.size	one_f32, func_end10-one_f32
-
-	.globl	two_f32
-	.type	two_f32,@function
-two_f32:                                # @two_f32
-	.result 	f32
-# BB#0:
-	f32.const	$push0=, 0x1p1
-	return  	$pop0
-func_end11:
-	.size	two_f32, func_end11-two_f32
-
-	.globl	nan_f32
-	.type	nan_f32,@function
-nan_f32:                                # @nan_f32
-	.result 	f32
-# BB#0:
-	f32.const	$push0=, nan
-	return  	$pop0
-func_end12:
-	.size	nan_f32, func_end12-nan_f32
-
-	.globl	negnan_f32
-	.type	negnan_f32,@function
-negnan_f32:                             # @negnan_f32
-	.result 	f32
-# BB#0:
-	f32.const	$push0=, -nan
-	return  	$pop0
-func_end13:
-	.size	negnan_f32, func_end13-negnan_f32
-
-	.globl	inf_f32
-	.type	inf_f32,@function
-inf_f32:                                # @inf_f32
-	.result 	f32
-# BB#0:
-	f32.const	$push0=, infinity
-	return  	$pop0
-func_end14:
-	.size	inf_f32, func_end14-inf_f32
-
-	.globl	neginf_f32
-	.type	neginf_f32,@function
-neginf_f32:                             # @neginf_f32
-	.result 	f32
-# BB#0:
-	f32.const	$push0=, -infinity
-	return  	$pop0
-func_end15:
-	.size	neginf_f32, func_end15-neginf_f32
-
-	.globl	negzero_f64
-	.type	negzero_f64,@function
-negzero_f64:                            # @negzero_f64
-	.result 	f64
-# BB#0:
-	f64.const	$push0=, -0x0p0
-	return  	$pop0
-func_end16:
-	.size	negzero_f64, func_end16-negzero_f64
-
-	.globl	zero_f64
-	.type	zero_f64,@function
-zero_f64:                               # @zero_f64
-	.result 	f64
-# BB#0:
-	f64.const	$push0=, 0x0p0
-	return  	$pop0
-func_end17:
-	.size	zero_f64, func_end17-zero_f64
-
-	.globl	one_f64
-	.type	one_f64,@function
-one_f64:                                # @one_f64
-	.result 	f64
-# BB#0:
-	f64.const	$push0=, 0x1p0
-	return  	$pop0
-func_end18:
-	.size	one_f64, func_end18-one_f64
-
-	.globl	two_f64
-	.type	two_f64,@function
-two_f64:                                # @two_f64
-	.result 	f64
-# BB#0:
-	f64.const	$push0=, 0x1p1
-	return  	$pop0
-func_end19:
-	.size	two_f64, func_end19-two_f64
-
-	.globl	nan_f64
-	.type	nan_f64,@function
-nan_f64:                                # @nan_f64
-	.result 	f64
-# BB#0:
-	f64.const	$push0=, nan
-	return  	$pop0
-func_end20:
-	.size	nan_f64, func_end20-nan_f64
-
-	.globl	negnan_f64
-	.type	negnan_f64,@function
-negnan_f64:                             # @negnan_f64
-	.result 	f64
-# BB#0:
-	f64.const	$push0=, -nan
-	return  	$pop0
-func_end21:
-	.size	negnan_f64, func_end21-negnan_f64
-
-	.globl	inf_f64
-	.type	inf_f64,@function
-inf_f64:                                # @inf_f64
-	.result 	f64
-# BB#0:
-	f64.const	$push0=, infinity
-	return  	$pop0
-func_end22:
-	.size	inf_f64, func_end22-inf_f64
-
-	.globl	neginf_f64
-	.type	neginf_f64,@function
-neginf_f64:                             # @neginf_f64
-	.result 	f64
-# BB#0:
-	f64.const	$push0=, -infinity
-	return  	$pop0
-func_end23:
-	.size	neginf_f64, func_end23-neginf_f64
-
-
-	.section	".note.GNU-stack","",@progbits
diff --git a/prototype-wasmate/test/inline-asm.s b/prototype-wasmate/test/inline-asm.s
deleted file mode 100644
index 423430d..0000000
--- a/prototype-wasmate/test/inline-asm.s
+++ /dev/null
@@ -1,111 +0,0 @@
-	.text
-	.file	"/s/llvm/llvm/test/CodeGen/WebAssembly/inline-asm.ll"
-	.globl	foo
-	.type	foo,@function
-foo:                                    # @foo
-	.param  	i32
-	.result 	i32
-# BB#0:                                 # %entry
-	#APP
-	# $0 = aaa($0)
-	#NO_APP
-	return  	$0
-func_end0:
-	.size	foo, func_end0-foo
-
-	.globl	bar
-	.type	bar,@function
-bar:                                    # @bar
-	.param  	i32, i32
-# BB#0:                                 # %entry
-	#APP
-	# 0($1) = bbb(0($0))
-	#NO_APP
-	return
-func_end1:
-	.size	bar, func_end1-bar
-
-	.globl	imm
-	.type	imm,@function
-imm:                                    # @imm
-	.result 	i32
-	.local  	i32
-# BB#0:                                 # %entry
-	#APP
-	# $0 = ccc(42)
-	#NO_APP
-	return  	$0
-func_end2:
-	.size	imm, func_end2-imm
-
-	.globl	foo_i64
-	.type	foo_i64,@function
-foo_i64:                                # @foo_i64
-	.param  	i64
-	.result 	i64
-# BB#0:                                 # %entry
-	#APP
-	# $0 = aaa($0)
-	#NO_APP
-	return  	$0
-func_end3:
-	.size	foo_i64, func_end3-foo_i64
-
-	.globl	X_i16
-	.type	X_i16,@function
-X_i16:                                  # @X_i16
-	.param  	i32
-	.local  	i32
-# BB#0:
-	#APP
-	foo $1
-	#NO_APP
-	i32.store16	$discard=, 0($0), $1
-	return
-func_end4:
-	.size	X_i16, func_end4-X_i16
-
-	.globl	X_ptr
-	.type	X_ptr,@function
-X_ptr:                                  # @X_ptr
-	.param  	i32
-	.local  	i32
-# BB#0:
-	#APP
-	foo $1
-	#NO_APP
-	i32.store	$discard=, 0($0), $1
-	return
-func_end5:
-	.size	X_ptr, func_end5-X_ptr
-
-	.globl	funcname
-	.type	funcname,@function
-funcname:                               # @funcname
-# BB#0:
-	#APP
-	foo funcname
-	#NO_APP
-	return
-func_end6:
-	.size	funcname, func_end6-funcname
-
-	.globl	varname
-	.type	varname,@function
-varname:                                # @varname
-# BB#0:
-	#APP
-	foo gv+37
-	#NO_APP
-	return
-func_end7:
-	.size	varname, func_end7-varname
-
-	.type	gv,@object              # @gv
-	.bss
-	.globl	gv
-gv:
-	.size	gv, 0
-
-
-	.section	".note.GNU-stack","",@progbits
diff --git a/prototype-wasmate/test/lcomm-in-text-segment.s b/prototype-wasmate/test/lcomm-in-text-segment.s
deleted file mode 100644
index b059e63..0000000
--- a/prototype-wasmate/test/lcomm-in-text-segment.s
+++ /dev/null
@@ -1,12 +0,0 @@
-        .text
-        .type   a,@object
-        .lcomm  a,4,2
-        .type   b,@object
-        .lcomm  b,4,2
-        .type   c,@object
-        .data
-        .globl  c
-        .align  2
-c:
-        .int32  b
-        .size   c, 4
diff --git a/prototype-wasmate/test/legalize.s b/prototype-wasmate/test/legalize.s
deleted file mode 100644
index 781b898..0000000
--- a/prototype-wasmate/test/legalize.s
+++ /dev/null
@@ -1,925 +0,0 @@
-	.text
-	.file	"/s/llvm/llvm/test/CodeGen/WebAssembly/legalize.ll"
-	.globl	shl_i3
-	.type	shl_i3,@function
-shl_i3:                                 # @shl_i3
-	.param  	i32, i32, i32
-	.result 	i32
-# BB#0:
-	i32.const	$push0=, 7
-	i32.and 	$push1=, $1, $pop0
-	i32.shl 	$push2=, $0, $pop1
-	return  	$pop2
-func_end0:
-	.size	shl_i3, func_end0-shl_i3
-
-	.globl	shl_i53
-	.type	shl_i53,@function
-shl_i53:                                # @shl_i53
-	.param  	i64, i64, i32
-	.result 	i64
-# BB#0:
-	i64.const	$push0=, 9007199254740991
-	i64.and 	$push1=, $1, $pop0
-	i64.shl 	$push2=, $0, $pop1
-	return  	$pop2
-func_end1:
-	.size	shl_i53, func_end1-shl_i53
-
-	.globl	sext_in_reg_i32_i64
-	.type	sext_in_reg_i32_i64,@function
-sext_in_reg_i32_i64:                    # @sext_in_reg_i32_i64
-	.param  	i64
-	.result 	i64
-	.local  	i64
-# BB#0:
-	i64.const	$1=, 32
-	i64.shl 	$push0=, $0, $1
-	i64.shr_s	$push1=, $pop0, $1
-	return  	$pop1
-func_end2:
-	.size	sext_in_reg_i32_i64, func_end2-sext_in_reg_i32_i64
-
-	.globl	fpext_f32_f64
-	.type	fpext_f32_f64,@function
-fpext_f32_f64:                          # @fpext_f32_f64
-	.param  	i32
-	.result 	f64
-# BB#0:
-	f32.load	$push0=, 0($0)
-	f64.promote/f32	$push1=, $pop0
-	return  	$pop1
-func_end3:
-	.size	fpext_f32_f64, func_end3-fpext_f32_f64
-
-	.globl	fpconv_f64_f32
-	.type	fpconv_f64_f32,@function
-fpconv_f64_f32:                         # @fpconv_f64_f32
-	.param  	i32
-	.result 	f32
-# BB#0:
-	f64.load	$push0=, 0($0)
-	f32.demote/f64	$push1=, $pop0
-	return  	$pop1
-func_end4:
-	.size	fpconv_f64_f32, func_end4-fpconv_f64_f32
-
-	.globl	bigshift
-	.type	bigshift,@function
-bigshift:                               # @bigshift
-	.param  	i32, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64
-	.local  	i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i32, i64, i32, i32, i32, i32, i32, i32, i64, i64, i64, i32, i32, i64, i64, i64, i32, i32, i64, i32, i32, i64, i32, i32, i32, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i32, i64, i64, i64, i32, i64, i64, i32, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i32, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i32, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32
-# BB#0:
-	i32.const	$181=, __stack_pointer
-	i32.load	$181=, 0($181)
-	i32.const	$182=, 1024
-	i32.sub 	$279=, $181, $182
-	i32.const	$182=, __stack_pointer
-	i32.store	$279=, 0($182), $279
-	i64.const	$push0=, 896
-	i64.sub 	$push1=, $pop0, $17
-	i32.const	$184=, 480
-	i32.add 	$184=, $279, $184
-	call    	__lshrti3, $184, $1, $2, $pop1
-	i64.const	$push2=, -768
-	i64.add 	$33=, $17, $pop2
-	i32.const	$185=, 464
-	i32.add 	$185=, $279, $185
-	call    	__ashlti3, $185, $3, $4, $33
-	i64.const	$push3=, -896
-	i64.add 	$push4=, $17, $pop3
-	i32.const	$186=, 496
-	i32.add 	$186=, $279, $186
-	call    	__ashlti3, $186, $1, $2, $pop4
-	i64.const	$push5=, 640
-	i64.sub 	$34=, $pop5, $17
-	i32.const	$187=, 352
-	i32.add 	$187=, $279, $187
-	call    	__lshrti3, $187, $5, $6, $34
-	i64.const	$push6=, -512
-	i64.add 	$35=, $17, $pop6
-	i32.const	$188=, 336
-	i32.add 	$188=, $279, $188
-	call    	__ashlti3, $188, $7, $8, $35
-	i64.const	$push7=, -640
-	i64.add 	$36=, $17, $pop7
-	i32.const	$189=, 368
-	i32.add 	$189=, $279, $189
-	call    	__ashlti3, $189, $5, $6, $36
-	i64.const	$push8=, 768
-	i64.sub 	$37=, $pop8, $17
-	i32.const	$190=, 432
-	i32.add 	$190=, $279, $190
-	call    	__lshrti3, $190, $3, $4, $37
-	i64.const	$38=, 384
-	i64.sub 	$39=, $38, $17
-	i32.const	$191=, 864
-	i32.add 	$191=, $279, $191
-	call    	__lshrti3, $191, $9, $10, $39
-	i64.const	$push9=, -256
-	i64.add 	$40=, $17, $pop9
-	i32.const	$192=, 848
-	i32.add 	$192=, $279, $192
-	call    	__ashlti3, $192, $11, $12, $40
-	i64.const	$push10=, -384
-	i64.add 	$41=, $17, $pop10
-	i32.const	$193=, 880
-	i32.add 	$193=, $279, $193
-	call    	__ashlti3, $193, $9, $10, $41
-	i32.const	$194=, 1008
-	i32.add 	$194=, $279, $194
-	call    	__ashlti3, $194, $15, $16, $17
-	i64.const	$42=, 128
-	i64.sub 	$51=, $42, $17
-	i32.const	$195=, 960
-	i32.add 	$195=, $279, $195
-	call    	__lshrti3, $195, $13, $14, $51
-	i64.const	$push11=, -128
-	i64.add 	$43=, $17, $pop11
-	i32.const	$196=, 976
-	i32.add 	$196=, $279, $196
-	call    	__ashlti3, $196, $13, $14, $43
-	i64.const	$44=, 256
-	i64.sub 	$45=, $44, $17
-	i32.const	$197=, 816
-	i32.add 	$197=, $279, $197
-	call    	__lshrti3, $197, $11, $12, $45
-	i64.const	$46=, 512
-	i64.sub 	$47=, $46, $17
-	i32.const	$198=, 240
-	i32.add 	$198=, $279, $198
-	call    	__lshrti3, $198, $7, $8, $47
-	i32.const	$199=, 912
-	i32.add 	$199=, $279, $199
-	call    	__ashlti3, $199, $11, $12, $17
-	i32.const	$200=, 928
-	i32.add 	$200=, $279, $200
-	call    	__lshrti3, $200, $9, $10, $51
-	i32.const	$201=, 944
-	i32.add 	$201=, $279, $201
-	call    	__ashlti3, $201, $9, $10, $43
-	i64.sub 	$48=, $44, $47
-	i32.const	$202=, 80
-	i32.add 	$202=, $279, $202
-	call    	__ashlti3, $202, $7, $8, $48
-	i64.sub 	$push12=, $42, $48
-	i32.const	$203=, 96
-	i32.add 	$203=, $279, $203
-	call    	__lshrti3, $203, $5, $6, $pop12
-	i64.sub 	$49=, $42, $47
-	i32.const	$204=, 112
-	i32.add 	$204=, $279, $204
-	call    	__ashlti3, $204, $5, $6, $49
-	i32.const	$205=, 48
-	i32.add 	$205=, $279, $205
-	call    	__lshrti3, $205, $3, $4, $47
-	i32.const	$206=, 176
-	i32.add 	$206=, $279, $206
-	call    	__lshrti3, $206, $7, $8, $45
-	i32.const	$207=, 288
-	i32.add 	$207=, $279, $207
-	call    	__lshrti3, $207, $1, $2, $34
-	i32.const	$208=, 272
-	i32.add 	$208=, $279, $208
-	call    	__ashlti3, $208, $3, $4, $35
-	i32.const	$209=, 304
-	i32.add 	$209=, $279, $209
-	call    	__ashlti3, $209, $1, $2, $36
-	i32.const	$210=, 128
-	i32.add 	$210=, $279, $210
-	call    	__lshrti3, $210, $5, $6, $45
-	i64.sub 	$push13=, $38, $47
-	i32.const	$211=, 144
-	i32.add 	$211=, $279, $211
-	call    	__ashlti3, $211, $7, $8, $pop13
-	i32.const	$212=, 160
-	i32.add 	$212=, $279, $212
-	call    	__lshrti3, $212, $7, $8, $51
-	i32.const	$213=, 0
-	i32.add 	$213=, $279, $213
-	call    	__lshrti3, $213, $1, $2, $47
-	i32.const	$214=, 16
-	i32.add 	$214=, $279, $214
-	call    	__ashlti3, $214, $3, $4, $49
-	i32.const	$215=, 32
-	i32.add 	$215=, $279, $215
-	call    	__lshrti3, $215, $3, $4, $39
-	i32.const	$216=, 64
-	i32.add 	$216=, $279, $216
-	call    	__ashlti3, $216, $5, $6, $48
-	i32.const	$217=, 896
-	i32.add 	$217=, $279, $217
-	call    	__ashlti3, $217, $9, $10, $17
-	i32.const	$218=, 256
-	i32.add 	$218=, $279, $218
-	call    	__ashlti3, $218, $1, $2, $35
-	i32.const	$219=, 192
-	i32.add 	$219=, $279, $219
-	call    	__lshrti3, $219, $5, $6, $47
-	i32.const	$220=, 208
-	i32.add 	$220=, $279, $220
-	call    	__ashlti3, $220, $7, $8, $49
-	i32.const	$221=, 224
-	i32.add 	$221=, $279, $221
-	call    	__lshrti3, $221, $7, $8, $39
-	i32.const	$222=, 768
-	i32.add 	$222=, $279, $222
-	call    	__lshrti3, $222, $9, $10, $45
-	i64.sub 	$49=, $42, $45
-	i32.const	$223=, 784
-	i32.add 	$223=, $279, $223
-	call    	__ashlti3, $223, $11, $12, $49
-	i32.const	$224=, 800
-	i32.add 	$224=, $279, $224
-	call    	__lshrti3, $224, $11, $12, $51
-	i32.const	$225=, 992
-	i32.add 	$225=, $279, $225
-	call    	__ashlti3, $225, $13, $14, $17
-	i32.const	$226=, 832
-	i32.add 	$226=, $279, $226
-	call    	__ashlti3, $226, $9, $10, $40
-	i32.const	$227=, 384
-	i32.add 	$227=, $279, $227
-	call    	__lshrti3, $227, $1, $2, $37
-	i64.sub 	$push14=, $42, $37
-	i32.const	$228=, 400
-	i32.add 	$228=, $279, $228
-	call    	__ashlti3, $228, $3, $4, $pop14
-	i32.const	$229=, 416
-	i32.add 	$229=, $279, $229
-	call    	__lshrti3, $229, $3, $4, $34
-	i32.const	$230=, 320
-	i32.add 	$230=, $279, $230
-	call    	__ashlti3, $230, $5, $6, $35
-	i32.const	$231=, 448
-	i32.add 	$231=, $279, $231
-	call    	__ashlti3, $231, $1, $2, $33
-	i32.const	$232=, 736
-	i32.add 	$232=, $279, $232
-	call    	__lshrti3, $232, $1, $2, $39
-	i32.const	$233=, 720
-	i32.add 	$233=, $279, $233
-	call    	__ashlti3, $233, $3, $4, $40
-	i32.const	$234=, 752
-	i32.add 	$234=, $279, $234
-	call    	__ashlti3, $234, $1, $2, $41
-	i32.const	$235=, 592
-	i32.add 	$235=, $279, $235
-	call    	__ashlti3, $235, $7, $8, $17
-	i32.const	$236=, 608
-	i32.add 	$236=, $279, $236
-	call    	__lshrti3, $236, $5, $6, $51
-	i32.const	$237=, 624
-	i32.add 	$237=, $279, $237
-	call    	__ashlti3, $237, $5, $6, $43
-	i32.const	$238=, 688
-	i32.add 	$238=, $279, $238
-	call    	__lshrti3, $238, $3, $4, $45
-	i32.const	$239=, 640
-	i32.add 	$239=, $279, $239
-	call    	__lshrti3, $239, $1, $2, $45
-	i32.const	$240=, 656
-	i32.add 	$240=, $279, $240
-	call    	__ashlti3, $240, $3, $4, $49
-	i32.const	$241=, 672
-	i32.add 	$241=, $279, $241
-	call    	__lshrti3, $241, $3, $4, $51
-	i32.const	$242=, 576
-	i32.add 	$242=, $279, $242
-	call    	__ashlti3, $242, $5, $6, $17
-	i32.const	$243=, 704
-	i32.add 	$243=, $279, $243
-	call    	__ashlti3, $243, $1, $2, $40
-	i32.const	$244=, 528
-	i32.add 	$244=, $279, $244
-	call    	__ashlti3, $244, $3, $4, $17
-	i32.const	$245=, 544
-	i32.add 	$245=, $279, $245
-	call    	__lshrti3, $245, $1, $2, $51
-	i32.const	$246=, 560
-	i32.add 	$246=, $279, $246
-	call    	__ashlti3, $246, $1, $2, $43
-	i32.const	$247=, 512
-	i32.add 	$247=, $279, $247
-	call    	__ashlti3, $247, $1, $2, $17
-	i64.load	$39=, 480($279)
-	i64.load	$43=, 464($279)
-	i64.load	$34=, 496($279)
-	i64.const	$51=, 0
-	i64.load	$49=, 352($279)
-	i64.load	$36=, 336($279)
-	i64.load	$38=, 368($279)
-	i64.load	$41=, 432($279)
-	i64.load	$58=, 864($279)
-	i64.load	$59=, 848($279)
-	i64.load	$60=, 880($279)
-	i64.load	$63=, 1008($279)
-	i64.load	$64=, 960($279)
-	i64.load	$65=, 976($279)
-	i64.load	$68=, 816($279)
-	i64.load	$71=, 240($279)
-	i64.lt_u	$50=, $33, $42
-	i64.eq  	$52=, $33, $51
-	i64.lt_u	$53=, $35, $42
-	i64.eq  	$54=, $35, $51
-	i64.lt_u	$55=, $37, $42
-	i64.lt_u	$56=, $35, $44
-	i64.lt_u	$57=, $40, $42
-	i64.eq  	$61=, $40, $51
-	i64.lt_u	$62=, $17, $42
-	i64.eq  	$66=, $17, $51
-	i64.lt_u	$67=, $45, $42
-	i64.lt_u	$69=, $17, $44
-	i64.lt_u	$70=, $47, $42
-	i64.lt_u	$72=, $47, $44
-	i64.lt_u	$73=, $17, $46
-	i32.const	$74=, 8
-	i32.const	$248=, 480
-	i32.add 	$248=, $279, $248
-	i32.add 	$push40=, $248, $74
-	i64.load	$17=, 0($pop40)
-	i32.const	$249=, 464
-	i32.add 	$249=, $279, $249
-	i32.add 	$push41=, $249, $74
-	i64.load	$35=, 0($pop41)
-	i32.const	$250=, 496
-	i32.add 	$250=, $279, $250
-	i32.add 	$push43=, $250, $74
-	i64.load	$40=, 0($pop43)
-	i32.const	$251=, 352
-	i32.add 	$251=, $279, $251
-	i32.add 	$push46=, $251, $74
-	i64.load	$44=, 0($pop46)
-	i32.const	$252=, 336
-	i32.add 	$252=, $279, $252
-	i32.add 	$push47=, $252, $74
-	i64.load	$33=, 0($pop47)
-	i32.const	$253=, 368
-	i32.add 	$253=, $279, $253
-	i32.add 	$push49=, $253, $74
-	i64.load	$46=, 0($pop49)
-	i32.const	$254=, 432
-	i32.add 	$254=, $279, $254
-	i32.add 	$push52=, $254, $74
-	i64.load	$75=, 0($pop52)
-	i32.const	$255=, 864
-	i32.add 	$255=, $279, $255
-	i32.add 	$push57=, $255, $74
-	i64.load	$76=, 0($pop57)
-	i32.const	$256=, 848
-	i32.add 	$256=, $279, $256
-	i32.add 	$push58=, $256, $74
-	i64.load	$77=, 0($pop58)
-	i32.const	$257=, 880
-	i32.add 	$257=, $279, $257
-	i32.add 	$push60=, $257, $74
-	i64.load	$78=, 0($pop60)
-	i32.const	$258=, 1008
-	i32.add 	$258=, $279, $258
-	i32.add 	$push63=, $258, $74
-	i64.load	$79=, 0($pop63)
-	i32.const	$259=, 960
-	i32.add 	$259=, $279, $259
-	i32.add 	$push64=, $259, $74
-	i64.load	$80=, 0($pop64)
-	i32.const	$260=, 976
-	i32.add 	$260=, $279, $260
-	i32.add 	$push66=, $260, $74
-	i64.load	$81=, 0($pop66)
-	i32.const	$261=, 816
-	i32.add 	$261=, $279, $261
-	i32.add 	$push69=, $261, $74
-	i64.load	$82=, 0($pop69)
-	i32.const	$262=, 240
-	i32.add 	$262=, $279, $262
-	i32.add 	$push74=, $262, $74
-	i64.load	$83=, 0($pop74)
-	i64.load	$84=, 912($279)
-	i64.load	$85=, 928($279)
-	i64.load	$86=, 944($279)
-	i64.load	$88=, 80($279)
-	i64.load	$89=, 96($279)
-	i64.load	$90=, 112($279)
-	i64.load	$92=, 48($279)
-	i64.load	$93=, 176($279)
-	i64.load	$95=, 288($279)
-	i64.load	$96=, 272($279)
-	i64.lt_u	$87=, $48, $42
-	i64.eq  	$91=, $48, $51
-	i64.eq  	$94=, $47, $51
-	i64.load	$42=, 304($279)
-	i32.const	$263=, 912
-	i32.add 	$263=, $279, $263
-	i32.add 	$push99=, $263, $74
-	i64.load	$47=, 0($pop99)
-	i32.const	$264=, 928
-	i32.add 	$264=, $279, $264
-	i32.add 	$push100=, $264, $74
-	i64.load	$48=, 0($pop100)
-	i32.const	$265=, 944
-	i32.add 	$265=, $279, $265
-	i32.add 	$push102=, $265, $74
-	i64.load	$97=, 0($pop102)
-	i32.const	$266=, 80
-	i32.add 	$266=, $279, $266
-	i32.add 	$push106=, $266, $74
-	i64.load	$98=, 0($pop106)
-	i32.const	$267=, 96
-	i32.add 	$267=, $279, $267
-	i32.add 	$push107=, $267, $74
-	i64.load	$99=, 0($pop107)
-	i32.const	$268=, 112
-	i32.add 	$268=, $279, $268
-	i32.add 	$push109=, $268, $74
-	i64.load	$100=, 0($pop109)
-	i32.const	$269=, 48
-	i32.add 	$269=, $279, $269
-	i32.add 	$push112=, $269, $74
-	i64.load	$101=, 0($pop112)
-	i32.const	$270=, 176
-	i32.add 	$270=, $279, $270
-	i32.add 	$push115=, $270, $74
-	i64.load	$102=, 0($pop115)
-	i32.const	$271=, 288
-	i32.add 	$271=, $279, $271
-	i32.add 	$push120=, $271, $74
-	i64.load	$103=, 0($pop120)
-	i32.const	$272=, 272
-	i32.add 	$272=, $279, $272
-	i32.add 	$push121=, $272, $74
-	i64.load	$104=, 0($pop121)
-	i32.const	$273=, 304
-	i32.add 	$273=, $279, $273
-	i32.add 	$push123=, $273, $74
-	i64.load	$105=, 0($pop123)
-	i64.load	$106=, 128($279)
-	i64.load	$107=, 144($279)
-	i64.load	$108=, 160($279)
-	i64.load	$110=, 0($279)
-	i64.load	$111=, 16($279)
-	i64.load	$112=, 32($279)
-	i64.load	$113=, 64($279)
-	i64.load	$114=, 896($279)
-	i64.eq  	$109=, $45, $51
-	i64.load	$45=, 256($279)
-	i32.const	$274=, 128
-	i32.add 	$274=, $279, $274
-	i32.add 	$push146=, $274, $74
-	i64.load	$115=, 0($pop146)
-	i32.const	$275=, 144
-	i32.add 	$275=, $279, $275
-	i32.add 	$push147=, $275, $74
-	i64.load	$116=, 0($pop147)
-	i32.const	$276=, 160
-	i32.add 	$276=, $279, $276
-	i32.add 	$push149=, $276, $74
-	i64.load	$117=, 0($pop149)
-	i32.const	$277=, 0
-	i32.add 	$277=, $279, $277
-	i32.add 	$push152=, $277, $74
-	i64.load	$118=, 0($pop152)
-	i32.const	$278=, 16
-	i32.add 	$278=, $279, $278
-	i32.add 	$push153=, $278, $74
-	i64.load	$119=, 0($pop153)
-	i32.const	$279=, 32
-	i32.add 	$279=, $279, $279
-	i32.add 	$push155=, $279, $74
-	i64.load	$120=, 0($pop155)
-	i32.const	$280=, 64
-	i32.add 	$280=, $279, $280
-	i32.add 	$push158=, $280, $74
-	i64.load	$121=, 0($pop158)
-	i32.const	$281=, 896
-	i32.add 	$281=, $279, $281
-	i32.add 	$push163=, $281, $74
-	i64.load	$122=, 0($pop163)
-	i32.const	$282=, 256
-	i32.add 	$282=, $279, $282
-	i32.add 	$push167=, $282, $74
-	i64.load	$123=, 0($pop167)
-	i64.load	$124=, 192($279)
-	i64.load	$125=, 208($279)
-	i64.load	$126=, 224($279)
-	i64.load	$127=, 768($279)
-	i64.load	$128=, 784($279)
-	i64.load	$129=, 800($279)
-	i64.load	$130=, 992($279)
-	i64.load	$131=, 832($279)
-	i64.load	$132=, 384($279)
-	i64.load	$133=, 400($279)
-	i64.load	$134=, 416($279)
-	i64.load	$136=, 320($279)
-	i64.eq  	$135=, $37, $51
-	i64.load	$37=, 448($279)
-	i32.const	$283=, 192
-	i32.add 	$283=, $279, $283
-	i32.add 	$push195=, $283, $74
-	i64.load	$137=, 0($pop195)
-	i32.const	$284=, 208
-	i32.add 	$284=, $279, $284
-	i32.add 	$push196=, $284, $74
-	i64.load	$138=, 0($pop196)
-	i32.const	$285=, 224
-	i32.add 	$285=, $279, $285
-	i32.add 	$push198=, $285, $74
-	i64.load	$139=, 0($pop198)
-	i32.const	$286=, 768
-	i32.add 	$286=, $279, $286
-	i32.add 	$push202=, $286, $74
-	i64.load	$140=, 0($pop202)
-	i32.const	$287=, 784
-	i32.add 	$287=, $279, $287
-	i32.add 	$push203=, $287, $74
-	i64.load	$141=, 0($pop203)
-	i32.const	$288=, 800
-	i32.add 	$288=, $279, $288
-	i32.add 	$push205=, $288, $74
-	i64.load	$142=, 0($pop205)
-	i32.const	$289=, 992
-	i32.add 	$289=, $279, $289
-	i32.add 	$push208=, $289, $74
-	i64.load	$143=, 0($pop208)
-	i32.const	$290=, 832
-	i32.add 	$290=, $279, $290
-	i32.add 	$push211=, $290, $74
-	i64.load	$144=, 0($pop211)
-	i32.const	$291=, 384
-	i32.add 	$291=, $279, $291
-	i32.add 	$push216=, $291, $74
-	i64.load	$145=, 0($pop216)
-	i32.const	$292=, 400
-	i32.add 	$292=, $279, $292
-	i32.add 	$push217=, $292, $74
-	i64.load	$146=, 0($pop217)
-	i32.const	$293=, 416
-	i32.add 	$293=, $279, $293
-	i32.add 	$push219=, $293, $74
-	i64.load	$147=, 0($pop219)
-	i32.const	$294=, 320
-	i32.add 	$294=, $279, $294
-	i32.add 	$push222=, $294, $74
-	i64.load	$148=, 0($pop222)
-	i32.const	$295=, 448
-	i32.add 	$295=, $279, $295
-	i32.add 	$push225=, $295, $74
-	i64.load	$149=, 0($pop225)
-	i64.load	$150=, 736($279)
-	i64.load	$151=, 720($279)
-	i64.load	$152=, 752($279)
-	i64.load	$153=, 592($279)
-	i64.load	$154=, 608($279)
-	i64.load	$155=, 624($279)
-	i64.load	$156=, 688($279)
-	i32.const	$296=, 736
-	i32.add 	$296=, $279, $296
-	i32.add 	$push242=, $296, $74
-	i64.load	$157=, 0($pop242)
-	i32.const	$297=, 720
-	i32.add 	$297=, $279, $297
-	i32.add 	$push243=, $297, $74
-	i64.load	$158=, 0($pop243)
-	i32.const	$298=, 752
-	i32.add 	$298=, $279, $298
-	i32.add 	$push245=, $298, $74
-	i64.load	$159=, 0($pop245)
-	i32.const	$299=, 592
-	i32.add 	$299=, $279, $299
-	i32.add 	$push248=, $299, $74
-	i64.load	$160=, 0($pop248)
-	i32.const	$300=, 608
-	i32.add 	$300=, $279, $300
-	i32.add 	$push249=, $300, $74
-	i64.load	$161=, 0($pop249)
-	i32.const	$301=, 624
-	i32.add 	$301=, $279, $301
-	i32.add 	$push251=, $301, $74
-	i64.load	$162=, 0($pop251)
-	i32.const	$302=, 688
-	i32.add 	$302=, $279, $302
-	i32.add 	$push254=, $302, $74
-	i64.load	$163=, 0($pop254)
-	i64.load	$164=, 640($279)
-	i64.load	$165=, 656($279)
-	i64.load	$166=, 672($279)
-	i64.load	$167=, 576($279)
-	i64.load	$168=, 704($279)
-	i32.const	$303=, 640
-	i32.add 	$303=, $279, $303
-	i32.add 	$push269=, $303, $74
-	i64.load	$169=, 0($pop269)
-	i32.const	$304=, 656
-	i32.add 	$304=, $279, $304
-	i32.add 	$push270=, $304, $74
-	i64.load	$170=, 0($pop270)
-	i32.const	$305=, 672
-	i32.add 	$305=, $279, $305
-	i32.add 	$push272=, $305, $74
-	i64.load	$171=, 0($pop272)
-	i32.const	$306=, 576
-	i32.add 	$306=, $279, $306
-	i32.add 	$push275=, $306, $74
-	i64.load	$172=, 0($pop275)
-	i32.const	$307=, 704
-	i32.add 	$307=, $279, $307
-	i32.add 	$push278=, $307, $74
-	i64.load	$173=, 0($pop278)
-	i64.load	$174=, 528($279)
-	i64.load	$175=, 544($279)
-	i64.load	$176=, 560($279)
-	i32.const	$308=, 528
-	i32.add 	$308=, $279, $308
-	i32.add 	$push288=, $308, $74
-	i64.load	$177=, 0($pop288)
-	i32.const	$309=, 544
-	i32.add 	$309=, $279, $309
-	i32.add 	$push289=, $309, $74
-	i64.load	$178=, 0($pop289)
-	i32.const	$310=, 560
-	i32.add 	$310=, $279, $310
-	i32.add 	$push291=, $310, $74
-	i64.load	$179=, 0($pop291)
-	i64.load	$180=, 512($279)
-	i32.add 	$push304=, $0, $74
-	i32.const	$311=, 512
-	i32.add 	$311=, $279, $311
-	i32.add 	$push299=, $311, $74
-	i64.load	$push300=, 0($pop299)
-	i64.select	$push301=, $62, $pop300, $51
-	i64.select	$push302=, $69, $pop301, $51
-	i64.select	$push303=, $73, $pop302, $51
-	i64.store	$discard=, 0($pop304), $pop303
-	i64.select	$push296=, $62, $180, $51
-	i64.select	$push297=, $69, $pop296, $51
-	i64.select	$push298=, $73, $pop297, $51
-	i64.store	$discard=, 0($0), $pop298
-	i32.const	$push305=, 24
-	i32.add 	$push306=, $0, $pop305
-	i64.or  	$push290=, $177, $178
-	i64.select	$push292=, $62, $pop290, $179
-	i64.select	$push293=, $66, $4, $pop292
-	i64.select	$push294=, $69, $pop293, $51
-	i64.select	$push295=, $73, $pop294, $51
-	i64.store	$discard=, 0($pop306), $pop295
-	i32.const	$push307=, 16
-	i32.add 	$push308=, $0, $pop307
-	i64.or  	$push283=, $174, $175
-	i64.select	$push284=, $62, $pop283, $176
-	i64.select	$push285=, $66, $3, $pop284
-	i64.select	$push286=, $69, $pop285, $51
-	i64.select	$push287=, $73, $pop286, $51
-	i64.store	$discard=, 0($pop308), $pop287
-	i32.const	$push309=, 56
-	i32.add 	$push310=, $0, $pop309
-	i64.or  	$push250=, $160, $161
-	i64.select	$push252=, $62, $pop250, $162
-	i64.select	$push253=, $66, $8, $pop252
-	i64.select	$push255=, $67, $163, $51
-	i64.or  	$push256=, $pop253, $pop255
-	i64.or  	$push244=, $158, $157
-	i64.select	$push246=, $57, $pop244, $159
-	i64.select	$push247=, $61, $4, $pop246
-	i64.select	$push257=, $69, $pop256, $pop247
-	i64.select	$push258=, $66, $8, $pop257
-	i64.select	$push259=, $73, $pop258, $51
-	i64.store	$discard=, 0($pop310), $pop259
-	i32.const	$push311=, 48
-	i32.add 	$push312=, $0, $pop311
-	i64.or  	$push234=, $153, $154
-	i64.select	$push235=, $62, $pop234, $155
-	i64.select	$push236=, $66, $7, $pop235
-	i64.select	$push237=, $67, $156, $51
-	i64.or  	$push238=, $pop236, $pop237
-	i64.or  	$push231=, $151, $150
-	i64.select	$push232=, $57, $pop231, $152
-	i64.select	$push233=, $61, $3, $pop232
-	i64.select	$push239=, $69, $pop238, $pop233
-	i64.select	$push240=, $66, $7, $pop239
-	i64.select	$push241=, $73, $pop240, $51
-	i64.store	$discard=, 0($pop312), $pop241
-	i32.const	$push313=, 40
-	i32.add 	$push314=, $0, $pop313
-	i64.select	$push276=, $62, $172, $51
-	i64.or  	$push271=, $169, $170
-	i64.select	$push273=, $67, $pop271, $171
-	i64.select	$push274=, $109, $2, $pop273
-	i64.or  	$push277=, $pop276, $pop274
-	i64.select	$push279=, $57, $173, $51
-	i64.select	$push280=, $69, $pop277, $pop279
-	i64.select	$push281=, $66, $6, $pop280
-	i64.select	$push282=, $73, $pop281, $51
-	i64.store	$discard=, 0($pop314), $pop282
-	i32.const	$push315=, 32
-	i32.add 	$push316=, $0, $pop315
-	i64.select	$push263=, $62, $167, $51
-	i64.or  	$push260=, $164, $165
-	i64.select	$push261=, $67, $pop260, $166
-	i64.select	$push262=, $109, $1, $pop261
-	i64.or  	$push264=, $pop263, $pop262
-	i64.select	$push265=, $57, $168, $51
-	i64.select	$push266=, $69, $pop264, $pop265
-	i64.select	$push267=, $66, $5, $pop266
-	i64.select	$push268=, $73, $pop267, $51
-	i64.store	$discard=, 0($pop316), $pop268
-	i32.const	$push317=, 120
-	i32.add 	$push318=, $0, $pop317
-	i64.or  	$push65=, $79, $80
-	i64.select	$push67=, $62, $pop65, $81
-	i64.select	$push68=, $66, $16, $pop67
-	i64.select	$push70=, $67, $82, $51
-	i64.or  	$push71=, $pop68, $pop70
-	i64.or  	$push59=, $77, $76
-	i64.select	$push61=, $57, $pop59, $78
-	i64.select	$push62=, $61, $12, $pop61
-	i64.select	$push72=, $69, $pop71, $pop62
-	i64.select	$push73=, $66, $16, $pop72
-	i64.select	$push75=, $70, $83, $51
-	i64.select	$push76=, $72, $pop75, $51
-	i64.or  	$push77=, $pop73, $pop76
-	i64.or  	$push48=, $33, $44
-	i64.select	$push50=, $53, $pop48, $46
-	i64.select	$push51=, $54, $8, $pop50
-	i64.select	$push53=, $55, $75, $51
-	i64.or  	$push54=, $pop51, $pop53
-	i64.or  	$push42=, $35, $17
-	i64.select	$push44=, $50, $pop42, $40
-	i64.select	$push45=, $52, $4, $pop44
-	i64.select	$push55=, $56, $pop54, $pop45
-	i64.select	$push56=, $54, $8, $pop55
-	i64.select	$push78=, $73, $pop77, $pop56
-	i64.select	$push79=, $66, $16, $pop78
-	i64.store	$discard=, 0($pop318), $pop79
-	i32.const	$push319=, 112
-	i32.add 	$push320=, $0, $pop319
-	i64.or  	$push28=, $63, $64
-	i64.select	$push29=, $62, $pop28, $65
-	i64.select	$push30=, $66, $15, $pop29
-	i64.select	$push31=, $67, $68, $51
-	i64.or  	$push32=, $pop30, $pop31
-	i64.or  	$push25=, $59, $58
-	i64.select	$push26=, $57, $pop25, $60
-	i64.select	$push27=, $61, $11, $pop26
-	i64.select	$push33=, $69, $pop32, $pop27
-	i64.select	$push34=, $66, $15, $pop33
-	i64.select	$push35=, $70, $71, $51
-	i64.select	$push36=, $72, $pop35, $51
-	i64.or  	$push37=, $pop34, $pop36
-	i64.or  	$push18=, $36, $49
-	i64.select	$push19=, $53, $pop18, $38
-	i64.select	$push20=, $54, $7, $pop19
-	i64.select	$push21=, $55, $41, $51
-	i64.or  	$push22=, $pop20, $pop21
-	i64.or  	$push15=, $43, $39
-	i64.select	$push16=, $50, $pop15, $34
-	i64.select	$push17=, $52, $3, $pop16
-	i64.select	$push23=, $56, $pop22, $pop17
-	i64.select	$push24=, $54, $7, $pop23
-	i64.select	$push38=, $73, $pop37, $pop24
-	i64.select	$push39=, $66, $15, $pop38
-	i64.store	$discard=, 0($pop320), $pop39
-	i32.const	$push321=, 104
-	i32.add 	$push322=, $0, $pop321
-	i64.select	$push209=, $62, $143, $51
-	i64.or  	$push204=, $140, $141
-	i64.select	$push206=, $67, $pop204, $142
-	i64.select	$push207=, $109, $10, $pop206
-	i64.or  	$push210=, $pop209, $pop207
-	i64.select	$push212=, $57, $144, $51
-	i64.select	$push213=, $69, $pop210, $pop212
-	i64.select	$push214=, $66, $14, $pop213
-	i64.or  	$push197=, $137, $138
-	i64.select	$push199=, $70, $pop197, $139
-	i64.select	$push200=, $94, $6, $pop199
-	i64.select	$push201=, $72, $pop200, $51
-	i64.or  	$push215=, $pop214, $pop201
-	i64.select	$push223=, $53, $148, $51
-	i64.or  	$push218=, $145, $146
-	i64.select	$push220=, $55, $pop218, $147
-	i64.select	$push221=, $135, $2, $pop220
-	i64.or  	$push224=, $pop223, $pop221
-	i64.select	$push226=, $50, $149, $51
-	i64.select	$push227=, $56, $pop224, $pop226
-	i64.select	$push228=, $54, $6, $pop227
-	i64.select	$push229=, $73, $pop215, $pop228
-	i64.select	$push230=, $66, $14, $pop229
-	i64.store	$discard=, 0($pop322), $pop230
-	i32.const	$push323=, 96
-	i32.add 	$push324=, $0, $pop323
-	i64.select	$push179=, $62, $130, $51
-	i64.or  	$push176=, $127, $128
-	i64.select	$push177=, $67, $pop176, $129
-	i64.select	$push178=, $109, $9, $pop177
-	i64.or  	$push180=, $pop179, $pop178
-	i64.select	$push181=, $57, $131, $51
-	i64.select	$push182=, $69, $pop180, $pop181
-	i64.select	$push183=, $66, $13, $pop182
-	i64.or  	$push172=, $124, $125
-	i64.select	$push173=, $70, $pop172, $126
-	i64.select	$push174=, $94, $5, $pop173
-	i64.select	$push175=, $72, $pop174, $51
-	i64.or  	$push184=, $pop183, $pop175
-	i64.select	$push188=, $53, $136, $51
-	i64.or  	$push185=, $132, $133
-	i64.select	$push186=, $55, $pop185, $134
-	i64.select	$push187=, $135, $1, $pop186
-	i64.or  	$push189=, $pop188, $pop187
-	i64.select	$push190=, $50, $37, $51
-	i64.select	$push191=, $56, $pop189, $pop190
-	i64.select	$push192=, $54, $5, $pop191
-	i64.select	$push193=, $73, $pop184, $pop192
-	i64.select	$push194=, $66, $13, $pop193
-	i64.store	$discard=, 0($pop324), $pop194
-	i32.const	$push325=, 72
-	i32.add 	$push326=, $0, $pop325
-	i64.select	$push164=, $62, $122, $51
-	i64.select	$push165=, $69, $pop164, $51
-	i64.or  	$push154=, $118, $119
-	i64.select	$push156=, $70, $pop154, $120
-	i64.select	$push157=, $94, $2, $pop156
-	i64.select	$push159=, $87, $121, $51
-	i64.or  	$push160=, $pop157, $pop159
-	i64.or  	$push148=, $115, $116
-	i64.select	$push150=, $67, $pop148, $117
-	i64.select	$push151=, $109, $6, $pop150
-	i64.select	$push161=, $72, $pop160, $pop151
-	i64.select	$push162=, $94, $2, $pop161
-	i64.or  	$push166=, $pop165, $pop162
-	i64.select	$push168=, $53, $123, $51
-	i64.select	$push169=, $56, $pop168, $51
-	i64.select	$push170=, $73, $pop166, $pop169
-	i64.select	$push171=, $66, $10, $pop170
-	i64.store	$discard=, 0($pop326), $pop171
-	i32.const	$push327=, 64
-	i32.add 	$push328=, $0, $pop327
-	i64.select	$push139=, $62, $114, $51
-	i64.select	$push140=, $69, $pop139, $51
-	i64.or  	$push132=, $110, $111
-	i64.select	$push133=, $70, $pop132, $112
-	i64.select	$push134=, $94, $1, $pop133
-	i64.select	$push135=, $87, $113, $51
-	i64.or  	$push136=, $pop134, $pop135
-	i64.or  	$push129=, $106, $107
-	i64.select	$push130=, $67, $pop129, $108
-	i64.select	$push131=, $109, $5, $pop130
-	i64.select	$push137=, $72, $pop136, $pop131
-	i64.select	$push138=, $94, $1, $pop137
-	i64.or  	$push141=, $pop140, $pop138
-	i64.select	$push142=, $53, $45, $51
-	i64.select	$push143=, $56, $pop142, $51
-	i64.select	$push144=, $73, $pop141, $pop143
-	i64.select	$push145=, $66, $9, $pop144
-	i64.store	$discard=, 0($pop328), $pop145
-	i32.const	$push329=, 88
-	i32.add 	$push330=, $0, $pop329
-	i64.or  	$push101=, $47, $48
-	i64.select	$push103=, $62, $pop101, $97
-	i64.select	$push104=, $66, $12, $pop103
-	i64.select	$push105=, $69, $pop104, $51
-	i64.select	$push113=, $70, $101, $51
-	i64.or  	$push108=, $98, $99
-	i64.select	$push110=, $87, $pop108, $100
-	i64.select	$push111=, $91, $8, $pop110
-	i64.or  	$push114=, $pop113, $pop111
-	i64.select	$push116=, $67, $102, $51
-	i64.select	$push117=, $72, $pop114, $pop116
-	i64.select	$push118=, $94, $4, $pop117
-	i64.or  	$push119=, $pop105, $pop118
-	i64.or  	$push122=, $104, $103
-	i64.select	$push124=, $53, $pop122, $105
-	i64.select	$push125=, $54, $4, $pop124
-	i64.select	$push126=, $56, $pop125, $51
-	i64.select	$push127=, $73, $pop119, $pop126
-	i64.select	$push128=, $66, $12, $pop127
-	i64.store	$discard=, 0($pop330), $pop128
-	i32.const	$push331=, 80
-	i32.add 	$push332=, $0, $pop331
-	i64.or  	$push80=, $84, $85
-	i64.select	$push81=, $62, $pop80, $86
-	i64.select	$push82=, $66, $11, $pop81
-	i64.select	$push83=, $69, $pop82, $51
-	i64.select	$push87=, $70, $92, $51
-	i64.or  	$push84=, $88, $89
-	i64.select	$push85=, $87, $pop84, $90
-	i64.select	$push86=, $91, $7, $pop85
-	i64.or  	$push88=, $pop87, $pop86
-	i64.select	$push89=, $67, $93, $51
-	i64.select	$push90=, $72, $pop88, $pop89
-	i64.select	$push91=, $94, $3, $pop90
-	i64.or  	$push92=, $pop83, $pop91
-	i64.or  	$push93=, $96, $95
-	i64.select	$push94=, $53, $pop93, $42
-	i64.select	$push95=, $54, $3, $pop94
-	i64.select	$push96=, $56, $pop95, $51
-	i64.select	$push97=, $73, $pop92, $pop96
-	i64.select	$push98=, $66, $11, $pop97
-	i64.store	$discard=, 0($pop332), $pop98
-	i32.const	$183=, 1024
-	i32.add 	$279=, $279, $183
-	i32.const	$183=, __stack_pointer
-	i32.store	$279=, 0($183), $279
-	return
-func_end5:
-	.size	bigshift, func_end5-bigshift
-
-
-	.section	".note.GNU-stack","",@progbits
diff --git a/prototype-wasmate/test/load-ext.s b/prototype-wasmate/test/load-ext.s
deleted file mode 100644
index 276db21..0000000
--- a/prototype-wasmate/test/load-ext.s
+++ /dev/null
@@ -1,114 +0,0 @@
-	.text
-	.file	"/s/llvm/llvm/test/CodeGen/WebAssembly/load-ext.ll"
-	.globl	sext_i8_i32
-	.type	sext_i8_i32,@function
-sext_i8_i32:                            # @sext_i8_i32
-	.param  	i32
-	.result 	i32
-# BB#0:
-	i32.load8_s	$push0=, 0($0)
-	return  	$pop0
-func_end0:
-	.size	sext_i8_i32, func_end0-sext_i8_i32
-
-	.globl	zext_i8_i32
-	.type	zext_i8_i32,@function
-zext_i8_i32:                            # @zext_i8_i32
-	.param  	i32
-	.result 	i32
-# BB#0:
-	i32.load8_u	$push0=, 0($0)
-	return  	$pop0
-func_end1:
-	.size	zext_i8_i32, func_end1-zext_i8_i32
-
-	.globl	sext_i16_i32
-	.type	sext_i16_i32,@function
-sext_i16_i32:                           # @sext_i16_i32
-	.param  	i32
-	.result 	i32
-# BB#0:
-	i32.load16_s	$push0=, 0($0)
-	return  	$pop0
-func_end2:
-	.size	sext_i16_i32, func_end2-sext_i16_i32
-
-	.globl	zext_i16_i32
-	.type	zext_i16_i32,@function
-zext_i16_i32:                           # @zext_i16_i32
-	.param  	i32
-	.result 	i32
-# BB#0:
-	i32.load16_u	$push0=, 0($0)
-	return  	$pop0
-func_end3:
-	.size	zext_i16_i32, func_end3-zext_i16_i32
-
-	.globl	sext_i8_i64
-	.type	sext_i8_i64,@function
-sext_i8_i64:                            # @sext_i8_i64
-	.param  	i32
-	.result 	i64
-# BB#0:
-	i64.load8_s	$push0=, 0($0)
-	return  	$pop0
-func_end4:
-	.size	sext_i8_i64, func_end4-sext_i8_i64
-
-	.globl	zext_i8_i64
-	.type	zext_i8_i64,@function
-zext_i8_i64:                            # @zext_i8_i64
-	.param  	i32
-	.result 	i64
-# BB#0:
-	i64.load8_u	$push0=, 0($0)
-	return  	$pop0
-func_end5:
-	.size	zext_i8_i64, func_end5-zext_i8_i64
-
-	.globl	sext_i16_i64
-	.type	sext_i16_i64,@function
-sext_i16_i64:                           # @sext_i16_i64
-	.param  	i32
-	.result 	i64
-# BB#0:
-	i64.load16_s	$push0=, 0($0)
-	return  	$pop0
-func_end6:
-	.size	sext_i16_i64, func_end6-sext_i16_i64
-
-	.globl	zext_i16_i64
-	.type	zext_i16_i64,@function
-zext_i16_i64:                           # @zext_i16_i64
-	.param  	i32
-	.result 	i64
-# BB#0:
-	i64.load16_u	$push0=, 0($0)
-	return  	$pop0
-func_end7:
-	.size	zext_i16_i64, func_end7-zext_i16_i64
-
-	.globl	sext_i32_i64
-	.type	sext_i32_i64,@function
-sext_i32_i64:                           # @sext_i32_i64
-	.param  	i32
-	.result 	i64
-# BB#0:
-	i64.load32_s	$push0=, 0($0)
-	return  	$pop0
-func_end8:
-	.size	sext_i32_i64, func_end8-sext_i32_i64
-
-	.globl	zext_i32_i64
-	.type	zext_i32_i64,@function
-zext_i32_i64:                           # @zext_i32_i64
-	.param  	i32
-	.result 	i64
-# BB#0:
-	i64.load32_u	$push0=, 0($0)
-	return  	$pop0
-func_end9:
-	.size	zext_i32_i64, func_end9-zext_i32_i64
-
-
-	.section	".note.GNU-stack","",@progbits
diff --git a/prototype-wasmate/test/load-store-i1.s b/prototype-wasmate/test/load-store-i1.s
deleted file mode 100644
index fa3f430..0000000
--- a/prototype-wasmate/test/load-store-i1.s
+++ /dev/null
@@ -1,80 +0,0 @@
-	.text
-	.file	"/s/llvm/llvm/test/CodeGen/WebAssembly/load-store-i1.ll"
-	.globl	load_u_i1_i32
-	.type	load_u_i1_i32,@function
-load_u_i1_i32:                          # @load_u_i1_i32
-	.param  	i32
-	.result 	i32
-# BB#0:
-	i32.load8_u	$push0=, 0($0)
-	return  	$pop0
-func_end0:
-	.size	load_u_i1_i32, func_end0-load_u_i1_i32
-
-	.globl	load_s_i1_i32
-	.type	load_s_i1_i32,@function
-load_s_i1_i32:                          # @load_s_i1_i32
-	.param  	i32
-	.result 	i32
-	.local  	i32
-# BB#0:
-	i32.const	$1=, 31
-	i32.load8_u	$push0=, 0($0)
-	i32.shl 	$push1=, $pop0, $1
-	i32.shr_s	$push2=, $pop1, $1
-	return  	$pop2
-func_end1:
-	.size	load_s_i1_i32, func_end1-load_s_i1_i32
-
-	.globl	load_u_i1_i64
-	.type	load_u_i1_i64,@function
-load_u_i1_i64:                          # @load_u_i1_i64
-	.param  	i32
-	.result 	i64
-# BB#0:
-	i64.load8_u	$push0=, 0($0)
-	return  	$pop0
-func_end2:
-	.size	load_u_i1_i64, func_end2-load_u_i1_i64
-
-	.globl	load_s_i1_i64
-	.type	load_s_i1_i64,@function
-load_s_i1_i64:                          # @load_s_i1_i64
-	.param  	i32
-	.result 	i64
-	.local  	i64
-# BB#0:
-	i64.const	$1=, 63
-	i64.load8_u	$push0=, 0($0)
-	i64.shl 	$push1=, $pop0, $1
-	i64.shr_s	$push2=, $pop1, $1
-	return  	$pop2
-func_end3:
-	.size	load_s_i1_i64, func_end3-load_s_i1_i64
-
-	.globl	store_i32_i1
-	.type	store_i32_i1,@function
-store_i32_i1:                           # @store_i32_i1
-	.param  	i32, i32
-# BB#0:
-	i32.const	$push0=, 1
-	i32.and 	$push1=, $1, $pop0
-	i32.store8	$discard=, 0($0), $pop1
-	return
-func_end4:
-	.size	store_i32_i1, func_end4-store_i32_i1
-
-	.globl	store_i64_i1
-	.type	store_i64_i1,@function
-store_i64_i1:                           # @store_i64_i1
-	.param  	i32, i64
-# BB#0:
-	i64.const	$push0=, 1
-	i64.and 	$push1=, $1, $pop0
-	i64.store8	$discard=, 0($0), $pop1
-	return
-func_end5:
-	.size	store_i64_i1, func_end5-store_i64_i1
-
-
-	.section	".note.GNU-stack","",@progbits
diff --git a/prototype-wasmate/test/load.s b/prototype-wasmate/test/load.s
deleted file mode 100644
index 7df553b..0000000
--- a/prototype-wasmate/test/load.s
+++ /dev/null
@@ -1,48 +0,0 @@
-	.text
-	.file	"/s/llvm/llvm/test/CodeGen/WebAssembly/load.ll"
-	.globl	ldi32
-	.type	ldi32,@function
-ldi32:                                  # @ldi32
-	.param  	i32
-	.result 	i32
-# BB#0:
-	i32.load	$push0=, 0($0)
-	return  	$pop0
-func_end0:
-	.size	ldi32, func_end0-ldi32
-
-	.globl	ldi64
-	.type	ldi64,@function
-ldi64:                                  # @ldi64
-	.param  	i32
-	.result 	i64
-# BB#0:
-	i64.load	$push0=, 0($0)
-	return  	$pop0
-func_end1:
-	.size	ldi64, func_end1-ldi64
-
-	.globl	ldf32
-	.type	ldf32,@function
-ldf32:                                  # @ldf32
-	.param  	i32
-	.result 	f32
-# BB#0:
-	f32.load	$push0=, 0($0)
-	return  	$pop0
-func_end2:
-	.size	ldf32, func_end2-ldf32
-
-	.globl	ldf64
-	.type	ldf64,@function
-ldf64:                                  # @ldf64
-	.param  	i32
-	.result 	f64
-# BB#0:
-	f64.load	$push0=, 0($0)
-	return  	$pop0
-func_end3:
-	.size	ldf64, func_end3-ldf64
-
-
-	.section	".note.GNU-stack","",@progbits
diff --git a/prototype-wasmate/test/memory-addr32.s b/prototype-wasmate/test/memory-addr32.s
deleted file mode 100644
index d3d4c15..0000000
--- a/prototype-wasmate/test/memory-addr32.s
+++ /dev/null
@@ -1,24 +0,0 @@
-	.text
-	.file	"/s/llvm/llvm/test/CodeGen/WebAssembly/memory-addr32.ll"
-	.globl	memory_size
-	.type	memory_size,@function
-memory_size:                            # @memory_size
-	.result 	i32
-# BB#0:
-	memory_size	$push0=
-	return  	$pop0
-func_end0:
-	.size	memory_size, func_end0-memory_size
-
-	.globl	grow_memory
-	.type	grow_memory,@function
-grow_memory:                            # @grow_memory
-	.param  	i32
-# BB#0:
-	grow_memory	$0
-	return
-func_end1:
-	.size	grow_memory, func_end1-grow_memory
-
-
-	.section	".note.GNU-stack","",@progbits
diff --git a/prototype-wasmate/test/memory-addr64.s b/prototype-wasmate/test/memory-addr64.s
deleted file mode 100644
index a0e4121..0000000
--- a/prototype-wasmate/test/memory-addr64.s
+++ /dev/null
@@ -1,24 +0,0 @@
-	.text
-	.file	"/s/llvm/llvm/test/CodeGen/WebAssembly/memory-addr64.ll"
-	.globl	memory_size
-	.type	memory_size,@function
-memory_size:                            # @memory_size
-	.result 	i64
-# BB#0:
-	memory_size	$push0=
-	return  	$pop0
-func_end0:
-	.size	memory_size, func_end0-memory_size
-
-	.globl	grow_memory
-	.type	grow_memory,@function
-grow_memory:                            # @grow_memory
-	.param  	i64
-# BB#0:
-	grow_memory	$0
-	return
-func_end1:
-	.size	grow_memory, func_end1-grow_memory
-
-
-	.section	".note.GNU-stack","",@progbits
diff --git a/prototype-wasmate/test/offset-folding.s b/prototype-wasmate/test/offset-folding.s
deleted file mode 100644
index 4b70234..0000000
--- a/prototype-wasmate/test/offset-folding.s
+++ /dev/null
@@ -1,52 +0,0 @@
-	.text
-	.file	"/s/llvm/llvm/test/CodeGen/WebAssembly/offset-folding.ll"
-	.globl	test0
-	.type	test0,@function
-test0:                                  # @test0
-	.result 	i32
-# BB#0:
-	i32.const	$push0=, x+188
-	return  	$pop0
-func_end0:
-	.size	test0, func_end0-test0
-
-	.globl	test1
-	.type	test1,@function
-test1:                                  # @test1
-	.result 	i32
-# BB#0:
-	i32.const	$push0=, y+188
-	return  	$pop0
-func_end1:
-	.size	test1, func_end1-test1
-
-	.globl	test2
-	.type	test2,@function
-test2:                                  # @test2
-	.result 	i32
-# BB#0:
-	i32.const	$push0=, x
-	return  	$pop0
-func_end2:
-	.size	test2, func_end2-test2
-
-	.globl	test3
-	.type	test3,@function
-test3:                                  # @test3
-	.result 	i32
-# BB#0:
-	i32.const	$push0=, y
-	return  	$pop0
-func_end3:
-	.size	test3, func_end3-test3
-
-	.type	y,@object               # @y
-	.bss
-	.globl	y
-	.align	4
-y:
-	.zero	200
-	.size	y, 200
-
-
-	.section	".note.GNU-stack","",@progbits
diff --git a/prototype-wasmate/test/offset.s b/prototype-wasmate/test/offset.s
deleted file mode 100644
index fbfda4a..0000000
--- a/prototype-wasmate/test/offset.s
+++ /dev/null
@@ -1,185 +0,0 @@
-	.text
-	.file	"/s/llvm/llvm/test/CodeGen/WebAssembly/offset.ll"
-	.globl	load_i32_with_folded_offset
-	.type	load_i32_with_folded_offset,@function
-load_i32_with_folded_offset:            # @load_i32_with_folded_offset
-	.param  	i32
-	.result 	i32
-# BB#0:
-	i32.load	$push0=, 24($0)
-	return  	$pop0
-func_end0:
-	.size	load_i32_with_folded_offset, func_end0-load_i32_with_folded_offset
-
-	.globl	load_i32_with_unfolded_offset
-	.type	load_i32_with_unfolded_offset,@function
-load_i32_with_unfolded_offset:          # @load_i32_with_unfolded_offset
-	.param  	i32
-	.result 	i32
-# BB#0:
-	i32.const	$push0=, 24
-	i32.add 	$push1=, $0, $pop0
-	i32.load	$push2=, 0($pop1)
-	return  	$pop2
-func_end1:
-	.size	load_i32_with_unfolded_offset, func_end1-load_i32_with_unfolded_offset
-
-	.globl	load_i64_with_folded_offset
-	.type	load_i64_with_folded_offset,@function
-load_i64_with_folded_offset:            # @load_i64_with_folded_offset
-	.param  	i32
-	.result 	i64
-# BB#0:
-	i64.load	$push0=, 24($0)
-	return  	$pop0
-func_end2:
-	.size	load_i64_with_folded_offset, func_end2-load_i64_with_folded_offset
-
-	.globl	load_i64_with_unfolded_offset
-	.type	load_i64_with_unfolded_offset,@function
-load_i64_with_unfolded_offset:          # @load_i64_with_unfolded_offset
-	.param  	i32
-	.result 	i64
-# BB#0:
-	i32.const	$push0=, 24
-	i32.add 	$push1=, $0, $pop0
-	i64.load	$push2=, 0($pop1)
-	return  	$pop2
-func_end3:
-	.size	load_i64_with_unfolded_offset, func_end3-load_i64_with_unfolded_offset
-
-	.globl	store_i32_with_folded_offset
-	.type	store_i32_with_folded_offset,@function
-store_i32_with_folded_offset:           # @store_i32_with_folded_offset
-	.param  	i32
-# BB#0:
-	i32.const	$push0=, 0
-	i32.store	$discard=, 24($0), $pop0
-	return
-func_end4:
-	.size	store_i32_with_folded_offset, func_end4-store_i32_with_folded_offset
-
-	.globl	store_i32_with_unfolded_offset
-	.type	store_i32_with_unfolded_offset,@function
-store_i32_with_unfolded_offset:         # @store_i32_with_unfolded_offset
-	.param  	i32
-# BB#0:
-	i32.const	$push0=, 24
-	i32.add 	$push1=, $0, $pop0
-	i32.const	$push2=, 0
-	i32.store	$discard=, 0($pop1), $pop2
-	return
-func_end5:
-	.size	store_i32_with_unfolded_offset, func_end5-store_i32_with_unfolded_offset
-
-	.globl	store_i64_with_folded_offset
-	.type	store_i64_with_folded_offset,@function
-store_i64_with_folded_offset:           # @store_i64_with_folded_offset
-	.param  	i32
-# BB#0:
-	i64.const	$push0=, 0
-	i64.store	$discard=, 24($0), $pop0
-	return
-func_end6:
-	.size	store_i64_with_folded_offset, func_end6-store_i64_with_folded_offset
-
-	.globl	store_i64_with_unfolded_offset
-	.type	store_i64_with_unfolded_offset,@function
-store_i64_with_unfolded_offset:         # @store_i64_with_unfolded_offset
-	.param  	i32
-# BB#0:
-	i32.const	$push0=, 24
-	i32.add 	$push1=, $0, $pop0
-	i64.const	$push2=, 0
-	i64.store	$discard=, 0($pop1), $pop2
-	return
-func_end7:
-	.size	store_i64_with_unfolded_offset, func_end7-store_i64_with_unfolded_offset
-
-	.globl	load_i32_from_numeric_address
-	.type	load_i32_from_numeric_address,@function
-load_i32_from_numeric_address:          # @load_i32_from_numeric_address
-	.result 	i32
-# BB#0:
-	i32.const	$push0=, 0
-	i32.load	$push1=, 42($pop0)
-	return  	$pop1
-func_end8:
-	.size	load_i32_from_numeric_address, func_end8-load_i32_from_numeric_address
-
-	.globl	load_i32_from_global_address
-	.type	load_i32_from_global_address,@function
-load_i32_from_global_address:           # @load_i32_from_global_address
-	.result 	i32
-# BB#0:
-	i32.const	$push0=, 0
-	i32.load	$push1=, gv($pop0)
-	return  	$pop1
-func_end9:
-	.size	load_i32_from_global_address, func_end9-load_i32_from_global_address
-
-	.globl	store_i32_to_numeric_address
-	.type	store_i32_to_numeric_address,@function
-store_i32_to_numeric_address:           # @store_i32_to_numeric_address
-	.local  	i32
-# BB#0:
-	i32.const	$0=, 0
-	i32.store	$discard=, 42($0), $0
-	return
-func_end10:
-	.size	store_i32_to_numeric_address, func_end10-store_i32_to_numeric_address
-
-	.globl	store_i32_to_global_address
-	.type	store_i32_to_global_address,@function
-store_i32_to_global_address:            # @store_i32_to_global_address
-	.local  	i32
-# BB#0:
-	i32.const	$0=, 0
-	i32.store	$discard=, gv($0), $0
-	return
-func_end11:
-	.size	store_i32_to_global_address, func_end11-store_i32_to_global_address
-
-	.globl	load_i8_s_with_folded_offset
-	.type	load_i8_s_with_folded_offset,@function
-load_i8_s_with_folded_offset:           # @load_i8_s_with_folded_offset
-	.param  	i32
-	.result 	i32
-# BB#0:
-	i32.load8_s	$push0=, 24($0)
-	return  	$pop0
-func_end12:
-	.size	load_i8_s_with_folded_offset, func_end12-load_i8_s_with_folded_offset
-
-	.globl	load_i8_u_with_folded_offset
-	.type	load_i8_u_with_folded_offset,@function
-load_i8_u_with_folded_offset:           # @load_i8_u_with_folded_offset
-	.param  	i32
-	.result 	i32
-# BB#0:
-	i32.load8_u	$push0=, 24($0)
-	return  	$pop0
-func_end13:
-	.size	load_i8_u_with_folded_offset, func_end13-load_i8_u_with_folded_offset
-
-	.globl	store_i8_with_folded_offset
-	.type	store_i8_with_folded_offset,@function
-store_i8_with_folded_offset:            # @store_i8_with_folded_offset
-	.param  	i32
-# BB#0:
-	i32.const	$push0=, 0
-	i32.store8	$discard=, 24($0), $pop0
-	return
-func_end14:
-	.size	store_i8_with_folded_offset, func_end14-store_i8_with_folded_offset
-
-	.type	gv,@object              # @gv
-	.bss
-	.globl	gv
-	.align	2
-gv:
-	.int32	0                       # 0x0
-	.size	gv, 4
-
-
-	.section	".note.GNU-stack","",@progbits
diff --git a/prototype-wasmate/test/permute.s b/prototype-wasmate/test/permute.s
deleted file mode 100644
index 2ea7470..0000000
--- a/prototype-wasmate/test/permute.s
+++ /dev/null
@@ -1,6 +0,0 @@
-	.data
-        .type	_ZL7permute,@object     # @_ZL7permute
-	.align	4
-_ZL7permute:
-	.ascii	"hE?\215s\0167\333[g\217\2255it\304k\013\342\357\274ld\340\375\214\236\206&~\330\224\211+\310\244\302\362\373\022\034ej\3319\267\263W\306w\257\256\312M>\222ub\226\204\266\260N\354;q\021\367\277\3431\346\247\220\374\003\344\252\327\314- \025\203DH\200r\372\001X\353:_\000A\315\351o`n\254(\255\2720\334yS#\364$\"\202\177}\216\366\223L'\273\275Z\3554\030\363\300\317\377\243\370\007\005\234\323\017\240\006m%\\\371^B<\347\261\027\230]\f\335\305\365p\345\376zJ\253,F\245@\bR\205!\270\032\316\325\004\nI\246\321\237\212\311\251|\227\232G\2768Y\213\301\033\324\352\271\031\024\233\22163\320\035\322\337=C\037\rc\341\307QUv\002\265aK\264\tV\303x\350\241\036\201\336/{\332\326Pf\020T\360)\210\026\356\250\235\361\313O*\262\231\0232\207.\242"
-	.size	_ZL7permute, 256
diff --git a/prototype-wasmate/test/phi.s b/prototype-wasmate/test/phi.s
deleted file mode 100644
index 12677d4..0000000
--- a/prototype-wasmate/test/phi.s
+++ /dev/null
@@ -1,47 +0,0 @@
-	.text
-	.file	"/s/llvm/llvm/test/CodeGen/WebAssembly/phi.ll"
-	.globl	test0
-	.type	test0,@function
-test0:                                  # @test0
-	.param  	i32
-	.result 	i32
-# BB#0:                                 # %entry
-	i32.const	$push0=, -1
-	i32.gt_s	$push1=, $0, $pop0
-	block   	BB0_2
-	br_if   	$pop1, BB0_2
-# BB#1:                                 # %true
-	i32.const	$push2=, 3
-	i32.div_s	$0=, $0, $pop2
-BB0_2:                                  # %done
-	return  	$0
-func_end0:
-	.size	test0, func_end0-test0
-
-	.globl	test1
-	.type	test1,@function
-test1:                                  # @test1
-	.param  	i32
-	.result 	i32
-	.local  	i32, i32, i32, i32, i32
-# BB#0:                                 # %entry
-	i32.const	$2=, 1
-	i32.const	$3=, 0
-	copy_local	$4=, $2
-	copy_local	$5=, $3
-BB1_1:                                  # %loop
-                                        # =>This Inner Loop Header: Depth=1
-	loop    	BB1_2
-	i32.add 	$5=, $5, $2
-	i32.lt_s	$push0=, $5, $0
-	copy_local	$1=, $4
-	copy_local	$4=, $3
-	copy_local	$3=, $1
-	br_if   	$pop0, BB1_1
-BB1_2:                                  # %exit
-	return  	$4
-func_end1:
-	.size	test1, func_end1-test1
-
-
-	.section	".note.GNU-stack","",@progbits
diff --git a/prototype-wasmate/test/reg-stackify.s b/prototype-wasmate/test/reg-stackify.s
deleted file mode 100644
index f1c7ec9..0000000
--- a/prototype-wasmate/test/reg-stackify.s
+++ /dev/null
@@ -1,81 +0,0 @@
-	.text
-	.file	"/s/llvm/llvm/test/CodeGen/WebAssembly/reg-stackify.ll"
-	.globl	no0
-	.type	no0,@function
-no0:                                    # @no0
-	.param  	i32, i32
-	.result 	i32
-# BB#0:
-	i32.load	$1=, 0($1)
-	i32.const	$push0=, 0
-	i32.store	$discard=, 0($0), $pop0
-	return  	$1
-func_end0:
-	.size	no0, func_end0-no0
-
-	.globl	no1
-	.type	no1,@function
-no1:                                    # @no1
-	.param  	i32, i32
-	.result 	i32
-# BB#0:
-	i32.load	$1=, 0($1)
-	i32.const	$push0=, 0
-	i32.store	$discard=, 0($0), $pop0
-	return  	$1
-func_end1:
-	.size	no1, func_end1-no1
-
-	.globl	yes0
-	.type	yes0,@function
-yes0:                                   # @yes0
-	.param  	i32, i32
-	.result 	i32
-# BB#0:
-	i32.const	$push1=, 0
-	i32.store	$discard=, 0($0), $pop1
-	i32.load	$push0=, 0($1)
-	return  	$pop0
-func_end2:
-	.size	yes0, func_end2-yes0
-
-	.globl	yes1
-	.type	yes1,@function
-yes1:                                   # @yes1
-	.param  	i32
-	.result 	i32
-# BB#0:
-	i32.load	$push0=, 0($0)
-	return  	$pop0
-func_end3:
-	.size	yes1, func_end3-yes1
-
-	.globl	stack_uses
-	.type	stack_uses,@function
-stack_uses:                             # @stack_uses
-	.param  	i32, i32, i32, i32
-	.result 	i32
-	.local  	i32, i32
-# BB#0:                                 # %entry
-	i32.const	$4=, 1
-	i32.const	$5=, 2
-	i32.lt_s	$push0=, $0, $4
-	i32.lt_s	$push1=, $1, $5
-	i32.xor 	$push4=, $pop0, $pop1
-	i32.lt_s	$push2=, $2, $4
-	i32.lt_s	$push3=, $3, $5
-	i32.xor 	$push5=, $pop2, $pop3
-	i32.xor 	$push6=, $pop4, $pop5
-	i32.ne  	$push7=, $pop6, $4
-	block   	BB4_2
-	br_if   	$pop7, BB4_2
-# BB#1:                                 # %true
-	i32.const	$push8=, 0
-	return  	$pop8
-BB4_2:                                  # %false
-	return  	$4
-func_end4:
-	.size	stack_uses, func_end4-stack_uses
-
-
-	.section	".note.GNU-stack","",@progbits
diff --git a/prototype-wasmate/test/relocation.s b/prototype-wasmate/test/relocation.s
deleted file mode 100644
index b26994a..0000000
--- a/prototype-wasmate/test/relocation.s
+++ /dev/null
@@ -1,31 +0,0 @@
-	.text
-	.file	"relocation.c"
-	.globl	main
-	.type	main,@function
-main:                                   # @main
-	.result i32
-	.local i32
-# BB#0:                                 # %entry
-	i32.const $push0=, a
-	i32.load $push1=, 0($pop0)
-	return $pop1
-func_end0:
-	.size	main, func_end0-main
-
-	.type	b,@object               # @b
-	.data
-	.globl	b
-	.align	2
-b:
-	.int32	a
-	.size	b, 4
-
-	.type	a,@object               # @a
-	.globl	a
-	.align	2
-a:
-	.int32	b
-	.size	a, 4
-
-
-
diff --git a/prototype-wasmate/test/return-int32.s b/prototype-wasmate/test/return-int32.s
deleted file mode 100644
index 5c0414f..0000000
--- a/prototype-wasmate/test/return-int32.s
+++ /dev/null
@@ -1,14 +0,0 @@
-	.text
-	.file	"/s/llvm/llvm/test/CodeGen/WebAssembly/return-int32.ll"
-	.globl	return_i32
-	.type	return_i32,@function
-return_i32:                             # @return_i32
-	.param  	i32
-	.result 	i32
-# BB#0:
-	return  	$0
-func_end0:
-	.size	return_i32, func_end0-return_i32
-
-
-	.section	".note.GNU-stack","",@progbits
diff --git a/prototype-wasmate/test/return-void.s b/prototype-wasmate/test/return-void.s
deleted file mode 100644
index 16821ee..0000000
--- a/prototype-wasmate/test/return-void.s
+++ /dev/null
@@ -1,12 +0,0 @@
-	.text
-	.file	"/s/llvm/llvm/test/CodeGen/WebAssembly/return-void.ll"
-	.globl	return_void
-	.type	return_void,@function
-return_void:                            # @return_void
-# BB#0:
-	return
-func_end0:
-	.size	return_void, func_end0-return_void
-
-
-	.section	".note.GNU-stack","",@progbits
diff --git a/prototype-wasmate/test/returned.s b/prototype-wasmate/test/returned.s
deleted file mode 100644
index 06bb81b..0000000
--- a/prototype-wasmate/test/returned.s
+++ /dev/null
@@ -1,25 +0,0 @@
-	.text
-	.file	"/usr/local/google/home/binji/dev/github/wasm-experimental/prototype-wasmate/third_party/llvm/test/CodeGen/WebAssembly/returned.ll"
-	.globl	_Z3foov
-	.type	_Z3foov,@function
-_Z3foov:
-	.result 	i32
-	i32.const	$push0=, 1
-	i32.call	$push1=, _Znwm, $pop0
-	i32.call	$push2=, _ZN5AppleC1Ev, $pop1
-	return  	$pop2
-func_end0:
-	.size	_Z3foov, func_end0-_Z3foov
-
-	.globl	_Z3barPvS_l
-	.type	_Z3barPvS_l,@function
-_Z3barPvS_l:
-	.param  	i32, i32, i32
-	.result 	i32
-	i32.call	$push0=, memcpy, $0, $1, $2
-	return  	$pop0
-func_end1:
-	.size	_Z3barPvS_l, func_end1-_Z3barPvS_l
-
-
-	.section	".note.GNU-stack","",@progbits
diff --git a/prototype-wasmate/test/select.s b/prototype-wasmate/test/select.s
deleted file mode 100644
index 3cc4b56..0000000
--- a/prototype-wasmate/test/select.s
+++ /dev/null
@@ -1,136 +0,0 @@
-	.text
-	.file	"/s/llvm/llvm/test/CodeGen/WebAssembly/select.ll"
-	.globl	select_i32_bool
-	.type	select_i32_bool,@function
-select_i32_bool:                        # @select_i32_bool
-	.param  	i32, i32, i32
-	.result 	i32
-# BB#0:
-	i32.select	$push0=, $0, $1, $2
-	return  	$pop0
-func_end0:
-	.size	select_i32_bool, func_end0-select_i32_bool
-
-	.globl	select_i32_eq
-	.type	select_i32_eq,@function
-select_i32_eq:                          # @select_i32_eq
-	.param  	i32, i32, i32
-	.result 	i32
-# BB#0:
-	i32.select	$push0=, $0, $2, $1
-	return  	$pop0
-func_end1:
-	.size	select_i32_eq, func_end1-select_i32_eq
-
-	.globl	select_i32_ne
-	.type	select_i32_ne,@function
-select_i32_ne:                          # @select_i32_ne
-	.param  	i32, i32, i32
-	.result 	i32
-# BB#0:
-	i32.select	$push0=, $0, $1, $2
-	return  	$pop0
-func_end2:
-	.size	select_i32_ne, func_end2-select_i32_ne
-
-	.globl	select_i64_bool
-	.type	select_i64_bool,@function
-select_i64_bool:                        # @select_i64_bool
-	.param  	i32, i64, i64
-	.result 	i64
-# BB#0:
-	i64.select	$push0=, $0, $1, $2
-	return  	$pop0
-func_end3:
-	.size	select_i64_bool, func_end3-select_i64_bool
-
-	.globl	select_i64_eq
-	.type	select_i64_eq,@function
-select_i64_eq:                          # @select_i64_eq
-	.param  	i32, i64, i64
-	.result 	i64
-# BB#0:
-	i64.select	$push0=, $0, $2, $1
-	return  	$pop0
-func_end4:
-	.size	select_i64_eq, func_end4-select_i64_eq
-
-	.globl	select_i64_ne
-	.type	select_i64_ne,@function
-select_i64_ne:                          # @select_i64_ne
-	.param  	i32, i64, i64
-	.result 	i64
-# BB#0:
-	i64.select	$push0=, $0, $1, $2
-	return  	$pop0
-func_end5:
-	.size	select_i64_ne, func_end5-select_i64_ne
-
-	.globl	select_f32_bool
-	.type	select_f32_bool,@function
-select_f32_bool:                        # @select_f32_bool
-	.param  	i32, f32, f32
-	.result 	f32
-# BB#0:
-	f32.select	$push0=, $0, $1, $2
-	return  	$pop0
-func_end6:
-	.size	select_f32_bool, func_end6-select_f32_bool
-
-	.globl	select_f32_eq
-	.type	select_f32_eq,@function
-select_f32_eq:                          # @select_f32_eq
-	.param  	i32, f32, f32
-	.result 	f32
-# BB#0:
-	f32.select	$push0=, $0, $2, $1
-	return  	$pop0
-func_end7:
-	.size	select_f32_eq, func_end7-select_f32_eq
-
-	.globl	select_f32_ne
-	.type	select_f32_ne,@function
-select_f32_ne:                          # @select_f32_ne
-	.param  	i32, f32, f32
-	.result 	f32
-# BB#0:
-	f32.select	$push0=, $0, $1, $2
-	return  	$pop0
-func_end8:
-	.size	select_f32_ne, func_end8-select_f32_ne
-
-	.globl	select_f64_bool
-	.type	select_f64_bool,@function
-select_f64_bool:                        # @select_f64_bool
-	.param  	i32, f64, f64
-	.result 	f64
-# BB#0:
-	f64.select	$push0=, $0, $1, $2
-	return  	$pop0
-func_end9:
-	.size	select_f64_bool, func_end9-select_f64_bool
-
-	.globl	select_f64_eq
-	.type	select_f64_eq,@function
-select_f64_eq:                          # @select_f64_eq
-	.param  	i32, f64, f64
-	.result 	f64
-# BB#0:
-	f64.select	$push0=, $0, $2, $1
-	return  	$pop0
-func_end10:
-	.size	select_f64_eq, func_end10-select_f64_eq
-
-	.globl	select_f64_ne
-	.type	select_f64_ne,@function
-select_f64_ne:                          # @select_f64_ne
-	.param  	i32, f64, f64
-	.result 	f64
-# BB#0:
-	f64.select	$push0=, $0, $1, $2
-	return  	$pop0
-func_end11:
-	.size	select_f64_ne, func_end11-select_f64_ne
-
-
-	.section	".note.GNU-stack","",@progbits
diff --git a/prototype-wasmate/test/signext-zeroext.s b/prototype-wasmate/test/signext-zeroext.s
deleted file mode 100644
index f86c16f..0000000
--- a/prototype-wasmate/test/signext-zeroext.s
+++ /dev/null
@@ -1,60 +0,0 @@
-	.text
-	.file	"/s/llvm/llvm/test/CodeGen/WebAssembly/signext-zeroext.ll"
-	.globl	z2s_func
-	.type	z2s_func,@function
-z2s_func:                               # @z2s_func
-	.param  	i32
-	.result 	i32
-	.local  	i32
-# BB#0:
-	i32.const	$1=, 24
-	i32.shl 	$push0=, $0, $1
-	i32.shr_s	$push1=, $pop0, $1
-	return  	$pop1
-func_end0:
-	.size	z2s_func, func_end0-z2s_func
-
-	.globl	s2z_func
-	.type	s2z_func,@function
-s2z_func:                               # @s2z_func
-	.param  	i32
-	.result 	i32
-# BB#0:
-	i32.const	$push0=, 255
-	i32.and 	$push1=, $0, $pop0
-	return  	$pop1
-func_end1:
-	.size	s2z_func, func_end1-s2z_func
-
-	.globl	z2s_call
-	.type	z2s_call,@function
-z2s_call:                               # @z2s_call
-	.param  	i32
-	.result 	i32
-# BB#0:
-	i32.const	$push0=, 255
-	i32.and 	$push1=, $0, $pop0
-	i32.call	$push2=, z2s_func, $pop1
-	return  	$pop2
-func_end2:
-	.size	z2s_call, func_end2-z2s_call
-
-	.globl	s2z_call
-	.type	s2z_call,@function
-s2z_call:                               # @s2z_call
-	.param  	i32
-	.result 	i32
-	.local  	i32
-# BB#0:
-	i32.const	$1=, 24
-	i32.shl 	$push0=, $0, $1
-	i32.shr_s	$push1=, $pop0, $1
-	i32.call	$push2=, s2z_func, $pop1
-	i32.shl 	$push3=, $pop2, $1
-	i32.shr_s	$push4=, $pop3, $1
-	return  	$pop4
-func_end3:
-	.size	s2z_call, func_end3-s2z_call
-
-
-	.section	".note.GNU-stack","",@progbits
diff --git a/prototype-wasmate/test/store-results.s b/prototype-wasmate/test/store-results.s
deleted file mode 100644
index d7d5eb2..0000000
--- a/prototype-wasmate/test/store-results.s
+++ /dev/null
@@ -1,66 +0,0 @@
-	.text
-	.file	"/s/llvm/llvm/test/CodeGen/WebAssembly/store-results.ll"
-	.globl	single_block
-	.type	single_block,@function
-single_block:                           # @single_block
-	.param  	i32
-	.result 	i32
-# BB#0:                                 # %entry
-	i32.const	$push0=, 0
-	i32.store	$push1=, 0($0), $pop0
-	return  	$pop1
-func_end0:
-	.size	single_block, func_end0-single_block
-
-	.globl	foo
-	.type	foo,@function
-foo:                                    # @foo
-	.local  	i32, i32
-# BB#0:                                 # %for.body.i
-	i32.const	$0=, 0
-	copy_local	$1=, $0
-BB1_1:                                  # %for.body5.i
-                                        # =>This Inner Loop Header: Depth=1
-	loop    	BB1_2
-	i32.const	$push0=, 1
-	i32.add 	$1=, $1, $pop0
-	i32.const	$push1=, 256
-	i32.ne  	$push2=, $1, $pop1
-	i32.store	$discard=, pos($0), $0
-	br_if   	$pop2, BB1_1
-BB1_2:                                  # %for.cond.cleanup4.i
-	return
-func_end1:
-	.size	foo, func_end1-foo
-
-	.globl	bar
-	.type	bar,@function
-bar:                                    # @bar
-	.local  	i32, f32
-# BB#0:                                 # %for.body.i
-	f32.const	$1=, 0x0p0
-	i32.const	$0=, 0
-BB2_1:                                  # %for.body5.i
-                                        # =>This Inner Loop Header: Depth=1
-	loop    	BB2_2
-	f32.const	$push0=, 0x1p0
-	f32.add 	$1=, $1, $pop0
-	f32.const	$push1=, 0x1p8
-	f32.ne  	$push2=, $1, $pop1
-	i32.store	$discard=, pos($0), $0
-	br_if   	$pop2, BB2_1
-BB2_2:                                  # %for.cond.cleanup4.i
-	return
-func_end2:
-	.size	bar, func_end2-bar
-
-	.type	pos,@object             # @pos
-	.bss
-	.globl	pos
-	.align	2
-pos:
-	.zero	12
-	.size	pos, 12
-
-
-	.section	".note.GNU-stack","",@progbits
diff --git a/prototype-wasmate/test/store-trunc.s b/prototype-wasmate/test/store-trunc.s
deleted file mode 100644
index 1b836eb..0000000
--- a/prototype-wasmate/test/store-trunc.s
+++ /dev/null
@@ -1,54 +0,0 @@
-	.text
-	.file	"/s/llvm/llvm/test/CodeGen/WebAssembly/store-trunc.ll"
-	.globl	trunc_i8_i32
-	.type	trunc_i8_i32,@function
-trunc_i8_i32:                           # @trunc_i8_i32
-	.param  	i32, i32
-# BB#0:
-	i32.store8	$discard=, 0($0), $1
-	return
-func_end0:
-	.size	trunc_i8_i32, func_end0-trunc_i8_i32
-
-	.globl	trunc_i16_i32
-	.type	trunc_i16_i32,@function
-trunc_i16_i32:                          # @trunc_i16_i32
-	.param  	i32, i32
-# BB#0:
-	i32.store16	$discard=, 0($0), $1
-	return
-func_end1:
-	.size	trunc_i16_i32, func_end1-trunc_i16_i32
-
-	.globl	trunc_i8_i64
-	.type	trunc_i8_i64,@function
-trunc_i8_i64:                           # @trunc_i8_i64
-	.param  	i32, i64
-# BB#0:
-	i64.store8	$discard=, 0($0), $1
-	return
-func_end2:
-	.size	trunc_i8_i64, func_end2-trunc_i8_i64
-
-	.globl	trunc_i16_i64
-	.type	trunc_i16_i64,@function
-trunc_i16_i64:                          # @trunc_i16_i64
-	.param  	i32, i64
-# BB#0:
-	i64.store16	$discard=, 0($0), $1
-	return
-func_end3:
-	.size	trunc_i16_i64, func_end3-trunc_i16_i64
-
-	.globl	trunc_i32_i64
-	.type	trunc_i32_i64,@function
-trunc_i32_i64:                          # @trunc_i32_i64
-	.param  	i32, i64
-# BB#0:
-	i64.store32	$discard=, 0($0), $1
-	return
-func_end4:
-	.size	trunc_i32_i64, func_end4-trunc_i32_i64
-
-
-	.section	".note.GNU-stack","",@progbits
diff --git a/prototype-wasmate/test/store.s b/prototype-wasmate/test/store.s
deleted file mode 100644
index f4d0279..0000000
--- a/prototype-wasmate/test/store.s
+++ /dev/null
@@ -1,44 +0,0 @@
-	.text
-	.file	"/s/llvm/llvm/test/CodeGen/WebAssembly/store.ll"
-	.globl	sti32
-	.type	sti32,@function
-sti32:                                  # @sti32
-	.param  	i32, i32
-# BB#0:
-	i32.store	$discard=, 0($0), $1
-	return
-func_end0:
-	.size	sti32, func_end0-sti32
-
-	.globl	sti64
-	.type	sti64,@function
-sti64:                                  # @sti64
-	.param  	i32, i64
-# BB#0:
-	i64.store	$discard=, 0($0), $1
-	return
-func_end1:
-	.size	sti64, func_end1-sti64
-
-	.globl	stf32
-	.type	stf32,@function
-stf32:                                  # @stf32
-	.param  	i32, f32
-# BB#0:
-	f32.store	$discard=, 0($0), $1
-	return
-func_end2:
-	.size	stf32, func_end2-stf32
-
-	.globl	stf64
-	.type	stf64,@function
-stf64:                                  # @stf64
-	.param  	i32, f64
-# BB#0:
-	f64.store	$discard=, 0($0), $1
-	return
-func_end3:
-	.size	stf64, func_end3-stf64
-
-
-	.section	".note.GNU-stack","",@progbits
diff --git a/prototype-wasmate/test/switch.s b/prototype-wasmate/test/switch.s
deleted file mode 100644
index 7a81aad..0000000
--- a/prototype-wasmate/test/switch.s
+++ /dev/null
@@ -1,83 +0,0 @@
-	.text
-	.file	"/s/llvm/llvm/test/CodeGen/WebAssembly/switch.ll"
-	.globl	bar32
-	.type	bar32,@function
-bar32:                                  # @bar32
-	.param  	i32
-# BB#0:                                 # %entry
-	i32.const	$push0=, 23
-	i32.gt_u	$push1=, $0, $pop0
-	block   	BB0_8
-	br_if   	$pop1, BB0_8
-# BB#1:                                 # %entry
-	block   	BB0_7
-	block   	BB0_6
-	block   	BB0_5
-	block   	BB0_4
-	block   	BB0_3
-	block   	BB0_2
-	tableswitch	$0, BB0_3, BB0_3, BB0_3, BB0_3, BB0_3, BB0_3, BB0_3, BB0_3, BB0_2, BB0_2, BB0_2, BB0_2, BB0_2, BB0_2, BB0_2, BB0_2, BB0_4, BB0_4, BB0_4, BB0_4, BB0_4, BB0_4, BB0_5, BB0_6, BB0_7
-BB0_2:                                  # %sw.bb.1
-	call    	foo1
-	br      	BB0_8
-BB0_3:                                  # %sw.bb
-	call    	foo0
-	br      	BB0_8
-BB0_4:                                  # %sw.bb.2
-	call    	foo2
-	br      	BB0_8
-BB0_5:                                  # %sw.bb.3
-	call    	foo3
-	br      	BB0_8
-BB0_6:                                  # %sw.bb.4
-	call    	foo4
-	br      	BB0_8
-BB0_7:                                  # %sw.bb.5
-	call    	foo5
-BB0_8:                                  # %sw.epilog
-	return
-func_end0:
-	.size	bar32, func_end0-bar32
-
-	.globl	bar64
-	.type	bar64,@function
-bar64:                                  # @bar64
-	.param  	i64
-# BB#0:                                 # %entry
-	i64.const	$push1=, 23
-	i64.gt_u	$push2=, $0, $pop1
-	block   	BB1_8
-	br_if   	$pop2, BB1_8
-# BB#1:                                 # %entry
-	i32.wrap/i64	$push0=, $0
-	block   	BB1_7
-	block   	BB1_6
-	block   	BB1_5
-	block   	BB1_4
-	block   	BB1_3
-	block   	BB1_2
-	tableswitch	$pop0, BB1_3, BB1_3, BB1_3, BB1_3, BB1_3, BB1_3, BB1_3, BB1_3, BB1_2, BB1_2, BB1_2, BB1_2, BB1_2, BB1_2, BB1_2, BB1_2, BB1_4, BB1_4, BB1_4, BB1_4, BB1_4, BB1_4, BB1_5, BB1_6, BB1_7
-BB1_2:                                  # %sw.bb.1
-	call    	foo1
-	br      	BB1_8
-BB1_3:                                  # %sw.bb
-	call    	foo0
-	br      	BB1_8
-BB1_4:                                  # %sw.bb.2
-	call    	foo2
-	br      	BB1_8
-BB1_5:                                  # %sw.bb.3
-	call    	foo3
-	br      	BB1_8
-BB1_6:                                  # %sw.bb.4
-	call    	foo4
-	br      	BB1_8
-BB1_7:                                  # %sw.bb.5
-	call    	foo5
-BB1_8:                                  # %sw.epilog
-	return
-func_end1:
-	.size	bar64, func_end1-bar64
-
-
-	.section	".note.GNU-stack","",@progbits
diff --git a/prototype-wasmate/test/symbolic-offset.s b/prototype-wasmate/test/symbolic-offset.s
deleted file mode 100644
index 1d8678d..0000000
--- a/prototype-wasmate/test/symbolic-offset.s
+++ /dev/null
@@ -1,20 +0,0 @@
-        .text
-        .globl  f
-        .type   f,@function
-f:                     # @f
-        .param          i32
-        .param          i32
-# BB#0:                                 # %entry
-        i32.store       $discard=, m+4($0), $1
-        return
-func_end0:
-        .size   f, func_end0-f
-
-        .type   m,@object  # @m
-        .data
-        .align  2
-m:
-        .int32  1
-        .int32  0
-        .int32  0
-        .size   m, 12
diff --git a/prototype-wasmate/test/unreachable.s b/prototype-wasmate/test/unreachable.s
deleted file mode 100644
index 693b6e2..0000000
--- a/prototype-wasmate/test/unreachable.s
+++ /dev/null
@@ -1,32 +0,0 @@
-	.text
-	.file	"/s/llvm/llvm/test/CodeGen/WebAssembly/unreachable.ll"
-	.globl	f1
-	.type	f1,@function
-f1:                                     # @f1
-	.result 	i32
-# BB#0:
-	call    	abort
-	unreachable
-func_end0:
-	.size	f1, func_end0-f1
-
-	.globl	f2
-	.type	f2,@function
-f2:                                     # @f2
-# BB#0:
-	unreachable
-	return
-func_end1:
-	.size	f2, func_end1-f2
-
-	.globl	f3
-	.type	f3,@function
-f3:                                     # @f3
-# BB#0:
-	unreachable
-	return
-func_end2:
-	.size	f3, func_end2-f3
-
-
-	.section	".note.GNU-stack","",@progbits
diff --git a/prototype-wasmate/test/unused-argument.s b/prototype-wasmate/test/unused-argument.s
deleted file mode 100644
index 82eaaf6..0000000
--- a/prototype-wasmate/test/unused-argument.s
+++ /dev/null
@@ -1,33 +0,0 @@
-	.text
-	.file	"/s/llvm/llvm/test/CodeGen/WebAssembly/unused-argument.ll"
-	.globl	unused_first
-	.type	unused_first,@function
-unused_first:                           # @unused_first
-	.param  	i32, i32
-	.result 	i32
-# BB#0:
-	return  	$1
-func_end0:
-	.size	unused_first, func_end0-unused_first
-
-	.globl	unused_second
-	.type	unused_second,@function
-unused_second:                          # @unused_second
-	.param  	i32, i32
-	.result 	i32
-# BB#0:
-	return  	$0
-func_end1:
-	.size	unused_second, func_end1-unused_second
-
-	.globl	call_something
-	.type	call_something,@function
-call_something:                         # @call_something
-# BB#0:
-	i32.call	$discard=, return_something
-	return
-func_end2:
-	.size	call_something, func_end2-call_something
-
-
-	.section	".note.GNU-stack","",@progbits
diff --git a/prototype-wasmate/test/userstack.s b/prototype-wasmate/test/userstack.s
deleted file mode 100644
index a75519d..0000000
--- a/prototype-wasmate/test/userstack.s
+++ /dev/null
@@ -1,83 +0,0 @@
-	.text
-	.file	"/s/llvm/llvm/test/CodeGen/WebAssembly/userstack.ll"
-	.globl	alloca32
-	.type	alloca32,@function
-alloca32:                               # @alloca32
-	.local  	i32, i32, i32, i32
-# BB#0:
-	i32.const	$0=, __stack_pointer
-	i32.load	$0=, 0($0)
-	i32.const	$1=, 16
-	i32.sub 	$3=, $0, $1
-	i32.const	$1=, __stack_pointer
-	i32.store	$3=, 0($1), $3
-	i32.const	$push0=, 0
-	i32.store	$discard=, 12($3), $pop0
-	i32.const	$2=, 16
-	i32.add 	$3=, $3, $2
-	i32.const	$2=, __stack_pointer
-	i32.store	$3=, 0($2), $3
-	return
-func_end0:
-	.size	alloca32, func_end0-alloca32
-
-	.globl	alloca3264
-	.type	alloca3264,@function
-alloca3264:                             # @alloca3264
-	.local  	i32, i32, i32, i32
-# BB#0:
-	i32.const	$0=, __stack_pointer
-	i32.load	$0=, 0($0)
-	i32.const	$1=, 16
-	i32.sub 	$3=, $0, $1
-	i32.const	$1=, __stack_pointer
-	i32.store	$3=, 0($1), $3
-	i32.const	$push0=, 0
-	i32.store	$discard=, 12($3), $pop0
-	i64.const	$push1=, 0
-	i64.store	$discard=, 0($3), $pop1
-	i32.const	$2=, 16
-	i32.add 	$3=, $3, $2
-	i32.const	$2=, __stack_pointer
-	i32.store	$3=, 0($2), $3
-	return
-func_end1:
-	.size	alloca3264, func_end1-alloca3264
-
-	.globl	allocarray
-	.type	allocarray,@function
-allocarray:                             # @allocarray
-	.local  	i32, i32, i32, i32, i32, i32
-# BB#0:
-	i32.const	$1=, __stack_pointer
-	i32.load	$1=, 0($1)
-	i32.const	$2=, 32
-	i32.sub 	$5=, $1, $2
-	i32.const	$2=, __stack_pointer
-	i32.store	$5=, 0($2), $5
-	i32.const	$push0=, 1
-	i32.store	$0=, 12($5), $pop0
-	i32.const	$push1=, 4
-	i32.const	$4=, 12
-	i32.add 	$4=, $5, $4
-	i32.add 	$push2=, $4, $pop1
-	i32.store	$discard=, 0($pop2), $0
-	i32.const	$3=, 32
-	i32.add 	$5=, $5, $3
-	i32.const	$3=, __stack_pointer
-	i32.store	$5=, 0($3), $5
-	return
-func_end2:
-	.size	allocarray, func_end2-allocarray
-
-	.globl	dynamic_alloca
-	.type	dynamic_alloca,@function
-dynamic_alloca:                         # @dynamic_alloca
-	.param  	i32
-# BB#0:
-	return
-func_end3:
-	.size	dynamic_alloca, func_end3-dynamic_alloca
-
-
-	.section	".note.GNU-stack","",@progbits
diff --git a/prototype-wasmate/test/varargs.s b/prototype-wasmate/test/varargs.s
deleted file mode 100644
index 5e11e97..0000000
--- a/prototype-wasmate/test/varargs.s
+++ /dev/null
@@ -1,103 +0,0 @@
-	.text
-	.file	"/s/llvm/llvm/test/CodeGen/WebAssembly/varargs.ll"
-	.globl	end
-	.type	end,@function
-end:                                    # @end
-	.param  	i32
-# BB#0:                                 # %entry
-	return
-func_end0:
-	.size	end, func_end0-end
-
-	.globl	copy
-	.type	copy,@function
-copy:                                   # @copy
-	.param  	i32, i32
-# BB#0:                                 # %entry
-	i32.load	$push0=, 0($1)
-	i32.store	$discard=, 0($0), $pop0
-	return
-func_end1:
-	.size	copy, func_end1-copy
-
-	.globl	arg_i8
-	.type	arg_i8,@function
-arg_i8:                                 # @arg_i8
-	.param  	i32
-	.result 	i32
-	.local  	i32
-# BB#0:                                 # %entry
-	i32.load	$1=, 0($0)
-	i32.const	$push0=, 4
-	i32.add 	$push1=, $1, $pop0
-	i32.store	$discard=, 0($0), $pop1
-	i32.load	$push2=, 0($1)
-	return  	$pop2
-func_end2:
-	.size	arg_i8, func_end2-arg_i8
-
-	.globl	arg_i32
-	.type	arg_i32,@function
-arg_i32:                                # @arg_i32
-	.param  	i32
-	.result 	i32
-	.local  	i32
-# BB#0:                                 # %entry
-	i32.load	$push0=, 0($0)
-	i32.const	$push1=, 3
-	i32.add 	$push2=, $pop0, $pop1
-	i32.const	$push3=, -4
-	i32.and 	$1=, $pop2, $pop3
-	i32.const	$push4=, 4
-	i32.add 	$push5=, $1, $pop4
-	i32.store	$discard=, 0($0), $pop5
-	i32.load	$push6=, 0($1)
-	return  	$pop6
-func_end3:
-	.size	arg_i32, func_end3-arg_i32
-
-	.globl	arg_i128
-	.type	arg_i128,@function
-arg_i128:                               # @arg_i128
-	.param  	i32, i32
-	.local  	i32, i32, i32, i64
-# BB#0:                                 # %entry
-	i32.load	$push0=, 0($1)
-	i32.const	$push1=, 7
-	i32.add 	$push2=, $pop0, $pop1
-	i32.const	$push3=, -8
-	i32.and 	$2=, $pop2, $pop3
-	i32.const	$3=, 8
-	i32.add 	$push4=, $2, $3
-	i32.store	$4=, 0($1), $pop4
-	i64.load	$5=, 0($2)
-	i32.const	$push5=, 16
-	i32.add 	$push6=, $2, $pop5
-	i32.store	$discard=, 0($1), $pop6
-	i32.add 	$push8=, $0, $3
-	i64.load	$push7=, 0($4)
-	i64.store	$discard=, 0($pop8), $pop7
-	i64.store	$discard=, 0($0), $5
-	return
-func_end4:
-	.size	arg_i128, func_end4-arg_i128
-
-	.globl	caller_none
-	.type	caller_none,@function
-caller_none:                            # @caller_none
-# BB#0:
-	call    	callee
-	return
-func_end5:
-	.size	caller_none, func_end5-caller_none
-
-	.globl	caller_some
-	.type	caller_some,@function
-caller_some:                            # @caller_some
-# BB#0:
-	return
-func_end6:
-	.size	caller_some, func_end6-caller_some
-
-
-	.section	".note.GNU-stack","",@progbits
diff --git a/prototype-wasmate/test/vtable.s b/prototype-wasmate/test/vtable.s
deleted file mode 100644
index e4b130b..0000000
--- a/prototype-wasmate/test/vtable.s
+++ /dev/null
@@ -1,215 +0,0 @@
-	.text
-	.file	"/s/llvm/llvm/test/CodeGen/WebAssembly/vtable.ll"
-	.globl	_ZN1A3fooEv
-	.type	_ZN1A3fooEv,@function
-_ZN1A3fooEv:                            # @_ZN1A3fooEv
-	.param  	i32
-# BB#0:                                 # %entry
-	i32.const	$push0=, 0
-	i32.const	$push1=, 2
-	i32.store	$discard=, g($pop0), $pop1
-	return
-func_end0:
-	.size	_ZN1A3fooEv, func_end0-_ZN1A3fooEv
-
-	.globl	_ZN1B3fooEv
-	.type	_ZN1B3fooEv,@function
-_ZN1B3fooEv:                            # @_ZN1B3fooEv
-	.param  	i32
-# BB#0:                                 # %entry
-	i32.const	$push0=, 0
-	i32.const	$push1=, 4
-	i32.store	$discard=, g($pop0), $pop1
-	return
-func_end1:
-	.size	_ZN1B3fooEv, func_end1-_ZN1B3fooEv
-
-	.globl	_ZN1C3fooEv
-	.type	_ZN1C3fooEv,@function
-_ZN1C3fooEv:                            # @_ZN1C3fooEv
-	.param  	i32
-# BB#0:                                 # %entry
-	i32.const	$push0=, 0
-	i32.const	$push1=, 6
-	i32.store	$discard=, g($pop0), $pop1
-	return
-func_end2:
-	.size	_ZN1C3fooEv, func_end2-_ZN1C3fooEv
-
-	.globl	_ZN1D3fooEv
-	.type	_ZN1D3fooEv,@function
-_ZN1D3fooEv:                            # @_ZN1D3fooEv
-	.param  	i32
-# BB#0:                                 # %entry
-	i32.const	$push0=, 0
-	i32.const	$push1=, 8
-	i32.store	$discard=, g($pop0), $pop1
-	return
-func_end3:
-	.size	_ZN1D3fooEv, func_end3-_ZN1D3fooEv
-
-	.weak	_ZN1AD0Ev
-	.type	_ZN1AD0Ev,@function
-_ZN1AD0Ev:                              # @_ZN1AD0Ev
-	.param  	i32
-# BB#0:                                 # %entry
-	call    	_ZdlPv, $0
-	return
-func_end4:
-	.size	_ZN1AD0Ev, func_end4-_ZN1AD0Ev
-
-	.weak	_ZN1BD0Ev
-	.type	_ZN1BD0Ev,@function
-_ZN1BD0Ev:                              # @_ZN1BD0Ev
-	.param  	i32
-# BB#0:                                 # %entry
-	call    	_ZdlPv, $0
-	return
-func_end5:
-	.size	_ZN1BD0Ev, func_end5-_ZN1BD0Ev
-
-	.weak	_ZN1CD0Ev
-	.type	_ZN1CD0Ev,@function
-_ZN1CD0Ev:                              # @_ZN1CD0Ev
-	.param  	i32
-# BB#0:                                 # %entry
-	call    	_ZdlPv, $0
-	return
-func_end6:
-	.size	_ZN1CD0Ev, func_end6-_ZN1CD0Ev
-
-	.weak	_ZN1AD2Ev
-	.type	_ZN1AD2Ev,@function
-_ZN1AD2Ev:                              # @_ZN1AD2Ev
-	.param  	i32
-	.result 	i32
-# BB#0:                                 # %entry
-	return  	$0
-func_end7:
-	.size	_ZN1AD2Ev, func_end7-_ZN1AD2Ev
-
-	.weak	_ZN1DD0Ev
-	.type	_ZN1DD0Ev,@function
-_ZN1DD0Ev:                              # @_ZN1DD0Ev
-	.param  	i32
-# BB#0:                                 # %entry
-	call    	_ZdlPv, $0
-	return
-func_end8:
-	.size	_ZN1DD0Ev, func_end8-_ZN1DD0Ev
-
-	.type	_ZTS1A,@object          # @_ZTS1A
-	.section	.rodata,"a",@progbits
-	.globl	_ZTS1A
-_ZTS1A:
-	.asciz	"1A"
-	.size	_ZTS1A, 3
-
-	.type	_ZTS1B,@object          # @_ZTS1B
-	.globl	_ZTS1B
-_ZTS1B:
-	.asciz	"1B"
-	.size	_ZTS1B, 3
-
-	.type	_ZTS1C,@object          # @_ZTS1C
-	.globl	_ZTS1C
-_ZTS1C:
-	.asciz	"1C"
-	.size	_ZTS1C, 3
-
-	.type	_ZTS1D,@object          # @_ZTS1D
-	.globl	_ZTS1D
-_ZTS1D:
-	.asciz	"1D"
-	.size	_ZTS1D, 3
-
-	.type	_ZTV1A,@object          # @_ZTV1A
-	.section	.data.rel.ro,"aw",@progbits
-	.globl	_ZTV1A
-	.align	2
-_ZTV1A:
-	.int32	0
-	.int32	_ZTI1A
-	.int32	_ZN1AD2Ev
-	.int32	_ZN1AD0Ev
-	.int32	_ZN1A3fooEv
-	.size	_ZTV1A, 20
-
-	.type	_ZTV1B,@object          # @_ZTV1B
-	.globl	_ZTV1B
-	.align	2
-_ZTV1B:
-	.int32	0
-	.int32	_ZTI1B
-	.int32	_ZN1AD2Ev
-	.int32	_ZN1BD0Ev
-	.int32	_ZN1B3fooEv
-	.size	_ZTV1B, 20
-
-	.type	_ZTV1C,@object          # @_ZTV1C
-	.globl	_ZTV1C
-	.align	2
-_ZTV1C:
-	.int32	0
-	.int32	_ZTI1C
-	.int32	_ZN1AD2Ev
-	.int32	_ZN1CD0Ev
-	.int32	_ZN1C3fooEv
-	.size	_ZTV1C, 20
-
-	.type	_ZTV1D,@object          # @_ZTV1D
-	.globl	_ZTV1D
-	.align	2
-_ZTV1D:
-	.int32	0
-	.int32	_ZTI1D
-	.int32	_ZN1AD2Ev
-	.int32	_ZN1DD0Ev
-	.int32	_ZN1D3fooEv
-	.size	_ZTV1D, 20
-
-	.type	_ZTI1A,@object          # @_ZTI1A
-	.globl	_ZTI1A
-	.align	3
-_ZTI1A:
-	.int32	0 # FIXME: _ZTVN10__cxxabiv117__class_type_infoE+8
-	.int32	_ZTS1A
-	.size	_ZTI1A, 8
-
-	.type	_ZTI1B,@object          # @_ZTI1B
-	.globl	_ZTI1B
-	.align	3
-_ZTI1B:
-	.int32	0 # FIXME: _ZTVN10__cxxabiv120__si_class_type_infoE+8
-	.int32	_ZTS1B
-	.int32	_ZTI1A
-	.size	_ZTI1B, 12
-
-	.type	_ZTI1C,@object          # @_ZTI1C
-	.globl	_ZTI1C
-	.align	3
-_ZTI1C:
-	.int32	0 # FIXME: _ZTVN10__cxxabiv120__si_class_type_infoE+8
-	.int32	_ZTS1C
-	.int32	_ZTI1A
-	.size	_ZTI1C, 12
-
-	.type	_ZTI1D,@object          # @_ZTI1D
-	.globl	_ZTI1D
-	.align	3
-_ZTI1D:
-	.int32	0 # FIXME: _ZTVN10__cxxabiv120__si_class_type_infoE+8
-	.int32	_ZTS1D
-	.int32	_ZTI1B
-	.size	_ZTI1D, 12
-
-	.type	g,@object               # @g
-	.bss
-	.globl	g
-	.align	2
-g:
-	.int32	0                       # 0x0
-	.size	g, 4
-
-
-	.section	".note.GNU-stack","",@progbits
diff --git a/prototype-wasmate/wasmate.py b/prototype-wasmate/wasmate.py
deleted file mode 100755
index dbd18a9..0000000
--- a/prototype-wasmate/wasmate.py
+++ /dev/null
@@ -1,835 +0,0 @@
-#! /usr/bin/env python
-
-#   Copyright 2015 WebAssembly Community Group participants
-#
-#   Licensed under the Apache License, Version 2.0 (the "License");
-#   you may not use this file except in compliance with the License.
-#   You may obtain a copy of the License at
-#
-#       http://www.apache.org/licenses/LICENSE-2.0
-#
-#   Unless required by applicable law or agreed to in writing, software
-#   distributed under the License is distributed on an "AS IS" BASIS,
-#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-#   See the License for the specific language governing permissions and
-#   limitations under the License.
-
-import argparse
-import cStringIO
-import re
-import sys
-
-# The environment currently provided by the spec repo for the purpose
-# of writing spec tests.
-spectest_environment = {
-    'print': ('print', 'spectest', 'i32', ''),
-    'print_i32': ('print_i32', 'spectest', 'i32', ''),
-    'print_i64': ('print_i64', 'spectest', 'i64', ''),
-    'print_f32': ('print_f32', 'spectest', 'f32', ''),
-    'print_f64': ('print_f64', 'spectest', 'f64', ''),
-    'print_i32_f32': ('print_i32_f32', 'spectest', 'i32 f32', ''),
-    'print_i64_f64': ('print_i64_f64', 'spectest' 'i64 f64', ''),
-}
-
-# A made-up environment based on the set of functions that are called in
-# testcases generated from the LLVM codegen tests.
-misctest_environment = {
-    'a': ('a', 'misctest', 'i32', ''),
-    'abort': ('abort', 'misctest', '', ''),
-    'add2': ('add2', 'misctest', 'i32 i32', 'i32'),
-    'bar': ('bar', 'misctest', '', ''),
-    'callee': ('callee', 'misctest', '', ''),
-    'double_nullary': ('double_nullary', 'misctest', '', 'f64'),
-    'expanded_arg': ('expanded_arg', 'misctest', 'i32', ''),
-    'exit': ('exit', 'misctest', 'i32', ''),
-    'float_nullary': ('float_nullary', 'misctest', '', 'f32'),
-    'foo0': ('foo0', 'misctest', '', ''),
-    'foo1': ('foo1', 'misctest', '', ''),
-    'foo2': ('foo2', 'misctest', '', ''),
-    'foo3': ('foo3', 'misctest', '', ''),
-    'foo4': ('foo4', 'misctest', '', ''),
-    'foo5': ('foo5', 'misctest', '', ''),
-    'i32_binary': ('i32_binary', 'misctest', 'i32 i32', 'i32'),
-    'i32_nullary': ('i32_nullary', 'misctest', '', 'i32'),
-    'i32_unary': ('i32_unary', 'misctest', 'i32', 'i32'),
-    'i64_nullary': ('i64_nullary', 'misctest', '', 'i64'),
-    'lowered_result': ('lowered_result', 'misctest', '', 'i32'),
-    'memcpy': ('memcpy', 'misctest', 'i32 i32 i32', 'i32'),
-    'printf': ('printf', 'misctest', 'f32', 'f32'),
-    'printi': ('printi', 'misctest', 'i32', 'i32'),
-    'printv': ('printv', 'misctest', '', ''),
-    'return_something': ('return_something', 'misctest', '', 'i32'),
-    'something': ('something', 'misctest', '', ''),
-    'split_arg': ('split_arg', 'misctest', 'i64 i64', ''),
-    'void_nullary': ('void_nullary', 'misctest', '', ''),
-    '_ZN5AppleC1Ev': ('_ZN5AppleC1Ev', 'misctest', 'i32', 'i32'),
-    '_Znwm': ('_Znwm', 'misctest', 'i32', 'i32'),
-}
-
-# Default to using the spectest environment for now.
-import_environment = spectest_environment
-
-def ParseArgs():
-  parser = argparse.ArgumentParser(
-description="""Convert from the "flat" text
-assembly syntax emitted by LLVM into the s-expression syntax expected by
-the spec repository. Perform fake linking so that symbols can be
-resolved. This currently only works on single-file programs. Note: this is
-a hack. A real toolchain will eventually be needed.""")
-  parser.add_argument('-o', '--output', type=str, default=None,
-                      help='output `.wasm` s-expression file')
-  parser.add_argument('input', metavar='INPUT', nargs='?',
-                      help='input `.s` LLVM assembly file')
-  parser.add_argument('-l', dest='library', type=str, default=None,
-                      help='"link" with the given set of externals (eg. -l spectest)')
-  return parser.parse_args()
-
-def readInput(input_file):
-  """Read LLVM input from the file specified, or stdin."""
-  if input_file is None:
-    return sys.stdin.read().splitlines()
-  return open(input_file, 'rb').readlines()
-
-class OutputWriter(object):
-    def __init__(self):
-        self.current_indent = ''
-        self.dirty = False
-        self.out = cStringIO.StringIO()
-
-    def indent(self):
-        assert not self.dirty
-        self.current_indent += '  '
-
-    def dedent(self):
-        assert not self.dirty
-        self.current_indent = self.current_indent[:-2]
-
-    def write(self, text):
-        if not self.dirty:
-            self.out.write(self.current_indent)
-        self.out.write(text)
-        self.dirty = True
-
-    def end_of_line(self):
-        self.out.write('\n')
-        self.dirty = False
-
-    def write_line(self, text):
-        assert not self.dirty
-        self.write(text)
-        self.end_of_line()
-
-    def get_output(self):
-        return self.out.getvalue()
-
-out = OutputWriter()
-
-current_line_number = 0
-current_section = ".text"
-current_function_number = 0
-types = {}
-globl = []
-data_labels = {}
-function_labels = {}
-current_function_table_index = 0
-weak = []
-import_funs = set([])
-
-def error(message, line_number=None):
-    if line_number is None:
-        line_number = current_line_number
-    sys.stderr.write('error at line ' + str(line_number) + ': ' +
-                     message + '\n')
-    sys.exit(1)
-
-def resolve_data_label(arg):
-    parts = arg.split('+', 1)
-    base = parts[0]
-    offset = 0 if len(parts) == 1 else int(parts[1])
-    if base in data_labels:
-        return data_labels[base] + offset, True
-    else:
-        return 0, False
-
-def register_function(name):
-    """Keep track of all function labels, for when they're address-taken."""
-    assert name not in function_labels.keys(), 'Adding function %s twice' % name
-    function_labels[name] = None
-
-def resolve_function_address(name):
-    """Mark a function as address-taken, giving it an index."""
-    if name not in function_labels.keys():
-        return None, False
-    if function_labels[name] == None:
-      # First time this function is address-taken. Give it an index.
-      global current_function_table_index
-      function_labels[name] = current_function_table_index
-      current_function_table_index += 1
-    return function_labels[name], True
-
-def dump_function_table():
-    """Output all the address-taken functions in their index order."""
-    table = ''
-    for idx in range(0, current_function_table_index):
-        for f, f_idx in function_labels.iteritems():
-            if f_idx == idx:
-                table += ' $' + f
-    if table:
-        out.write_line('(table' + table + ')')
-
-def dump_function_exports():
-  """Export all .globl functions."""
-  for g in globl:
-    if g not in data_labels:
-      register_function(g)
-      out.write_line('(export "' + g + '" $' + g + ')')
-
-
-def resolve_label(arg):
-    # Labels can be of the form 'foo' or 'foo+47'. Split the offset out so that
-    # we can resolve the base symbol and then re-add the offset to the result
-    # to produce a simple constant.
-    #
-    # If the symbol is undefined, we'll just emit it as '$foo+47', which isn't
-    # currently valid syntax, but unresolved global variable addresses aren't
-    # supported in wasm anyway, and if we do add support for them to wasm, we
-    # should add support for offsets too :-).
-    #
-    # Test for '(' so that we avoid revisiting sexprified stacked operands.
-    if (arg[0] != '('):
-        resolved, ok = resolve_data_label(arg)
-        if ok:
-            return str(resolved)
-    if arg[0].isalpha() and arg != 'infinity' and arg != 'nan':
-        return '$' + arg
-    return arg
-
-class PassHandler(object):
-    def begin_pass(self):
-        pass
-
-    def end_pass(self):
-        pass
-
-    def handle_label(self, labelname):
-        if current_section == ".data":
-            self.handle_data_label(labelname)
-        else:
-            self.handle_text_label(labelname)
-
-    def handle_data_label(self, labelname):
-        pass
-
-    def handle_text_label(self, labelname):
-        pass
-
-    def handle_mnemonic(self, command, args):
-        pass
-
-    def handle_dot_globl(self, args):
-        pass
-
-    def handle_dot_weak(self, args):
-        pass
-
-    def handle_dot_type(self, args):
-        pass
-
-    def handle_dot_param(self, args):
-        pass
-
-    def handle_dot_result(self, args):
-        pass
-
-    def handle_dot_local(self, args):
-        pass
-
-    def handle_dot_size(self, args):
-        pass
-
-    def handle_dot_int8(self, args):
-        pass
-
-    def handle_dot_int16(self, args):
-        pass
-
-    def handle_dot_int32(self, args):
-        pass
-
-    def handle_dot_int64(self, args):
-        pass
-
-    def handle_dot_zero(self, args):
-        pass
-
-    def handle_dot_ascii(self, rest, terminate):
-        pass
-
-    def handle_dot_align(self, args):
-        if current_section == '.text':
-            # Ignore function alignment.
-            pass
-
-    def handle_dot_lcomm(self, args):
-        pass
-
-def reduce_to_bytes(x, num_bytes):
-    data = []
-    while num_bytes > 0:
-        data.append(chr(x & 255))
-        x >>= 8
-        num_bytes -= 1
-    assert x == 0 or x == -1
-    return data
-
-# TODO split data segment if there is enough space between non-zero bytes.
-class DataSegment(object):
-    def __init__(self):
-        self.base = 0
-        self.data = []
-        self.trailing_zeros = 0
-
-    def align_to(self, align):
-        while self.end() % align != 0:
-            self.trailing_zeros += 1
-
-    def fixup(self, addr, value, num_bytes):
-        pos = addr - self.base
-        b = reduce_to_bytes(value, num_bytes)
-        self.data[pos:pos + num_bytes] = b
-
-    def append_byte(self, byte):
-        if byte == '\0':
-            # We want to trim trailing zeros from the end of the data segment,
-            # so defer writing them until we encounter a non-zero byte.
-            self.trailing_zeros += 1
-        else:
-            if self.data:
-                # Flush the accumuated zeros before outputing this non-zero
-                # byte.
-                for i in range(self.trailing_zeros):
-                    self.data.append('\0')
-            else:
-                # There is currently nothing in the data segment but zeros, so
-                # shift the begining of the data segment to this non-zero byte.
-                self.base += self.trailing_zeros
-            self.trailing_zeros = 0
-            self.data.append(byte)
-
-    def append_integer(self, value, num_bytes):
-        for b in reduce_to_bytes(value, num_bytes):
-            self.append_byte(b)
-
-    def append_zeros(self, num_bytes):
-        self.trailing_zeros += num_bytes
-
-    def end(self):
-        return self.base + len(self.data) + self.trailing_zeros
-
-class DataPassHandler(PassHandler):
-    def __init__(self, segment):
-        self.segment = segment
-        self.reloc = []
-
-    def end_pass(self):
-        # Fix up relocations.
-        dump_function_exports()
-        for pos, num_bytes, symbol, line_number in self.reloc:
-            resolved, ok = resolve_data_label(symbol)
-            if ok:
-                # Validate that `.type symbol,@object` was seen.
-                s = symbol.split('+', 1)[0]
-                if types[s] != '@object':
-                  error('Data %s without .type, got %s' % (s, types[s]))
-            else:
-                # If it's not a data label then it must be a function label.
-                resolved, ok = resolve_function_address(symbol)
-                if ok and types[symbol] != '@function':
-                  # Validate that `.type symbol,@function` was seen.
-                  error('Function %s without .type, got %s' % (
-                      symbol, types[symbol]))
-            if not ok:
-                error("can't resolve symbol %r" % symbol, line_number)
-            self.segment.fixup(pos, resolved, num_bytes)
-        dump_function_table()
-
-    def align_data_to(self, align):
-        self.segment.align_to(align)
-
-    def handle_data_label(self, labelname):
-        data_labels[labelname] = self.segment.end()
-
-    def handle_dot_globl(self, args):
-        """.globl labels declare a name for global variables and functions."""
-        globl.append(args[0])
-
-    def handle_dot_weak(self, args):
-        """.weak labels declare a name for global variables and functions which
-        can be overriden later."""
-        # TODO: For now, treat this the same as .globl because we don't support
-        #       linking of multiple files.
-        assert args[0] not in weak, ('Unimplemented: multiple .weak for %s' %
-                                     args[0])
-        weak.append(args[0])
-        self.handle_dot_globl(args)
-
-    def handle_dot_type(self, args):
-        """.type is used for extra validation."""
-        # Validation cannot occur here because .type can appear before .globl.
-        assert len(args) == 2, 'Expected (label,type), got %s' % args
-        label, ltype = args
-        assert label not in types.keys(), 'Duplicate label %s' % label
-        types[label] = ltype
-
-    def handle_dot_intx(self, arg, num_bytes):
-        try:
-            x = int(arg)
-        except ValueError:
-            # It's a symbol, fix it up later.
-            # We need to ensure that variables needing relocation are allocated
-            # in the data segment. Any zero byte could be stripped out of the
-            # data segment, so set all the bits of the variable, for now.
-            x = 2**(num_bytes*8)-1
-            self.reloc.append((self.segment.end(), num_bytes, arg, current_line_number))
-        self.segment.append_integer(x, num_bytes)
-
-    def handle_dot_int8(self, args):
-        self.handle_dot_intx(args[0], 1)
-
-    def handle_dot_int16(self, args):
-        self.handle_dot_intx(args[0], 2)
-
-    def handle_dot_int32(self, args):
-        self.handle_dot_intx(args[0], 4)
-
-    def handle_dot_int64(self, args):
-        self.handle_dot_intx(args[0], 8)
-
-    def handle_dot_zero(self, args):
-        self.segment.append_zeros(int(args[0]))
-
-    def handle_dot_ascii(self, rest, terminate):
-        # Strip off the leading and trailing quotes.
-        assert rest[0] == '"', rest
-        assert rest[-1] == '"', rest
-        s = rest[1:-1]
-        i = 0
-
-        escapes = {
-            'n': '\n',
-            'r': '\r',
-            't': '\t',
-            'f': '\f',
-            'b': '\b',
-            '\\': '\\',
-            '\'': '\'',
-            '"': '"',
-        }
-        while i < len(s):
-            c = s[i]
-            if c == '\\':
-                i += 1
-                c = s[i]
-                if c in escapes:
-                    self.segment.append_byte(escapes[c])
-                    i += 1
-                elif '0' <= c and c <= '7' and i + 2 < len(s):
-                    data = s[i:i+3]
-                    try:
-                        self.segment.append_byte(chr(int(data, 8)))
-                        i += 3
-                    except ValueError:
-                        error("bad octal escape - " + data)
-                else:
-                    error("unsupported escape - " + c)
-            else:
-                self.segment.append_byte(c)
-                i += 1
-        if terminate:
-            self.segment.append_byte('\0')
-
-    def handle_dot_align(self, args):
-        self.align_data_to(1 << int(args[0]))
-
-    def handle_dot_lcomm(self, args):
-        name = args[0]
-        size = int(args[1])
-        # The alignment arg may be ommited.
-        if len(args) > 2:
-            self.align_data_to(1 << int(args[2]))
-        self.handle_data_label(name)
-        self.segment.append_zeros(size)
-
-# Convert an instruction from mnemonic syntax to sexpr syntax.
-def sexprify(command, args):
-    s = '(' + command
-    if len(args) != 0:
-        s += ' '
-    s += ' '.join([resolve_label(arg) for arg in args if not arg.endswith('=')])
-    s += ')'
-    return s
-
-class TextPassHandler(PassHandler):
-    def __init__(self):
-        self.expr_stack = []
-        self.current_function = None
-        self.current_label = None
-        self.block_labels = {}
-
-    def push_label(self, label):
-        if label in self.block_labels:
-            self.block_labels[label] += 1
-        else:
-            self.block_labels[label] = 1
-
-    def end_pass(self):
-        assert len(self.expr_stack) == 0, self.expr_stack
-        assert self.current_function is None, self.current_function
-
-    def handle_text_label(self, labelname):
-        if self.current_function is not None:
-            # Label inside a function.
-            if labelname.startswith('func_end'):
-                pass
-            else:
-                if labelname in self.block_labels:
-                    for i in range(0, self.block_labels[labelname]):
-                        out.dedent()
-                        out.write_line(')')
-                self.block_labels[labelname] = 0
-                self.current_label = labelname
-        else:
-            # Label for a function.
-            assert self.current_function is None, self.current_function
-            self.current_function = labelname
-            out.write_line('(func $' + labelname)
-            out.indent()
-
-    def handle_mnemonic(self, command, args):
-        # Handle address arguments of stores which have offsets.
-        # Make the offset part of the command instead of an arg, otherwise
-        # sexprify will interpret 'offset' as a label and prepend a '$'
-        if 'load' in command or 'store' in command:
-          m = re.match(r'(.+)\((.+)\)', args[1])
-          if m:
-            command += ' offset=' + resolve_label(m.group(1))
-            args[1] = m.group(2)
-
-        # Replace uses of $pop with expressions from the stack. We iterate
-        # in reverse order since that's the order the pops are defined to
-        # happen in in the assembly syntax.
-        for i in range(len(args) - 1, -1, -1):
-            if args[i].startswith('$pop'):
-                args[i] = self.expr_stack.pop()
-            elif args[i].startswith('$') and args[i][-1] != '=':
-                # Strip the leading '$' and create a get_local.
-                args[i] = '(get_local ' + args[i][1:] + ')'
-
-        # LLVM is now emitting return-type prefixs on call instructions. We
-        # don't currently need this information, so we just discard it.
-        if command.endswith('call'):
-            command = 'call';
-        elif command.endswith('call_indirect'):
-            command = 'call_indirect';
-
-        # Rewrite call to call_import.
-        # TODO: Revisit this once
-        # https://github.com/WebAssembly/design/issues/421
-        # is resolved, and if we still have a call_import, decide if LLVM should
-        # be emitting call_import itself.
-        if command == 'call':
-            for arg in args:
-                if not arg.endswith('='):
-                    if import_environment.has_key(arg):
-                        command = 'call_import'
-                        import_funs.add(arg)
-                        break
-
-        if command == 'block':
-            out.write_line('(block $' + args[0])
-            self.push_label(args[0])
-            out.indent()
-            return
-        if command == 'loop':
-            out.write_line('(loop $' + args[0] + ' $' + self.current_label)
-            assert len(self.expr_stack) == 0, self.expr_stack
-            self.push_label(args[0])
-            out.indent()
-            return
-
-        if command == 'copy_local':
-            # This is a no-op which just produces a get_local and set_local.
-            line = args[1]
-        else:
-            line = sexprify(command, args)
-
-        if len([x for x in args if x.startswith('$push')]) != 0:
-            self.expr_stack.append(line)
-        elif len(args) > 0 and args[0].endswith('=') and args[0] != '$discard=':
-            assert args[0][0] == '$', args[0]
-            out.write_line('(set_local ' + args[0][1:-1] + ' ' + line + ')')
-        else:
-            out.write_line(line)
-
-    def handle_dot_param(self, args):
-        out.write_line(' '.join(['(param ' + x + ')' for x in args]))
-
-    def handle_dot_result(self, args):
-        out.write_line('(result ' + args[0] + ')')
-
-    def handle_dot_local(self, args):
-        out.write_line('(local ' + ' '.join(args) + ')')
-
-    def handle_dot_size(self, args):
-        global current_function_number
-
-        if current_section == '.text':
-            assert args[0] == self.current_function, args[0]
-            # End of function body.
-            out.dedent()
-            out.write_line(')')
-            self.current_function = None
-            current_function_number += 1
-
-def cleanup_line(line):
-    # Traslate '# BB#0:' comments into proper BBx_0: labels. This hack is
-    # needed because loops in LLVM output reference the block after the
-    # loop, which LLVM doesn't emit a proper label for if it's only
-    # reachable by fallthrough.
-    if line.startswith('# BB#'):
-        line = 'BB' + str(current_function_number) + '_' + line[5:]
-
-    # Strip comments.
-    i = 0
-    while i < len(line):
-        if line[i] == '"':
-            # It's a string that may contain a hash character, so make sure we
-            # don't confuse its contents with the start of a comment.
-            i += 1
-            while i < len(line):
-                if line[i] == '"':
-                    # End of string.
-                    i += 1
-                    break
-                elif line[i] == '\\' and i + 1 < len(line) and line[i+1] == '"':
-                    # Skip past escaped quotes.
-                    i += 2
-                else:
-                    # String data.
-                    i += 1
-        elif line[i] == '#':
-            # Strip the comment
-            line = line[:i]
-            break
-        i += 1
-
-    return line.strip()
-
-def parse_line(line):
-    # Split out the first part of the line, which determines what we do.
-    parts = line.split(None, 1)
-    command = parts[0]
-
-    # The rest of the line is comma-separated args.
-    if len(parts) > 1:
-        rest = parts[1]
-        args = [x.strip() for x in rest.split(',')]
-    else:
-        rest = ''
-        args = []
-
-    return command, args, rest
-
-def handle_dot_directive(handler, command, args, rest):
-    global current_section
-
-    if command == 'text':
-        current_section = ".text"
-    elif command == 'data':
-        current_section = ".data"
-    elif command == 'bss':
-        # .bss is just like .data; it saves space in .o files, but we don't care
-        current_section = ".data"
-    elif command == 'section':
-        if (args[0].startswith('.rodata') or
-            args[0] == '.data.rel.ro' or
-            args[0] == '.data.rel.ro.local'):
-            # .rodata, .rodata.*, .data.rel.ro, and .data.rel.ro.local are like
-            # .data but can be readonly or mergeable, but we don't care.
-            current_section = '.data'
-        elif args[0] == '".note.GNU-stack"':
-            # This is a magic section header which declares that the stack
-            # can be non-executable, which in wasm it always is anyway.
-            pass
-        else:
-            error("unknown section: " + args[0])
-    elif command in ['file', 'ident']:
-        # .file is for debug info, which we're not doing right now.
-        # .ident is for embedding an uninterpreted comment in the output.
-        pass
-    elif command == 'globl':
-        handler.handle_dot_globl(args)
-    elif command == 'weak':
-        handler.handle_dot_weak(args)
-    elif command == 'type':
-        handler.handle_dot_type(args)
-    elif command == 'param':
-        handler.handle_dot_param(args)
-    elif command == 'result':
-        handler.handle_dot_result(args)
-    elif command == 'local':
-        handler.handle_dot_local(args)
-    elif command == 'size':
-        handler.handle_dot_size(args)
-    elif command == 'int8':
-        handler.handle_dot_int8(args)
-    elif command == 'int16':
-        handler.handle_dot_int16(args)
-    elif command == 'int32':
-        handler.handle_dot_int32(args)
-    elif command == 'int64':
-        handler.handle_dot_int64(args)
-    elif command == 'zero':
-        handler.handle_dot_zero(args)
-    elif command == 'asciz':
-        # Strings can contain embedded commas, so as a hack, pass the rest
-        # of the line as a single argument.
-        handler.handle_dot_ascii(rest, terminate=True)
-    elif command == 'ascii':
-        # Strings can contain embedded commas, so as a hack, pass the rest
-        # of the line as a single argument.
-        handler.handle_dot_ascii(rest, terminate=False)
-    elif command == 'align':
-        handler.handle_dot_align(args)
-    elif command == 'lcomm':
-        handler.handle_dot_lcomm(args)
-    else:
-        error("unknown dot command: ." + command)
-
-def do_pass(handler, all_lines):
-    global current_line_number
-    global current_section
-
-    current_line_number = 0
-    current_section = ".text"
-
-    handler.begin_pass()
-
-    for line in all_lines:
-        current_line_number += 1 # First line is "1" in most editors.
-        line = cleanup_line(line)
-        if not line:
-            continue
-        command, args, rest = parse_line(line)
-
-        # Decide what to do.
-        if command.endswith(':'):
-            if args:
-                error("label with args")
-            handler.handle_label(command[:-1])
-        elif command.startswith('.'):
-            handle_dot_directive(handler, command[1:], args, rest)
-        else:
-            handler.handle_mnemonic(command, args)
-
-    handler.end_pass()
-
-def write_data_segment(segment):
-    mem_size = segment.end()
-    out.write_line(('(memory ' + str(mem_size) + ' ' + str(mem_size)))
-    out.indent()
-    if segment.data:
-        out.write_line('(segment %d' % segment.base)
-        out.indent()
-        out.write('"')
-        for c in segment.data:
-            if c == '\n':
-                s = '\\n'
-            elif c == '\t':
-                s = '\\t'
-            elif c == '\\':
-                s = '\\\\'
-            elif c == '\'':
-                s = '\\\''
-            elif c == '"':
-                s = '\\"'
-            elif ord(c) >= 32 and ord(c) < 127:
-                # ASCII printable
-                s = c
-            else:
-              s = '\\%02x' % ord(c)
-            out.write(s)
-
-        out.write('"')
-        out.end_of_line()
-        out.dedent()
-        out.write_line(')')
-    out.dedent()
-    out.write_line(')')
-
-def Main():
-  global import_environment
-
-  cmd_args = ParseArgs()
-  all_lines = readInput(cmd_args.input)
-
-  if cmd_args.library:
-      if cmd_args.library == 'spectest':
-          import_environment = spectest_environment
-      if cmd_args.library == 'misctest':
-          import_environment = misctest_environment
-      else:
-          error("Unrecognized import environment name: " + cmd_args.library)
-
-  out.write_line(
-""";; This file was generated by wasmate.py, which is a script that converts
-;; from the \"flat\" text assembly syntax emitted by LLVM into the s-expression
-;; syntax expected by the spec repository.
-;;
-;; Note: this is a hack. A real toolchain will eventually be needed.
-;;
-""")
-
-  # Open a module.
-  out.write_line('(module')
-  out.indent()
-
-  segment = DataSegment()
-
-  # Make two passes over the code: once to read all the data directives, and
-  # once to process all the text. This lets us resolve all the data symbols so
-  # we can plug in absolute offsets into the text.
-  do_pass(DataPassHandler(segment), all_lines)
-  do_pass(TextPassHandler(), all_lines)
-
-  # Write out the import declarations.
-  for sym in import_funs:
-      if import_environment.has_key(sym):
-          name, module, params, returns = import_environment[sym]
-          out.write_line('(import $' + sym + ' "' + module + '" "' + name + '"' +
-                         ((' (param ' + params + ')') if params else '') +
-                         ((' (result ' + returns + ')') if returns else '') +
-                         ')')
-      else:
-          error('import ' + sym + ' not found in import environment')
-
-  write_data_segment(segment)
-
-  # Close the module.
-  out.dedent()
-  out.write_line(')')
-
-  # Check invariants.
-  assert len(out.current_indent) == 0, len(out.current_indent)
-
-  text = out.get_output()
-
-  if cmd_args.output == None:
-    sys.stdout.write(text)
-  else:
-    with open(cmd_args.output, 'w') as outfile:
-      outfile.write(text)
-
-
-if __name__ == '__main__':
-  sys.exit(Main())