summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xcheck.py66
-rw-r--r--test/llvm_autogenerated/call.wast137
-rw-r--r--test/llvm_autogenerated/cfg-stackify.wast1123
-rw-r--r--test/llvm_autogenerated/comparisons_f32.wast270
-rw-r--r--test/llvm_autogenerated/comparisons_f64.wast270
-rw-r--r--test/llvm_autogenerated/comparisons_i32.wast134
-rw-r--r--test/llvm_autogenerated/comparisons_i64.wast134
-rw-r--r--test/llvm_autogenerated/conv.wast319
-rw-r--r--test/llvm_autogenerated/copysign-casts.wast34
-rw-r--r--test/llvm_autogenerated/cpus.wast14
-rw-r--r--test/llvm_autogenerated/dead-vreg.wast114
-rw-r--r--test/llvm_autogenerated/f32.wast206
-rw-r--r--test/llvm_autogenerated/f64.wast206
-rw-r--r--test/llvm_autogenerated/fast-isel.wast24
-rw-r--r--test/llvm_autogenerated/frem.wast32
-rw-r--r--test/llvm_autogenerated/func.wast73
-rw-r--r--test/llvm_autogenerated/global.wast32
-rw-r--r--test/llvm_autogenerated/globl.wast12
-rw-r--r--test/llvm_autogenerated/i32.wast233
-rw-r--r--test/llvm_autogenerated/i64.wast233
-rw-r--r--test/llvm_autogenerated/ident.wast4
-rw-r--r--test/llvm_autogenerated/immediates.wast244
-rw-r--r--test/llvm_autogenerated/inline-asm.s103
-rw-r--r--test/llvm_autogenerated/legalize.wast3975
-rwxr-xr-xtest/llvm_autogenerated/llvm-to-s.py8
-rw-r--r--test/llvm_autogenerated/load-ext.wast124
-rw-r--r--test/llvm_autogenerated/load-store-i1.wast102
-rw-r--r--test/llvm_autogenerated/load.wast52
-rw-r--r--test/llvm_autogenerated/memory-addr32.wast23
-rw-r--r--test/llvm_autogenerated/memory-addr64.wast23
-rw-r--r--test/llvm_autogenerated/offset-folding.wast44
-rw-r--r--test/llvm_autogenerated/offset.wast473
-rw-r--r--test/llvm_autogenerated/phi.wast82
-rw-r--r--test/llvm_autogenerated/reg-stackify.wast155
-rw-r--r--test/llvm_autogenerated/return-int32.wast14
-rw-r--r--test/llvm_autogenerated/return-void.wast12
-rw-r--r--test/llvm_autogenerated/returned.s42
-rw-r--r--test/llvm_autogenerated/select.wast172
-rw-r--r--test/llvm_autogenerated/signext-zeroext.wast80
-rw-r--r--test/llvm_autogenerated/store-results.wast91
-rw-r--r--test/llvm_autogenerated/store-trunc.wast64
-rw-r--r--test/llvm_autogenerated/store.wast52
-rw-r--r--test/llvm_autogenerated/switch.wast100
-rw-r--r--test/llvm_autogenerated/unreachable.wast28
-rw-r--r--test/llvm_autogenerated/unused-argument.wast34
-rw-r--r--test/llvm_autogenerated/userstack.wast216
-rw-r--r--test/llvm_autogenerated/varargs.wast160
-rw-r--r--test/llvm_autogenerated/vtable.s206
48 files changed, 9953 insertions, 396 deletions
diff --git a/check.py b/check.py
index 0ccad611e..214e9f1c4 100755
--- a/check.py
+++ b/check.py
@@ -191,26 +191,6 @@ for t in spec_tests:
if actual != expected:
fail(actual, expected)
-print '\n[ checking binaryen-shell experimental testcases... ]\n'
-
-if len(requested) == 0:
- BLACKLIST = ['call.wast', # bad indirect_call, no type
- 'cfg-stackify.wast', # call an import $ which no return value, but in a context with a return value
- 'inline-asm.wast', # there is a (foo ..) s-expression block, perhaps inline asm? not a valid s-expression
- 'switch.wast', # bad tableswitch, no (table ..) inside it
- ]
- experimental_tests = [os.path.join('experimental', 'prototype-wasmate', 'test', 'expected-output', t) for t in sorted(os.listdir(os.path.join('test', 'experimental', 'prototype-wasmate', 'test', 'expected-output'))) if t not in BLACKLIST]
-else:
- experimental_tests = requested[:]
-
-for t in experimental_tests:
- if t.startswith('experimental') and t.endswith('.wast'):
- print '..', t
- wast = os.path.join('test', t)
- proc = subprocess.Popen([os.path.join('bin', 'binaryen-shell'), wast], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
- actual, err = proc.communicate()
- assert proc.returncode == 0, err
-
print '\n[ checking wasm2asm testcases... ]\n'
for wasm in tests + [os.path.join('spec', name) for name in ['address.wast']]:#spec_tests:
@@ -248,32 +228,28 @@ for wasm in tests + [os.path.join('spec', name) for name in ['address.wast']]:#s
print '\n[ checking .s testcases... ]\n'
-for s in sorted(os.listdir(os.path.join('test', 'dot_s'))) + sorted(os.listdir(os.path.join('test', 'experimental', 'prototype-wasmate', 'test'))):
- if not s.endswith('.s'): continue
- if s in ['inline-asm.s', # what is this?
- 'offset-folding.s' # unresolved symbol x
- ]: continue
- print '..', s
- wasm = s.replace('.s', '.wast')
- full = os.path.join('test', 'dot_s', s)
- if not os.path.exists(full):
- full = os.path.join('test', 'experimental', 'prototype-wasmate', 'test', s)
- actual, err = subprocess.Popen([os.path.join('bin', 's2wasm'), full], stdout=subprocess.PIPE, stderr=subprocess.PIPE).communicate()
- assert err == '', 'bad err:' + err
-
- # verify output
- expected_file = os.path.join('test', 'dot_s', wasm)
- if not os.path.exists(expected_file):
- print actual
- raise Exception('output ' + expected_file + ' does not exist')
- expected = open(expected_file).read()
- if actual != expected:
- fail(actual, expected)
+for dot_s_dir in ['dot_s', 'llvm_autogenerated']:
+ for s in sorted(os.listdir(os.path.join('test', dot_s_dir))):
+ if not s.endswith('.s'): continue
+ print '..', s
+ wasm = s.replace('.s', '.wast')
+ full = os.path.join('test', dot_s_dir, s)
+ actual, err = subprocess.Popen([os.path.join('bin', 's2wasm'), full], stdout=subprocess.PIPE, stderr=subprocess.PIPE).communicate()
+ assert err == '', 'bad err:' + err
+
+ # verify output
+ expected_file = os.path.join('test', dot_s_dir, wasm)
+ if not os.path.exists(expected_file):
+ print actual
+ raise Exception('output ' + expected_file + ' does not exist')
+ expected = open(expected_file).read()
+ if actual != expected:
+ fail(actual, expected)
- # verify with options
- proc = subprocess.Popen([os.path.join('bin', 's2wasm'), full, '--global-base=1024'], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
- out, err = proc.communicate()
- assert proc.returncode == 0, err
+ # verify with options
+ proc = subprocess.Popen([os.path.join('bin', 's2wasm'), full, '--global-base=1024'], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+ out, err = proc.communicate()
+ assert proc.returncode == 0, err
print '\n[ checking torture testcases... ]\n'
diff --git a/test/llvm_autogenerated/call.wast b/test/llvm_autogenerated/call.wast
new file mode 100644
index 000000000..27debb231
--- /dev/null
+++ b/test/llvm_autogenerated/call.wast
@@ -0,0 +1,137 @@
+(module
+ (memory 0 4294967295)
+ (type $FUNCSIG_v (func))
+ (type $FUNCSIG_i (func))
+ (import $i32_nullary "env" "i32_nullary" (result i32))
+ (import $i64_nullary "env" "i64_nullary" (result i64))
+ (import $float_nullary "env" "float_nullary" (result f32))
+ (import $double_nullary "env" "double_nullary" (result f64))
+ (import $void_nullary "env" "void_nullary")
+ (import $i32_unary "env" "i32_unary" (param i32) (result i32))
+ (import $i32_binary "env" "i32_binary" (param i32 i32) (result i32))
+ (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)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (call_import $i32_nullary)
+ )
+ )
+ )
+ )
+ (func $call_i64_nullary (result i64)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (call_import $i64_nullary)
+ )
+ )
+ )
+ )
+ (func $call_float_nullary (result f32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (call_import $float_nullary)
+ )
+ )
+ )
+ )
+ (func $call_double_nullary (result f64)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (call_import $double_nullary)
+ )
+ )
+ )
+ )
+ (func $call_void_nullary
+ (block $fake_return_waka123
+ (block
+ (call_import $void_nullary)
+ (br $fake_return_waka123)
+ )
+ )
+ )
+ (func $call_i32_unary (param $$0 i32) (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (call_import $i32_unary
+ (get_local $$0)
+ )
+ )
+ )
+ )
+ )
+ (func $call_i32_binary (param $$0 i32) (param $$1 i32) (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (call_import $i32_binary
+ (get_local $$0)
+ (get_local $$1)
+ )
+ )
+ )
+ )
+ )
+ (func $call_indirect_void (param $$0 i32)
+ (block $fake_return_waka123
+ (block
+ (call_indirect $FUNCSIG_v
+ (get_local $$0)
+ )
+ (br $fake_return_waka123)
+ )
+ )
+ )
+ (func $call_indirect_i32 (param $$0 i32) (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (call_indirect $FUNCSIG_i
+ (get_local $$0)
+ )
+ )
+ )
+ )
+ )
+ (func $tail_call_void_nullary
+ (block $fake_return_waka123
+ (block
+ (call_import $void_nullary)
+ (br $fake_return_waka123)
+ )
+ )
+ )
+ (func $fastcc_tail_call_void_nullary
+ (block $fake_return_waka123
+ (block
+ (call_import $void_nullary)
+ (br $fake_return_waka123)
+ )
+ )
+ )
+ (func $coldcc_tail_call_void_nullary
+ (block $fake_return_waka123
+ (block
+ (call_import $void_nullary)
+ (br $fake_return_waka123)
+ )
+ )
+ )
+)
+;; METADATA: { "asmConsts": {},"staticBump": 0 }
diff --git a/test/llvm_autogenerated/cfg-stackify.wast b/test/llvm_autogenerated/cfg-stackify.wast
new file mode 100644
index 000000000..3800f3386
--- /dev/null
+++ b/test/llvm_autogenerated/cfg-stackify.wast
@@ -0,0 +1,1123 @@
+(module
+ (memory 0 4294967295)
+ (import $something "env" "something")
+ (import $bar "env" "bar")
+ (import $a "env" "a" (result i32))
+ (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 $$0 i32)
+ (local $$1 i32)
+ (block $fake_return_waka123
+ (block
+ (set_local $$1
+ (i32.const 0)
+ )
+ (loop $BB0_3 $BB0_1
+ (block
+ (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)
+ )
+ )
+ (br $fake_return_waka123)
+ )
+ )
+ )
+ (func $test1 (param $$0 i32)
+ (local $$1 i32)
+ (block $fake_return_waka123
+ (block
+ (set_local $$1
+ (i32.const 0)
+ )
+ (loop $BB1_3 $BB1_1
+ (block
+ (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)
+ )
+ )
+ (br $fake_return_waka123)
+ )
+ )
+ )
+ (func $test2 (param $$0 i32) (param $$1 i32)
+ (block $fake_return_waka123
+ (block
+ (block $BB2_2
+ (br_if
+ (i32.lt_s
+ (get_local $$1)
+ (i32.const 1)
+ )
+ $BB2_2
+ )
+ (loop $BB2_1
+ (block
+ (set_local $$1
+ (i32.add
+ (get_local $$1)
+ (i32.const -1)
+ )
+ )
+ (f64.store align=8
+ (get_local $$0)
+ (f64.mul
+ (f64.load align=8
+ (get_local $$0)
+ )
+ (f64.const 3.2)
+ )
+ )
+ (set_local $$0
+ (i32.add
+ (get_local $$0)
+ (i32.const 8)
+ )
+ )
+ (br_if
+ (get_local $$1)
+ $BB2_1
+ )
+ )
+ )
+ )
+ (br $fake_return_waka123)
+ )
+ )
+ )
+ (func $doublediamond (param $$0 i32) (param $$1 i32) (param $$2 i32) (result i32)
+ (local $$3 i32)
+ (block $fake_return_waka123
+ (block
+ (block $BB3_5
+ (block $BB3_2
+ (set_local $$3
+ (i32.store align=4
+ (get_local $$2)
+ (i32.const 0)
+ )
+ )
+ (br_if
+ (get_local $$0)
+ $BB3_2
+ )
+ (i32.store align=4
+ (get_local $$2)
+ (i32.const 1)
+ )
+ (br $BB3_5)
+ )
+ (block $BB3_4
+ (i32.store align=4
+ (get_local $$2)
+ (i32.const 2)
+ )
+ (br_if
+ (get_local $$1)
+ $BB3_4
+ )
+ (i32.store align=4
+ (get_local $$2)
+ (i32.const 3)
+ )
+ (br $BB3_5)
+ )
+ (i32.store align=4
+ (get_local $$2)
+ (i32.const 4)
+ )
+ )
+ (i32.store align=4
+ (get_local $$2)
+ (i32.const 5)
+ )
+ (br $fake_return_waka123
+ (get_local $$3)
+ )
+ )
+ )
+ )
+ (func $triangle (param $$0 i32) (param $$1 i32) (result i32)
+ (local $$2 i32)
+ (block $fake_return_waka123
+ (block
+ (block $BB4_2
+ (set_local $$2
+ (i32.store align=4
+ (get_local $$0)
+ (i32.const 0)
+ )
+ )
+ (br_if
+ (get_local $$1)
+ $BB4_2
+ )
+ (i32.store align=4
+ (get_local $$0)
+ (i32.const 1)
+ )
+ )
+ (i32.store align=4
+ (get_local $$0)
+ (i32.const 2)
+ )
+ (br $fake_return_waka123
+ (get_local $$2)
+ )
+ )
+ )
+ )
+ (func $diamond (param $$0 i32) (param $$1 i32) (result i32)
+ (local $$2 i32)
+ (block $fake_return_waka123
+ (block
+ (block $BB5_3
+ (block $BB5_2
+ (set_local $$2
+ (i32.store align=4
+ (get_local $$0)
+ (i32.const 0)
+ )
+ )
+ (br_if
+ (get_local $$1)
+ $BB5_2
+ )
+ (i32.store align=4
+ (get_local $$0)
+ (i32.const 1)
+ )
+ (br $BB5_3)
+ )
+ (i32.store align=4
+ (get_local $$0)
+ (i32.const 2)
+ )
+ )
+ (i32.store align=4
+ (get_local $$0)
+ (i32.const 3)
+ )
+ (br $fake_return_waka123
+ (get_local $$2)
+ )
+ )
+ )
+ )
+ (func $single_block (param $$0 i32) (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i32.store align=4
+ (get_local $$0)
+ (i32.const 0)
+ )
+ )
+ )
+ )
+ )
+ (func $minimal_loop (param $$0 i32) (result i32)
+ (i32.store align=4
+ (get_local $$0)
+ (i32.const 0)
+ )
+ (loop $BB7_2 $BB7_1
+ (block
+ (i32.store align=4
+ (get_local $$0)
+ (i32.const 1)
+ )
+ (br $BB7_1)
+ )
+ )
+ )
+ (func $simple_loop (param $$0 i32) (param $$1 i32) (result i32)
+ (local $$2 i32)
+ (block $fake_return_waka123
+ (block
+ (set_local $$2
+ (i32.store align=4
+ (get_local $$0)
+ (i32.const 0)
+ )
+ )
+ (loop $BB8_2 $BB8_1
+ (block
+ (i32.store align=4
+ (get_local $$0)
+ (i32.const 1)
+ )
+ (br_if
+ (i32.eq
+ (get_local $$1)
+ (i32.const 0)
+ )
+ $BB8_1
+ )
+ )
+ )
+ (i32.store align=4
+ (get_local $$0)
+ (i32.const 2)
+ )
+ (br $fake_return_waka123
+ (get_local $$2)
+ )
+ )
+ )
+ )
+ (func $doubletriangle (param $$0 i32) (param $$1 i32) (param $$2 i32) (result i32)
+ (local $$3 i32)
+ (block $fake_return_waka123
+ (block
+ (block $BB9_4
+ (set_local $$3
+ (i32.store align=4
+ (get_local $$2)
+ (i32.const 0)
+ )
+ )
+ (br_if
+ (get_local $$0)
+ $BB9_4
+ )
+ (block $BB9_3
+ (i32.store align=4
+ (get_local $$2)
+ (i32.const 2)
+ )
+ (br_if
+ (get_local $$1)
+ $BB9_3
+ )
+ (i32.store align=4
+ (get_local $$2)
+ (i32.const 3)
+ )
+ )
+ (i32.store align=4
+ (get_local $$2)
+ (i32.const 4)
+ )
+ )
+ (i32.store align=4
+ (get_local $$2)
+ (i32.const 5)
+ )
+ (br $fake_return_waka123
+ (get_local $$3)
+ )
+ )
+ )
+ )
+ (func $ifelse_earlyexits (param $$0 i32) (param $$1 i32) (param $$2 i32) (result i32)
+ (local $$3 i32)
+ (block $fake_return_waka123
+ (block
+ (block $BB10_4
+ (block $BB10_2
+ (set_local $$3
+ (i32.store align=4
+ (get_local $$2)
+ (i32.const 0)
+ )
+ )
+ (br_if
+ (get_local $$0)
+ $BB10_2
+ )
+ (i32.store align=4
+ (get_local $$2)
+ (i32.const 1)
+ )
+ (br $BB10_4)
+ )
+ (i32.store align=4
+ (get_local $$2)
+ (i32.const 2)
+ )
+ (br_if
+ (get_local $$1)
+ $BB10_4
+ )
+ (i32.store align=4
+ (get_local $$2)
+ (i32.const 3)
+ )
+ )
+ (i32.store align=4
+ (get_local $$2)
+ (i32.const 4)
+ )
+ (br $fake_return_waka123
+ (get_local $$3)
+ )
+ )
+ )
+ )
+ (func $doublediamond_in_a_loop (param $$0 i32) (param $$1 i32) (param $$2 i32) (result i32)
+ (loop $BB11_7 $BB11_1
+ (block
+ (block $BB11_6
+ (block $BB11_3
+ (i32.store align=4
+ (get_local $$2)
+ (i32.const 0)
+ )
+ (br_if
+ (get_local $$0)
+ $BB11_3
+ )
+ (i32.store align=4
+ (get_local $$2)
+ (i32.const 1)
+ )
+ (br $BB11_6)
+ )
+ (block $BB11_5
+ (i32.store align=4
+ (get_local $$2)
+ (i32.const 2)
+ )
+ (br_if
+ (get_local $$1)
+ $BB11_5
+ )
+ (i32.store align=4
+ (get_local $$2)
+ (i32.const 3)
+ )
+ (br $BB11_6)
+ )
+ (i32.store align=4
+ (get_local $$2)
+ (i32.const 4)
+ )
+ )
+ (i32.store align=4
+ (get_local $$2)
+ (i32.const 5)
+ )
+ (br $BB11_1)
+ )
+ )
+ )
+ (func $test3 (param $$0 i32)
+ (block $fake_return_waka123
+ (block
+ (block $BB12_5
+ (br_if
+ (i32.const 0)
+ $BB12_5
+ )
+ (loop $BB12_4 $BB12_1
+ (block
+ (br_if
+ (get_local $$0)
+ $BB12_4
+ )
+ (loop $BB12_3 $BB12_2
+ (block
+ (br_if
+ (i32.ne
+ (get_local $$0)
+ (get_local $$0)
+ )
+ $BB12_2
+ )
+ )
+ )
+ (call_import $bar)
+ (br $BB12_1)
+ )
+ )
+ (unreachable)
+ )
+ (br $fake_return_waka123)
+ )
+ )
+ )
+ (func $test4 (param $$0 i32)
+ (block $fake_return_waka123
+ (block
+ (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
+ )
+ )
+ (br $fake_return_waka123)
+ )
+ (br_if
+ (i32.eq
+ (get_local $$0)
+ (i32.const 4)
+ )
+ $BB13_8
+ )
+ (br_if
+ (i32.ne
+ (get_local $$0)
+ (i32.const 622)
+ )
+ $BB13_7
+ )
+ (br $fake_return_waka123)
+ )
+ (br $fake_return_waka123)
+ )
+ (br $fake_return_waka123)
+ )
+ )
+ )
+ (func $test5 (param $$0 i32) (param $$1 i32)
+ (local $$2 i32)
+ (local $$3 i32)
+ (block $fake_return_waka123
+ (block
+ (block $BB14_4
+ (loop $BB14_3 $BB14_1
+ (block
+ (set_local $$2
+ (i32.const 0)
+ )
+ (set_local $$3
+ (i32.store align=4
+ (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 align=4
+ (get_local $$3)
+ (get_local $$2)
+ )
+ )
+ $BB14_1
+ )
+ )
+ )
+ (i32.store align=4
+ (get_local $$3)
+ (i32.const 3)
+ )
+ (br $fake_return_waka123)
+ )
+ (i32.store align=4
+ (get_local $$3)
+ (i32.const 2)
+ )
+ (br $fake_return_waka123)
+ )
+ )
+ )
+ (func $test6 (param $$0 i32) (param $$1 i32)
+ (local $$2 i32)
+ (local $$3 i32)
+ (local $$4 i32)
+ (block $fake_return_waka123
+ (block
+ (block $BB15_6
+ (block $BB15_5
+ (loop $BB15_4 $BB15_1
+ (block
+ (set_local $$2
+ (i32.const 0)
+ )
+ (i32.store align=4
+ (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 align=4
+ (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 align=4
+ (get_local $$2)
+ (get_local $$3)
+ )
+ (br_if
+ (get_local $$4)
+ $BB15_1
+ )
+ )
+ )
+ (i32.store align=4
+ (get_local $$2)
+ (i32.const 2)
+ )
+ (br $fake_return_waka123)
+ )
+ (i32.store align=4
+ (get_local $$2)
+ (i32.const 3)
+ )
+ )
+ (i32.store align=4
+ (get_local $$2)
+ (i32.const 4)
+ )
+ (br $fake_return_waka123)
+ )
+ )
+ )
+ (func $test7 (param $$0 i32) (param $$1 i32)
+ (local $$2 i32)
+ (local $$3 i32)
+ (set_local $$3
+ (i32.const 0)
+ )
+ (set_local $$2
+ (i32.store align=4
+ (get_local $$3)
+ (get_local $$3)
+ )
+ )
+ (loop $BB16_5 $BB16_1
+ (block
+ (block $BB16_4
+ (set_local $$3
+ (i32.store align=4
+ (get_local $$2)
+ (i32.const 1)
+ )
+ )
+ (br_if
+ (i32.and
+ (get_local $$0)
+ (get_local $$3)
+ )
+ $BB16_4
+ )
+ (i32.store align=4
+ (get_local $$2)
+ (i32.const 2)
+ )
+ (br_if
+ (i32.and
+ (get_local $$1)
+ (get_local $$3)
+ )
+ $BB16_1
+ )
+ (i32.store align=4
+ (get_local $$2)
+ (i32.const 4)
+ )
+ (unreachable)
+ )
+ (i32.store align=4
+ (get_local $$2)
+ (i32.const 3)
+ )
+ (br_if
+ (i32.and
+ (get_local $$1)
+ (get_local $$3)
+ )
+ $BB16_1
+ )
+ )
+ )
+ (i32.store align=4
+ (get_local $$2)
+ (i32.const 5)
+ )
+ (unreachable)
+ )
+ (func $test8 (result i32)
+ (local $$0 i32)
+ (set_local $$0
+ (i32.const 0)
+ )
+ (loop $BB17_4 $BB17_1
+ (block
+ (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
+ (block
+ (br_if
+ (get_local $$0)
+ $BB17_3
+ )
+ (br $BB17_1)
+ )
+ )
+ )
+ )
+ )
+ (func $test9
+ (local $$0 i32)
+ (local $$1 i32)
+ (block $fake_return_waka123
+ (block
+ (set_local $$1
+ (i32.const 0)
+ )
+ (set_local $$0
+ (i32.store align=4
+ (get_local $$1)
+ (get_local $$1)
+ )
+ )
+ (loop $BB18_5 $BB18_1
+ (block
+ (set_local $$1
+ (i32.store align=4
+ (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
+ (block
+ (block $BB18_4
+ (i32.store align=4
+ (get_local $$0)
+ (i32.const 2)
+ )
+ (br_if
+ (i32.eq
+ (i32.and
+ (call_import $a)
+ (get_local $$1)
+ )
+ (i32.const 0)
+ )
+ $BB18_4
+ )
+ (i32.store align=4
+ (get_local $$0)
+ (i32.const 3)
+ )
+ (br_if
+ (i32.and
+ (call_import $a)
+ (get_local $$1)
+ )
+ $BB18_2
+ )
+ (br $BB18_1)
+ )
+ (i32.store align=4
+ (get_local $$0)
+ (i32.const 4)
+ )
+ (br_if
+ (i32.and
+ (call_import $a)
+ (get_local $$1)
+ )
+ $BB18_2
+ )
+ (br $BB18_1)
+ )
+ )
+ )
+ )
+ (i32.store align=4
+ (get_local $$0)
+ (i32.const 5)
+ )
+ (br $fake_return_waka123)
+ )
+ )
+ )
+ (func $test10
+ (local $$0 i32)
+ (local $$1 i32)
+ (local $$2 i32)
+ (local $$3 i32)
+ (local $$4 i32)
+ (block $fake_return_waka123
+ (block
+ (set_local $$0
+ (i32.const 2)
+ )
+ (loop $BB19_7 $BB19_1
+ (block
+ (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
+ (block
+ (set_local $$4
+ (get_local $$3)
+ )
+ (set_local $$3
+ (get_local $$2)
+ )
+ (loop $BB19_5 $BB19_3
+ (block
+ (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)
+ (table (case $BB19_3) (case $BB19_5) (case $BB19_1) (case $BB19_2) (case $BB19_6)) (case $BB19_3)
+ )
+ )
+ )
+ )
+ )
+ (br $fake_return_waka123)
+ )
+ (set_local $$1
+ (i32.const 1)
+ )
+ (br $BB19_1)
+ )
+ )
+ )
+ )
+ )
+ (func $test11
+ (local $$0 i32)
+ (block $fake_return_waka123
+ (block
+ (set_local $$0
+ (i32.const 0)
+ )
+ (i32.store align=4
+ (get_local $$0)
+ (get_local $$0)
+ )
+ (block $BB20_8
+ (block $BB20_7
+ (block $BB20_6
+ (block $BB20_4
+ (br_if
+ (get_local $$0)
+ $BB20_4
+ )
+ (block $BB20_3
+ (i32.store align=4
+ (get_local $$0)
+ (i32.const 1)
+ )
+ (br_if
+ (get_local $$0)
+ $BB20_3
+ )
+ (i32.store align=4
+ (get_local $$0)
+ (i32.const 2)
+ )
+ (br_if
+ (get_local $$0)
+ $BB20_6
+ )
+ )
+ (i32.store align=4
+ (get_local $$0)
+ (i32.const 3)
+ )
+ (br $fake_return_waka123)
+ )
+ (i32.store align=4
+ (get_local $$0)
+ (i32.const 4)
+ )
+ (br_if
+ (get_local $$0)
+ $BB20_8
+ )
+ (i32.store align=4
+ (get_local $$0)
+ (i32.const 5)
+ )
+ (br_if
+ (i32.eq
+ (get_local $$0)
+ (i32.const 0)
+ )
+ $BB20_7
+ )
+ )
+ (i32.store align=4
+ (get_local $$0)
+ (i32.const 7)
+ )
+ (br $fake_return_waka123)
+ )
+ (i32.store align=4
+ (get_local $$0)
+ (i32.const 6)
+ )
+ (br $fake_return_waka123)
+ )
+ (i32.store align=4
+ (get_local $$0)
+ (i32.const 8)
+ )
+ (br $fake_return_waka123)
+ )
+ )
+ )
+ (func $test12 (param $$0 i32)
+ (local $$1 i32)
+ (block $fake_return_waka123
+ (block
+ (loop $BB21_8 $BB21_1
+ (block
+ (set_local $$1
+ (i32.load8_u align=1
+ (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
+ )
+ )
+ (br $fake_return_waka123)
+ )
+ (set_local $$0
+ (i32.add
+ (get_local $$0)
+ (i32.const 1)
+ )
+ )
+ (br $BB21_1)
+ )
+ )
+ )
+ )
+ )
+ (func $test13
+ (local $$0 i32)
+ (block $fake_return_waka123
+ (block
+ (block $BB22_2
+ (br_if
+ (i32.eq
+ (i32.const 0)
+ (i32.const 0)
+ )
+ $BB22_2
+ )
+ (br $fake_return_waka123)
+ )
+ (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)
+ )
+ )
+ )
+)
+;; METADATA: { "asmConsts": {},"staticBump": 0 }
diff --git a/test/llvm_autogenerated/comparisons_f32.wast b/test/llvm_autogenerated/comparisons_f32.wast
new file mode 100644
index 000000000..6a050b39f
--- /dev/null
+++ b/test/llvm_autogenerated/comparisons_f32.wast
@@ -0,0 +1,270 @@
+(module
+ (memory 0 4294967295)
+ (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 $$0 f32) (param $$1 f32) (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i32.and
+ (f32.eq
+ (get_local $$0)
+ (get_local $$0)
+ )
+ (f32.eq
+ (get_local $$1)
+ (get_local $$1)
+ )
+ )
+ )
+ )
+ )
+ )
+ (func $uno_f32 (param $$0 f32) (param $$1 f32) (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i32.or
+ (f32.ne
+ (get_local $$0)
+ (get_local $$0)
+ )
+ (f32.ne
+ (get_local $$1)
+ (get_local $$1)
+ )
+ )
+ )
+ )
+ )
+ )
+ (func $oeq_f32 (param $$0 f32) (param $$1 f32) (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (f32.eq
+ (get_local $$0)
+ (get_local $$1)
+ )
+ )
+ )
+ )
+ )
+ (func $une_f32 (param $$0 f32) (param $$1 f32) (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (f32.ne
+ (get_local $$0)
+ (get_local $$1)
+ )
+ )
+ )
+ )
+ )
+ (func $olt_f32 (param $$0 f32) (param $$1 f32) (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (f32.lt
+ (get_local $$0)
+ (get_local $$1)
+ )
+ )
+ )
+ )
+ )
+ (func $ole_f32 (param $$0 f32) (param $$1 f32) (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (f32.le
+ (get_local $$0)
+ (get_local $$1)
+ )
+ )
+ )
+ )
+ )
+ (func $ogt_f32 (param $$0 f32) (param $$1 f32) (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (f32.gt
+ (get_local $$0)
+ (get_local $$1)
+ )
+ )
+ )
+ )
+ )
+ (func $oge_f32 (param $$0 f32) (param $$1 f32) (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (f32.ge
+ (get_local $$0)
+ (get_local $$1)
+ )
+ )
+ )
+ )
+ )
+ (func $ueq_f32 (param $$0 f32) (param $$1 f32) (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (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 $$0 f32) (param $$1 f32) (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (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 $$0 f32) (param $$1 f32) (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (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 $$0 f32) (param $$1 f32) (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (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 $$0 f32) (param $$1 f32) (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (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 $$0 f32) (param $$1 f32) (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (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)
+ )
+ )
+ )
+ )
+ )
+ )
+ )
+)
+;; METADATA: { "asmConsts": {},"staticBump": 0 }
diff --git a/test/llvm_autogenerated/comparisons_f64.wast b/test/llvm_autogenerated/comparisons_f64.wast
new file mode 100644
index 000000000..29fb60481
--- /dev/null
+++ b/test/llvm_autogenerated/comparisons_f64.wast
@@ -0,0 +1,270 @@
+(module
+ (memory 0 4294967295)
+ (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 $$0 f64) (param $$1 f64) (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i32.and
+ (f64.eq
+ (get_local $$0)
+ (get_local $$0)
+ )
+ (f64.eq
+ (get_local $$1)
+ (get_local $$1)
+ )
+ )
+ )
+ )
+ )
+ )
+ (func $uno_f64 (param $$0 f64) (param $$1 f64) (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i32.or
+ (f64.ne
+ (get_local $$0)
+ (get_local $$0)
+ )
+ (f64.ne
+ (get_local $$1)
+ (get_local $$1)
+ )
+ )
+ )
+ )
+ )
+ )
+ (func $oeq_f64 (param $$0 f64) (param $$1 f64) (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (f64.eq
+ (get_local $$0)
+ (get_local $$1)
+ )
+ )
+ )
+ )
+ )
+ (func $une_f64 (param $$0 f64) (param $$1 f64) (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (f64.ne
+ (get_local $$0)
+ (get_local $$1)
+ )
+ )
+ )
+ )
+ )
+ (func $olt_f64 (param $$0 f64) (param $$1 f64) (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (f64.lt
+ (get_local $$0)
+ (get_local $$1)
+ )
+ )
+ )
+ )
+ )
+ (func $ole_f64 (param $$0 f64) (param $$1 f64) (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (f64.le
+ (get_local $$0)
+ (get_local $$1)
+ )
+ )
+ )
+ )
+ )
+ (func $ogt_f64 (param $$0 f64) (param $$1 f64) (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (f64.gt
+ (get_local $$0)
+ (get_local $$1)
+ )
+ )
+ )
+ )
+ )
+ (func $oge_f64 (param $$0 f64) (param $$1 f64) (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (f64.ge
+ (get_local $$0)
+ (get_local $$1)
+ )
+ )
+ )
+ )
+ )
+ (func $ueq_f64 (param $$0 f64) (param $$1 f64) (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (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 $$0 f64) (param $$1 f64) (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (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 $$0 f64) (param $$1 f64) (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (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 $$0 f64) (param $$1 f64) (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (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 $$0 f64) (param $$1 f64) (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (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 $$0 f64) (param $$1 f64) (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (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)
+ )
+ )
+ )
+ )
+ )
+ )
+ )
+)
+;; METADATA: { "asmConsts": {},"staticBump": 0 }
diff --git a/test/llvm_autogenerated/comparisons_i32.wast b/test/llvm_autogenerated/comparisons_i32.wast
new file mode 100644
index 000000000..65fc3bad2
--- /dev/null
+++ b/test/llvm_autogenerated/comparisons_i32.wast
@@ -0,0 +1,134 @@
+(module
+ (memory 0 4294967295)
+ (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 $$0 i32) (param $$1 i32) (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i32.eq
+ (get_local $$0)
+ (get_local $$1)
+ )
+ )
+ )
+ )
+ )
+ (func $ne_i32 (param $$0 i32) (param $$1 i32) (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i32.ne
+ (get_local $$0)
+ (get_local $$1)
+ )
+ )
+ )
+ )
+ )
+ (func $slt_i32 (param $$0 i32) (param $$1 i32) (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i32.lt_s
+ (get_local $$0)
+ (get_local $$1)
+ )
+ )
+ )
+ )
+ )
+ (func $sle_i32 (param $$0 i32) (param $$1 i32) (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i32.le_s
+ (get_local $$0)
+ (get_local $$1)
+ )
+ )
+ )
+ )
+ )
+ (func $ult_i32 (param $$0 i32) (param $$1 i32) (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i32.lt_u
+ (get_local $$0)
+ (get_local $$1)
+ )
+ )
+ )
+ )
+ )
+ (func $ule_i32 (param $$0 i32) (param $$1 i32) (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i32.le_u
+ (get_local $$0)
+ (get_local $$1)
+ )
+ )
+ )
+ )
+ )
+ (func $sgt_i32 (param $$0 i32) (param $$1 i32) (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i32.gt_s
+ (get_local $$0)
+ (get_local $$1)
+ )
+ )
+ )
+ )
+ )
+ (func $sge_i32 (param $$0 i32) (param $$1 i32) (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i32.ge_s
+ (get_local $$0)
+ (get_local $$1)
+ )
+ )
+ )
+ )
+ )
+ (func $ugt_i32 (param $$0 i32) (param $$1 i32) (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i32.gt_u
+ (get_local $$0)
+ (get_local $$1)
+ )
+ )
+ )
+ )
+ )
+ (func $uge_i32 (param $$0 i32) (param $$1 i32) (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i32.ge_u
+ (get_local $$0)
+ (get_local $$1)
+ )
+ )
+ )
+ )
+ )
+)
+;; METADATA: { "asmConsts": {},"staticBump": 0 }
diff --git a/test/llvm_autogenerated/comparisons_i64.wast b/test/llvm_autogenerated/comparisons_i64.wast
new file mode 100644
index 000000000..63166a543
--- /dev/null
+++ b/test/llvm_autogenerated/comparisons_i64.wast
@@ -0,0 +1,134 @@
+(module
+ (memory 0 4294967295)
+ (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 $$0 i64) (param $$1 i64) (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i64.eq
+ (get_local $$0)
+ (get_local $$1)
+ )
+ )
+ )
+ )
+ )
+ (func $ne_i64 (param $$0 i64) (param $$1 i64) (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i64.ne
+ (get_local $$0)
+ (get_local $$1)
+ )
+ )
+ )
+ )
+ )
+ (func $slt_i64 (param $$0 i64) (param $$1 i64) (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i64.lt_s
+ (get_local $$0)
+ (get_local $$1)
+ )
+ )
+ )
+ )
+ )
+ (func $sle_i64 (param $$0 i64) (param $$1 i64) (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i64.le_s
+ (get_local $$0)
+ (get_local $$1)
+ )
+ )
+ )
+ )
+ )
+ (func $ult_i64 (param $$0 i64) (param $$1 i64) (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i64.lt_u
+ (get_local $$0)
+ (get_local $$1)
+ )
+ )
+ )
+ )
+ )
+ (func $ule_i64 (param $$0 i64) (param $$1 i64) (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i64.le_u
+ (get_local $$0)
+ (get_local $$1)
+ )
+ )
+ )
+ )
+ )
+ (func $sgt_i64 (param $$0 i64) (param $$1 i64) (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i64.gt_s
+ (get_local $$0)
+ (get_local $$1)
+ )
+ )
+ )
+ )
+ )
+ (func $sge_i64 (param $$0 i64) (param $$1 i64) (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i64.ge_s
+ (get_local $$0)
+ (get_local $$1)
+ )
+ )
+ )
+ )
+ )
+ (func $ugt_i64 (param $$0 i64) (param $$1 i64) (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i64.gt_u
+ (get_local $$0)
+ (get_local $$1)
+ )
+ )
+ )
+ )
+ )
+ (func $uge_i64 (param $$0 i64) (param $$1 i64) (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i64.ge_u
+ (get_local $$0)
+ (get_local $$1)
+ )
+ )
+ )
+ )
+ )
+)
+;; METADATA: { "asmConsts": {},"staticBump": 0 }
diff --git a/test/llvm_autogenerated/conv.wast b/test/llvm_autogenerated/conv.wast
new file mode 100644
index 000000000..0fe9776ff
--- /dev/null
+++ b/test/llvm_autogenerated/conv.wast
@@ -0,0 +1,319 @@
+(module
+ (memory 0 4294967295)
+ (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 $$0 i64) (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i32.wrap/i64
+ (get_local $$0)
+ )
+ )
+ )
+ )
+ )
+ (func $i64_extend_s_i32 (param $$0 i32) (result i64)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i64.extend_s/i32
+ (get_local $$0)
+ )
+ )
+ )
+ )
+ )
+ (func $i64_extend_u_i32 (param $$0 i32) (result i64)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i64.extend_u/i32
+ (get_local $$0)
+ )
+ )
+ )
+ )
+ )
+ (func $i32_trunc_s_f32 (param $$0 f32) (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i32.trunc_s/f32
+ (get_local $$0)
+ )
+ )
+ )
+ )
+ )
+ (func $i32_trunc_u_f32 (param $$0 f32) (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i32.trunc_u/f32
+ (get_local $$0)
+ )
+ )
+ )
+ )
+ )
+ (func $i32_trunc_s_f64 (param $$0 f64) (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i32.trunc_s/f64
+ (get_local $$0)
+ )
+ )
+ )
+ )
+ )
+ (func $i32_trunc_u_f64 (param $$0 f64) (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i32.trunc_u/f64
+ (get_local $$0)
+ )
+ )
+ )
+ )
+ )
+ (func $i64_trunc_s_f32 (param $$0 f32) (result i64)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i64.trunc_s/f32
+ (get_local $$0)
+ )
+ )
+ )
+ )
+ )
+ (func $i64_trunc_u_f32 (param $$0 f32) (result i64)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i64.trunc_u/f32
+ (get_local $$0)
+ )
+ )
+ )
+ )
+ )
+ (func $i64_trunc_s_f64 (param $$0 f64) (result i64)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i64.trunc_s/f64
+ (get_local $$0)
+ )
+ )
+ )
+ )
+ )
+ (func $i64_trunc_u_f64 (param $$0 f64) (result i64)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i64.trunc_u/f64
+ (get_local $$0)
+ )
+ )
+ )
+ )
+ )
+ (func $f32_convert_s_i32 (param $$0 i32) (result f32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (f32.convert_s/i32
+ (get_local $$0)
+ )
+ )
+ )
+ )
+ )
+ (func $f32_convert_u_i32 (param $$0 i32) (result f32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (f32.convert_u/i32
+ (get_local $$0)
+ )
+ )
+ )
+ )
+ )
+ (func $f64_convert_s_i32 (param $$0 i32) (result f64)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (f64.convert_s/i32
+ (get_local $$0)
+ )
+ )
+ )
+ )
+ )
+ (func $f64_convert_u_i32 (param $$0 i32) (result f64)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (f64.convert_u/i32
+ (get_local $$0)
+ )
+ )
+ )
+ )
+ )
+ (func $f32_convert_s_i64 (param $$0 i64) (result f32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (f32.convert_s/i64
+ (get_local $$0)
+ )
+ )
+ )
+ )
+ )
+ (func $f32_convert_u_i64 (param $$0 i64) (result f32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (f32.convert_u/i64
+ (get_local $$0)
+ )
+ )
+ )
+ )
+ )
+ (func $f64_convert_s_i64 (param $$0 i64) (result f64)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (f64.convert_s/i64
+ (get_local $$0)
+ )
+ )
+ )
+ )
+ )
+ (func $f64_convert_u_i64 (param $$0 i64) (result f64)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (f64.convert_u/i64
+ (get_local $$0)
+ )
+ )
+ )
+ )
+ )
+ (func $f64_promote_f32 (param $$0 f32) (result f64)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (f64.promote/f32
+ (get_local $$0)
+ )
+ )
+ )
+ )
+ )
+ (func $f32_demote_f64 (param $$0 f64) (result f32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (f32.demote/f64
+ (get_local $$0)
+ )
+ )
+ )
+ )
+ )
+ (func $anyext (param $$0 i32) (result i64)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i64.shl
+ (i64.extend_u/i32
+ (get_local $$0)
+ )
+ (i64.const 32)
+ )
+ )
+ )
+ )
+ )
+ (func $bitcast_i32_to_float (param $$0 i32) (result f32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (f32.reinterpreti32
+ (get_local $$0)
+ )
+ )
+ )
+ )
+ )
+ (func $bitcast_float_to_i32 (param $$0 f32) (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i32.reinterpret/f32
+ (get_local $$0)
+ )
+ )
+ )
+ )
+ )
+ (func $bitcast_i64_to_double (param $$0 i64) (result f64)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (f64.reinterpreti64
+ (get_local $$0)
+ )
+ )
+ )
+ )
+ )
+ (func $bitcast_double_to_i64 (param $$0 f64) (result i64)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i64.reinterpret/f64
+ (get_local $$0)
+ )
+ )
+ )
+ )
+ )
+)
+;; METADATA: { "asmConsts": {},"staticBump": 0 }
diff --git a/test/llvm_autogenerated/copysign-casts.wast b/test/llvm_autogenerated/copysign-casts.wast
new file mode 100644
index 000000000..0bee77732
--- /dev/null
+++ b/test/llvm_autogenerated/copysign-casts.wast
@@ -0,0 +1,34 @@
+(module
+ (memory 0 4294967295)
+ (export "fold_promote" $fold_promote)
+ (export "fold_demote" $fold_demote)
+ (func $fold_promote (param $$0 f64) (param $$1 f32) (result f64)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (f64.copysign
+ (get_local $$0)
+ (f64.promote/f32
+ (get_local $$1)
+ )
+ )
+ )
+ )
+ )
+ )
+ (func $fold_demote (param $$0 f32) (param $$1 f64) (result f32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (f32.copysign
+ (get_local $$0)
+ (f32.demote/f64
+ (get_local $$1)
+ )
+ )
+ )
+ )
+ )
+ )
+)
+;; METADATA: { "asmConsts": {},"staticBump": 0 }
diff --git a/test/llvm_autogenerated/cpus.wast b/test/llvm_autogenerated/cpus.wast
new file mode 100644
index 000000000..736a887bd
--- /dev/null
+++ b/test/llvm_autogenerated/cpus.wast
@@ -0,0 +1,14 @@
+(module
+ (memory 0 4294967295)
+ (export "f" $f)
+ (func $f (param $$0 i32) (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (get_local $$0)
+ )
+ )
+ )
+ )
+)
+;; METADATA: { "asmConsts": {},"staticBump": 0 }
diff --git a/test/llvm_autogenerated/dead-vreg.wast b/test/llvm_autogenerated/dead-vreg.wast
new file mode 100644
index 000000000..ee4fa0d06
--- /dev/null
+++ b/test/llvm_autogenerated/dead-vreg.wast
@@ -0,0 +1,114 @@
+(module
+ (memory 0 4294967295)
+ (export "foo" $foo)
+ (func $foo (param $$0 i32) (param $$1 i32) (param $$2 i32)
+ (local $$3 i32)
+ (local $$4 i32)
+ (local $$5 i32)
+ (local $$6 i32)
+ (local $$7 i32)
+ (local $$8 i32)
+ (local $$9 i32)
+ (block $fake_return_waka123
+ (block
+ (set_local $$4
+ (i32.const 1)
+ )
+ (block $BB0_5
+ (br_if
+ (i32.lt_s
+ (get_local $$2)
+ (get_local $$4)
+ )
+ $BB0_5
+ )
+ (set_local $$5
+ (i32.const 0)
+ )
+ (set_local $$3
+ (i32.shl
+ (get_local $$1)
+ (i32.const 2)
+ )
+ )
+ (set_local $$6
+ (get_local $$5)
+ )
+ (loop $BB0_2
+ (block
+ (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_3
+ (block
+ (set_local $$9
+ (i32.add
+ (get_local $$9)
+ (i32.const -1)
+ )
+ )
+ (i32.store align=4
+ (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
+ )
+ )
+ )
+ )
+ (br $fake_return_waka123)
+ )
+ )
+ )
+)
+;; METADATA: { "asmConsts": {},"staticBump": 0 }
diff --git a/test/llvm_autogenerated/f32.wast b/test/llvm_autogenerated/f32.wast
new file mode 100644
index 000000000..f6f5f68d1
--- /dev/null
+++ b/test/llvm_autogenerated/f32.wast
@@ -0,0 +1,206 @@
+(module
+ (memory 0 4294967295)
+ (import $fmaf "env" "fmaf" (param f32 f32 f32) (result f32))
+ (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 $$0 f32) (param $$1 f32) (result f32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (f32.add
+ (get_local $$0)
+ (get_local $$1)
+ )
+ )
+ )
+ )
+ )
+ (func $fsub32 (param $$0 f32) (param $$1 f32) (result f32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (f32.sub
+ (get_local $$0)
+ (get_local $$1)
+ )
+ )
+ )
+ )
+ )
+ (func $fmul32 (param $$0 f32) (param $$1 f32) (result f32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (f32.mul
+ (get_local $$0)
+ (get_local $$1)
+ )
+ )
+ )
+ )
+ )
+ (func $fdiv32 (param $$0 f32) (param $$1 f32) (result f32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (f32.div
+ (get_local $$0)
+ (get_local $$1)
+ )
+ )
+ )
+ )
+ )
+ (func $fabs32 (param $$0 f32) (result f32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (f32.abs
+ (get_local $$0)
+ )
+ )
+ )
+ )
+ )
+ (func $fneg32 (param $$0 f32) (result f32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i32.neg
+ (get_local $$0)
+ )
+ )
+ )
+ )
+ )
+ (func $copysign32 (param $$0 f32) (param $$1 f32) (result f32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (f32.copysign
+ (get_local $$0)
+ (get_local $$1)
+ )
+ )
+ )
+ )
+ )
+ (func $sqrt32 (param $$0 f32) (result f32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (f32.sqrt
+ (get_local $$0)
+ )
+ )
+ )
+ )
+ )
+ (func $ceil32 (param $$0 f32) (result f32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (f32.ceil
+ (get_local $$0)
+ )
+ )
+ )
+ )
+ )
+ (func $floor32 (param $$0 f32) (result f32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (f32.floor
+ (get_local $$0)
+ )
+ )
+ )
+ )
+ )
+ (func $trunc32 (param $$0 f32) (result f32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (f32.trunc
+ (get_local $$0)
+ )
+ )
+ )
+ )
+ )
+ (func $nearest32 (param $$0 f32) (result f32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i32.nearest
+ (get_local $$0)
+ )
+ )
+ )
+ )
+ )
+ (func $nearest32_via_rint (param $$0 f32) (result f32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i32.nearest
+ (get_local $$0)
+ )
+ )
+ )
+ )
+ )
+ (func $fmin32 (param $$0 f32) (result f32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (f32.min
+ (get_local $$0)
+ (f32.const 0)
+ )
+ )
+ )
+ )
+ )
+ (func $fmax32 (param $$0 f32) (result f32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (f32.max
+ (get_local $$0)
+ (f32.const 0)
+ )
+ )
+ )
+ )
+ )
+ (func $fma32 (param $$0 f32) (param $$1 f32) (param $$2 f32) (result f32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (call_import $fmaf
+ (get_local $$0)
+ (get_local $$1)
+ (get_local $$2)
+ )
+ )
+ )
+ )
+ )
+)
+;; METADATA: { "asmConsts": {},"staticBump": 0 }
diff --git a/test/llvm_autogenerated/f64.wast b/test/llvm_autogenerated/f64.wast
new file mode 100644
index 000000000..1177bc9e6
--- /dev/null
+++ b/test/llvm_autogenerated/f64.wast
@@ -0,0 +1,206 @@
+(module
+ (memory 0 4294967295)
+ (import $fma "env" "fma" (param f64 f64 f64) (result f64))
+ (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 $$0 f64) (param $$1 f64) (result f64)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (f64.add
+ (get_local $$0)
+ (get_local $$1)
+ )
+ )
+ )
+ )
+ )
+ (func $fsub64 (param $$0 f64) (param $$1 f64) (result f64)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (f64.sub
+ (get_local $$0)
+ (get_local $$1)
+ )
+ )
+ )
+ )
+ )
+ (func $fmul64 (param $$0 f64) (param $$1 f64) (result f64)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (f64.mul
+ (get_local $$0)
+ (get_local $$1)
+ )
+ )
+ )
+ )
+ )
+ (func $fdiv64 (param $$0 f64) (param $$1 f64) (result f64)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (f64.div
+ (get_local $$0)
+ (get_local $$1)
+ )
+ )
+ )
+ )
+ )
+ (func $fabs64 (param $$0 f64) (result f64)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (f64.abs
+ (get_local $$0)
+ )
+ )
+ )
+ )
+ )
+ (func $fneg64 (param $$0 f64) (result f64)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i32.neg
+ (get_local $$0)
+ )
+ )
+ )
+ )
+ )
+ (func $copysign64 (param $$0 f64) (param $$1 f64) (result f64)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (f64.copysign
+ (get_local $$0)
+ (get_local $$1)
+ )
+ )
+ )
+ )
+ )
+ (func $sqrt64 (param $$0 f64) (result f64)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (f64.sqrt
+ (get_local $$0)
+ )
+ )
+ )
+ )
+ )
+ (func $ceil64 (param $$0 f64) (result f64)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (f64.ceil
+ (get_local $$0)
+ )
+ )
+ )
+ )
+ )
+ (func $floor64 (param $$0 f64) (result f64)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (f64.floor
+ (get_local $$0)
+ )
+ )
+ )
+ )
+ )
+ (func $trunc64 (param $$0 f64) (result f64)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (f64.trunc
+ (get_local $$0)
+ )
+ )
+ )
+ )
+ )
+ (func $nearest64 (param $$0 f64) (result f64)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i32.nearest
+ (get_local $$0)
+ )
+ )
+ )
+ )
+ )
+ (func $nearest64_via_rint (param $$0 f64) (result f64)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i32.nearest
+ (get_local $$0)
+ )
+ )
+ )
+ )
+ )
+ (func $fmin64 (param $$0 f64) (result f64)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (f64.min
+ (get_local $$0)
+ (f64.const 0)
+ )
+ )
+ )
+ )
+ )
+ (func $fmax64 (param $$0 f64) (result f64)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (f64.max
+ (get_local $$0)
+ (f64.const 0)
+ )
+ )
+ )
+ )
+ )
+ (func $fma64 (param $$0 f64) (param $$1 f64) (param $$2 f64) (result f64)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (call_import $fma
+ (get_local $$0)
+ (get_local $$1)
+ (get_local $$2)
+ )
+ )
+ )
+ )
+ )
+)
+;; METADATA: { "asmConsts": {},"staticBump": 0 }
diff --git a/test/llvm_autogenerated/fast-isel.wast b/test/llvm_autogenerated/fast-isel.wast
new file mode 100644
index 000000000..a172ea5e2
--- /dev/null
+++ b/test/llvm_autogenerated/fast-isel.wast
@@ -0,0 +1,24 @@
+(module
+ (memory 0 4294967295)
+ (export "immediate_f32" $immediate_f32)
+ (export "immediate_f64" $immediate_f64)
+ (func $immediate_f32 (result f32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (f32.const 2.5)
+ )
+ )
+ )
+ )
+ (func $immediate_f64 (result f64)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (f64.const 2.5)
+ )
+ )
+ )
+ )
+)
+;; METADATA: { "asmConsts": {},"staticBump": 0 }
diff --git a/test/llvm_autogenerated/frem.wast b/test/llvm_autogenerated/frem.wast
new file mode 100644
index 000000000..cd4369504
--- /dev/null
+++ b/test/llvm_autogenerated/frem.wast
@@ -0,0 +1,32 @@
+(module
+ (memory 0 4294967295)
+ (import $fmodf "env" "fmodf" (param f32 f32) (result f32))
+ (import $fmod "env" "fmod" (param f64 f64) (result f64))
+ (export "frem32" $frem32)
+ (export "frem64" $frem64)
+ (func $frem32 (param $$0 f32) (param $$1 f32) (result f32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (call_import $fmodf
+ (get_local $$0)
+ (get_local $$1)
+ )
+ )
+ )
+ )
+ )
+ (func $frem64 (param $$0 f64) (param $$1 f64) (result f64)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (call_import $fmod
+ (get_local $$0)
+ (get_local $$1)
+ )
+ )
+ )
+ )
+ )
+)
+;; METADATA: { "asmConsts": {},"staticBump": 0 }
diff --git a/test/llvm_autogenerated/func.wast b/test/llvm_autogenerated/func.wast
new file mode 100644
index 000000000..0506697be
--- /dev/null
+++ b/test/llvm_autogenerated/func.wast
@@ -0,0 +1,73 @@
+(module
+ (memory 0 4294967295)
+ (export "f0" $f0)
+ (export "f1" $f1)
+ (export "f2" $f2)
+ (export "f3" $f3)
+ (export "f4" $f4)
+ (export "f5" $f5)
+ (func $f0
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123)
+ )
+ )
+ )
+ (func $f1 (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i32.const 0)
+ )
+ )
+ )
+ )
+ (func $f2 (param $$0 i32) (param $$1 f32) (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i32.const 0)
+ )
+ )
+ )
+ )
+ (func $f3 (param $$0 i32) (param $$1 f32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123)
+ )
+ )
+ )
+ (func $f4 (param $$0 i32) (result i32)
+ (local $$1 i32)
+ (block $fake_return_waka123
+ (block
+ (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
+ )
+ (br $fake_return_waka123
+ (i32.const 0)
+ )
+ )
+ (br $fake_return_waka123
+ (get_local $$1)
+ )
+ )
+ )
+ )
+ (func $f5 (result f32)
+ (unreachable)
+ )
+)
+;; METADATA: { "asmConsts": {},"staticBump": 0 }
diff --git a/test/llvm_autogenerated/global.wast b/test/llvm_autogenerated/global.wast
new file mode 100644
index 000000000..09cf1a1a2
--- /dev/null
+++ b/test/llvm_autogenerated/global.wast
@@ -0,0 +1,32 @@
+(module
+ (memory 1184 4294967295 (segment 4 "9\05\00\00") (segment 20 "\01\00\00\00") (segment 24 "*\00\00\00") (segment 28 "\ff\ff\ff\ff") (segment 56 "\00\00\00\00\00\00\00\00") (segment 64 "\ff\ff\ff\ff\ff\ff\ff\ff") (segment 84 "\00\00\00\80") (segment 88 "\00\00\00@") (segment 120 "\00\00\00\00\00\00\00\00") (segment 128 "\00\00\00\00\00\00\00\00") (segment 656 "\e0\00\00\00"))
+ (import $memcpy "env" "memcpy" (param i32 i32 i32))
+ (export "foo" $foo)
+ (export "call_memcpy" $call_memcpy)
+ (func $foo (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i32.load offset=24 align=4
+ (i32.const 0)
+ )
+ )
+ )
+ )
+ )
+ (func $call_memcpy (param $$0 i32) (param $$1 i32) (param $$2 i32) (result i32)
+ (block $fake_return_waka123
+ (block
+ (call_import $memcpy
+ (get_local $$0)
+ (get_local $$1)
+ (get_local $$2)
+ )
+ (br $fake_return_waka123
+ (get_local $$0)
+ )
+ )
+ )
+ )
+)
+;; METADATA: { "asmConsts": {},"staticBump": 1183 }
diff --git a/test/llvm_autogenerated/globl.wast b/test/llvm_autogenerated/globl.wast
new file mode 100644
index 000000000..b36657b8f
--- /dev/null
+++ b/test/llvm_autogenerated/globl.wast
@@ -0,0 +1,12 @@
+(module
+ (memory 0 4294967295)
+ (export "foo" $foo)
+ (func $foo
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123)
+ )
+ )
+ )
+)
+;; METADATA: { "asmConsts": {},"staticBump": 0 }
diff --git a/test/llvm_autogenerated/i32.wast b/test/llvm_autogenerated/i32.wast
new file mode 100644
index 000000000..7466c5b6c
--- /dev/null
+++ b/test/llvm_autogenerated/i32.wast
@@ -0,0 +1,233 @@
+(module
+ (memory 0 4294967295)
+ (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 $$0 i32) (param $$1 i32) (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i32.add
+ (get_local $$0)
+ (get_local $$1)
+ )
+ )
+ )
+ )
+ )
+ (func $sub32 (param $$0 i32) (param $$1 i32) (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i32.sub
+ (get_local $$0)
+ (get_local $$1)
+ )
+ )
+ )
+ )
+ )
+ (func $mul32 (param $$0 i32) (param $$1 i32) (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i32.mul
+ (get_local $$0)
+ (get_local $$1)
+ )
+ )
+ )
+ )
+ )
+ (func $sdiv32 (param $$0 i32) (param $$1 i32) (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i32.div_s
+ (get_local $$0)
+ (get_local $$1)
+ )
+ )
+ )
+ )
+ )
+ (func $udiv32 (param $$0 i32) (param $$1 i32) (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i32.div_u
+ (get_local $$0)
+ (get_local $$1)
+ )
+ )
+ )
+ )
+ )
+ (func $srem32 (param $$0 i32) (param $$1 i32) (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i32.rem_s
+ (get_local $$0)
+ (get_local $$1)
+ )
+ )
+ )
+ )
+ )
+ (func $urem32 (param $$0 i32) (param $$1 i32) (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i32.rem_u
+ (get_local $$0)
+ (get_local $$1)
+ )
+ )
+ )
+ )
+ )
+ (func $and32 (param $$0 i32) (param $$1 i32) (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i32.and
+ (get_local $$0)
+ (get_local $$1)
+ )
+ )
+ )
+ )
+ )
+ (func $or32 (param $$0 i32) (param $$1 i32) (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i32.or
+ (get_local $$0)
+ (get_local $$1)
+ )
+ )
+ )
+ )
+ )
+ (func $xor32 (param $$0 i32) (param $$1 i32) (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i32.xor
+ (get_local $$0)
+ (get_local $$1)
+ )
+ )
+ )
+ )
+ )
+ (func $shl32 (param $$0 i32) (param $$1 i32) (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i32.shl
+ (get_local $$0)
+ (get_local $$1)
+ )
+ )
+ )
+ )
+ )
+ (func $shr32 (param $$0 i32) (param $$1 i32) (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i32.shr_u
+ (get_local $$0)
+ (get_local $$1)
+ )
+ )
+ )
+ )
+ )
+ (func $sar32 (param $$0 i32) (param $$1 i32) (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i32.shr_s
+ (get_local $$0)
+ (get_local $$1)
+ )
+ )
+ )
+ )
+ )
+ (func $clz32 (param $$0 i32) (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i32.clz
+ (get_local $$0)
+ )
+ )
+ )
+ )
+ )
+ (func $clz32_zero_undef (param $$0 i32) (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i32.clz
+ (get_local $$0)
+ )
+ )
+ )
+ )
+ )
+ (func $ctz32 (param $$0 i32) (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i32.ctz
+ (get_local $$0)
+ )
+ )
+ )
+ )
+ )
+ (func $ctz32_zero_undef (param $$0 i32) (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i32.ctz
+ (get_local $$0)
+ )
+ )
+ )
+ )
+ )
+ (func $popcnt32 (param $$0 i32) (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i32.popcnt
+ (get_local $$0)
+ )
+ )
+ )
+ )
+ )
+)
+;; METADATA: { "asmConsts": {},"staticBump": 0 }
diff --git a/test/llvm_autogenerated/i64.wast b/test/llvm_autogenerated/i64.wast
new file mode 100644
index 000000000..d193b2cb5
--- /dev/null
+++ b/test/llvm_autogenerated/i64.wast
@@ -0,0 +1,233 @@
+(module
+ (memory 0 4294967295)
+ (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 $$0 i64) (param $$1 i64) (result i64)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i64.add
+ (get_local $$0)
+ (get_local $$1)
+ )
+ )
+ )
+ )
+ )
+ (func $sub64 (param $$0 i64) (param $$1 i64) (result i64)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i64.sub
+ (get_local $$0)
+ (get_local $$1)
+ )
+ )
+ )
+ )
+ )
+ (func $mul64 (param $$0 i64) (param $$1 i64) (result i64)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i64.mul
+ (get_local $$0)
+ (get_local $$1)
+ )
+ )
+ )
+ )
+ )
+ (func $sdiv64 (param $$0 i64) (param $$1 i64) (result i64)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i64.div_s
+ (get_local $$0)
+ (get_local $$1)
+ )
+ )
+ )
+ )
+ )
+ (func $udiv64 (param $$0 i64) (param $$1 i64) (result i64)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i64.div_u
+ (get_local $$0)
+ (get_local $$1)
+ )
+ )
+ )
+ )
+ )
+ (func $srem64 (param $$0 i64) (param $$1 i64) (result i64)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i64.rem_s
+ (get_local $$0)
+ (get_local $$1)
+ )
+ )
+ )
+ )
+ )
+ (func $urem64 (param $$0 i64) (param $$1 i64) (result i64)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i64.rem_u
+ (get_local $$0)
+ (get_local $$1)
+ )
+ )
+ )
+ )
+ )
+ (func $and64 (param $$0 i64) (param $$1 i64) (result i64)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i64.and
+ (get_local $$0)
+ (get_local $$1)
+ )
+ )
+ )
+ )
+ )
+ (func $or64 (param $$0 i64) (param $$1 i64) (result i64)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i64.or
+ (get_local $$0)
+ (get_local $$1)
+ )
+ )
+ )
+ )
+ )
+ (func $xor64 (param $$0 i64) (param $$1 i64) (result i64)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i64.xor
+ (get_local $$0)
+ (get_local $$1)
+ )
+ )
+ )
+ )
+ )
+ (func $shl64 (param $$0 i64) (param $$1 i64) (result i64)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i64.shl
+ (get_local $$0)
+ (get_local $$1)
+ )
+ )
+ )
+ )
+ )
+ (func $shr64 (param $$0 i64) (param $$1 i64) (result i64)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i64.shr_u
+ (get_local $$0)
+ (get_local $$1)
+ )
+ )
+ )
+ )
+ )
+ (func $sar64 (param $$0 i64) (param $$1 i64) (result i64)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i64.shr_s
+ (get_local $$0)
+ (get_local $$1)
+ )
+ )
+ )
+ )
+ )
+ (func $clz64 (param $$0 i64) (result i64)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i64.clz
+ (get_local $$0)
+ )
+ )
+ )
+ )
+ )
+ (func $clz64_zero_undef (param $$0 i64) (result i64)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i64.clz
+ (get_local $$0)
+ )
+ )
+ )
+ )
+ )
+ (func $ctz64 (param $$0 i64) (result i64)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i64.ctz
+ (get_local $$0)
+ )
+ )
+ )
+ )
+ )
+ (func $ctz64_zero_undef (param $$0 i64) (result i64)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i64.ctz
+ (get_local $$0)
+ )
+ )
+ )
+ )
+ )
+ (func $popcnt64 (param $$0 i64) (result i64)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i64.popcnt
+ (get_local $$0)
+ )
+ )
+ )
+ )
+ )
+)
+;; METADATA: { "asmConsts": {},"staticBump": 0 }
diff --git a/test/llvm_autogenerated/ident.wast b/test/llvm_autogenerated/ident.wast
new file mode 100644
index 000000000..955ce11ea
--- /dev/null
+++ b/test/llvm_autogenerated/ident.wast
@@ -0,0 +1,4 @@
+(module
+ (memory 0 4294967295)
+)
+;; METADATA: { "asmConsts": {},"staticBump": 0 }
diff --git a/test/llvm_autogenerated/immediates.wast b/test/llvm_autogenerated/immediates.wast
new file mode 100644
index 000000000..257421fd9
--- /dev/null
+++ b/test/llvm_autogenerated/immediates.wast
@@ -0,0 +1,244 @@
+(module
+ (memory 0 4294967295)
+ (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)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i32.const 0)
+ )
+ )
+ )
+ )
+ (func $one_i32 (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i32.const 1)
+ )
+ )
+ )
+ )
+ (func $max_i32 (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i32.const 2147483647)
+ )
+ )
+ )
+ )
+ (func $min_i32 (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i32.const -2147483648)
+ )
+ )
+ )
+ )
+ (func $zero_i64 (result i64)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i64.const 0)
+ )
+ )
+ )
+ )
+ (func $one_i64 (result i64)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i64.const 1)
+ )
+ )
+ )
+ )
+ (func $max_i64 (result i64)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i64.const 9223372036854775807)
+ )
+ )
+ )
+ )
+ (func $min_i64 (result i64)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i64.const -9223372036854775808)
+ )
+ )
+ )
+ )
+ (func $negzero_f32 (result f32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (f32.const -0)
+ )
+ )
+ )
+ )
+ (func $zero_f32 (result f32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (f32.const 0)
+ )
+ )
+ )
+ )
+ (func $one_f32 (result f32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (f32.const 1)
+ )
+ )
+ )
+ )
+ (func $two_f32 (result f32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (f32.const 2)
+ )
+ )
+ )
+ )
+ (func $nan_f32 (result f32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (f32.const nan:7fc00000)
+ )
+ )
+ )
+ )
+ (func $negnan_f32 (result f32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (f32.const nan:ffc00000)
+ )
+ )
+ )
+ )
+ (func $inf_f32 (result f32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (f32.const inf)
+ )
+ )
+ )
+ )
+ (func $neginf_f32 (result f32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (f32.const -inf)
+ )
+ )
+ )
+ )
+ (func $negzero_f64 (result f64)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (f64.const -0)
+ )
+ )
+ )
+ )
+ (func $zero_f64 (result f64)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (f64.const 0)
+ )
+ )
+ )
+ )
+ (func $one_f64 (result f64)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (f64.const 1)
+ )
+ )
+ )
+ )
+ (func $two_f64 (result f64)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (f64.const 2)
+ )
+ )
+ )
+ )
+ (func $nan_f64 (result f64)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (f64.const nan:7ff8000000000000)
+ )
+ )
+ )
+ )
+ (func $negnan_f64 (result f64)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (f64.const nan:fff8000000000000)
+ )
+ )
+ )
+ )
+ (func $inf_f64 (result f64)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (f64.const inf)
+ )
+ )
+ )
+ )
+ (func $neginf_f64 (result f64)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (f64.const -inf)
+ )
+ )
+ )
+ )
+)
+;; METADATA: { "asmConsts": {},"staticBump": 0 }
diff --git a/test/llvm_autogenerated/inline-asm.s b/test/llvm_autogenerated/inline-asm.s
deleted file mode 100644
index 10a43371c..000000000
--- a/test/llvm_autogenerated/inline-asm.s
+++ /dev/null
@@ -1,103 +0,0 @@
- .text
- .file "/s/llvm/llvm/test/CodeGen/WebAssembly/inline-asm.ll"
- .globl foo
- .type foo,@function
-foo:
- .param i32
- .result i32
- #APP
- # $0 = aaa($0)
- #NO_APP
- return $0
-func_end0:
- .size foo, func_end0-foo
-
- .globl bar
- .type bar,@function
-bar:
- .param i32, i32
- #APP
- # 0($1) = bbb(0($0))
- #NO_APP
- return
-func_end1:
- .size bar, func_end1-bar
-
- .globl imm
- .type imm,@function
-imm:
- .result i32
- .local i32
- #APP
- # $0 = ccc(42)
- #NO_APP
- return $0
-func_end2:
- .size imm, func_end2-imm
-
- .globl foo_i64
- .type foo_i64,@function
-foo_i64:
- .param i64
- .result i64
- #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:
- .param i32
- .local i32
- #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:
- .param i32
- .local i32
- #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:
- #APP
- foo funcname
- #NO_APP
- return
-func_end6:
- .size funcname, func_end6-funcname
-
- .globl varname
- .type varname,@function
-varname:
- #APP
- foo gv+37
- #NO_APP
- return
-func_end7:
- .size varname, func_end7-varname
-
- .type gv,@object
- .bss
- .globl gv
-gv:
- .size gv, 0
-
-
- .section ".note.GNU-stack","",@progbits
diff --git a/test/llvm_autogenerated/legalize.wast b/test/llvm_autogenerated/legalize.wast
new file mode 100644
index 000000000..2127f8e99
--- /dev/null
+++ b/test/llvm_autogenerated/legalize.wast
@@ -0,0 +1,3975 @@
+(module
+ (memory 0 4294967295)
+ (import $__lshrti3 "env" "__lshrti3" (param i32 i64 i64 i64))
+ (import $__ashlti3 "env" "__ashlti3" (param i32 i64 i64 i64))
+ (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 $$0 i32) (param $$1 i32) (param $$2 i32) (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i32.shl
+ (get_local $$0)
+ (i32.and
+ (get_local $$1)
+ (i32.const 7)
+ )
+ )
+ )
+ )
+ )
+ )
+ (func $shl_i53 (param $$0 i64) (param $$1 i64) (param $$2 i32) (result i64)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i64.shl
+ (get_local $$0)
+ (i64.and
+ (get_local $$1)
+ (i64.const 9007199254740991)
+ )
+ )
+ )
+ )
+ )
+ )
+ (func $sext_in_reg_i32_i64 (param $$0 i64) (result i64)
+ (local $$1 i64)
+ (block $fake_return_waka123
+ (block
+ (set_local $$1
+ (i64.const 32)
+ )
+ (br $fake_return_waka123
+ (i64.shr_s
+ (i64.shl
+ (get_local $$0)
+ (get_local $$1)
+ )
+ (get_local $$1)
+ )
+ )
+ )
+ )
+ )
+ (func $fpext_f32_f64 (param $$0 i32) (result f64)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (f64.promote/f32
+ (f32.load align=4
+ (get_local $$0)
+ )
+ )
+ )
+ )
+ )
+ )
+ (func $fpconv_f64_f32 (param $$0 i32) (result f32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (f32.demote/f64
+ (f64.load align=8
+ (get_local $$0)
+ )
+ )
+ )
+ )
+ )
+ )
+ (func $bigshift (param $$0 i32) (param $$1 i64) (param $$2 i64) (param $$3 i64) (param $$4 i64) (param $$5 i64) (param $$6 i64) (param $$7 i64) (param $$8 i64) (param $$9 i64) (param $$10 i64) (param $$11 i64) (param $$12 i64) (param $$13 i64) (param $$14 i64) (param $$15 i64) (param $$16 i64) (param $$17 i64) (param $$18 i64) (param $$19 i64) (param $$20 i64) (param $$21 i64) (param $$22 i64) (param $$23 i64) (param $$24 i64) (param $$25 i64) (param $$26 i64) (param $$27 i64) (param $$28 i64) (param $$29 i64) (param $$30 i64) (param $$31 i64) (param $$32 i64)
+ (local $$33 i64)
+ (local $$34 i64)
+ (local $$35 i64)
+ (local $$36 i64)
+ (local $$37 i64)
+ (local $$38 i64)
+ (local $$39 i64)
+ (local $$40 i64)
+ (local $$41 i64)
+ (local $$42 i64)
+ (local $$43 i64)
+ (local $$44 i64)
+ (local $$45 i64)
+ (local $$46 i64)
+ (local $$47 i64)
+ (local $$48 i64)
+ (local $$49 i64)
+ (local $$50 i32)
+ (local $$51 i64)
+ (local $$52 i32)
+ (local $$53 i32)
+ (local $$54 i64)
+ (local $$55 i64)
+ (local $$56 i64)
+ (local $$57 i32)
+ (local $$58 i32)
+ (local $$59 i64)
+ (local $$60 i32)
+ (local $$61 i32)
+ (local $$62 i64)
+ (local $$63 i64)
+ (local $$64 i64)
+ (local $$65 i32)
+ (local $$66 i32)
+ (local $$67 i64)
+ (local $$68 i64)
+ (local $$69 i64)
+ (local $$70 i32)
+ (local $$71 i32)
+ (local $$72 i64)
+ (local $$73 i32)
+ (local $$74 i32)
+ (local $$75 i64)
+ (local $$76 i32)
+ (local $$77 i32)
+ (local $$78 i32)
+ (local $$79 i64)
+ (local $$80 i64)
+ (local $$81 i64)
+ (local $$82 i64)
+ (local $$83 i64)
+ (local $$84 i64)
+ (local $$85 i64)
+ (local $$86 i64)
+ (local $$87 i64)
+ (local $$88 i64)
+ (local $$89 i32)
+ (local $$90 i64)
+ (local $$91 i64)
+ (local $$92 i64)
+ (local $$93 i32)
+ (local $$94 i64)
+ (local $$95 i64)
+ (local $$96 i32)
+ (local $$97 i64)
+ (local $$98 i64)
+ (local $$99 i64)
+ (local $$100 i64)
+ (local $$101 i64)
+ (local $$102 i64)
+ (local $$103 i64)
+ (local $$104 i64)
+ (local $$105 i64)
+ (local $$106 i64)
+ (local $$107 i64)
+ (local $$108 i64)
+ (local $$109 i64)
+ (local $$110 i64)
+ (local $$111 i64)
+ (local $$112 i64)
+ (local $$113 i32)
+ (local $$114 i64)
+ (local $$115 i64)
+ (local $$116 i64)
+ (local $$117 i64)
+ (local $$118 i64)
+ (local $$119 i64)
+ (local $$120 i64)
+ (local $$121 i64)
+ (local $$122 i64)
+ (local $$123 i64)
+ (local $$124 i64)
+ (local $$125 i64)
+ (local $$126 i64)
+ (local $$127 i64)
+ (local $$128 i64)
+ (local $$129 i64)
+ (local $$130 i64)
+ (local $$131 i64)
+ (local $$132 i64)
+ (local $$133 i64)
+ (local $$134 i64)
+ (local $$135 i64)
+ (local $$136 i64)
+ (local $$137 i64)
+ (local $$138 i64)
+ (local $$139 i32)
+ (local $$140 i64)
+ (local $$141 i64)
+ (local $$142 i64)
+ (local $$143 i64)
+ (local $$144 i64)
+ (local $$145 i64)
+ (local $$146 i64)
+ (local $$147 i64)
+ (local $$148 i64)
+ (local $$149 i64)
+ (local $$150 i64)
+ (local $$151 i64)
+ (local $$152 i64)
+ (local $$153 i64)
+ (local $$154 i64)
+ (local $$155 i64)
+ (local $$156 i64)
+ (local $$157 i64)
+ (local $$158 i64)
+ (local $$159 i64)
+ (local $$160 i64)
+ (local $$161 i64)
+ (local $$162 i64)
+ (local $$163 i64)
+ (local $$164 i64)
+ (local $$165 i64)
+ (local $$166 i64)
+ (local $$167 i64)
+ (local $$168 i64)
+ (local $$169 i64)
+ (local $$170 i64)
+ (local $$171 i64)
+ (local $$172 i64)
+ (local $$173 i64)
+ (local $$174 i64)
+ (local $$175 i64)
+ (local $$176 i64)
+ (local $$177 i64)
+ (local $$178 i64)
+ (local $$179 i64)
+ (local $$180 i64)
+ (local $$181 i32)
+ (local $$182 i32)
+ (local $$183 i32)
+ (local $$184 i32)
+ (local $$185 i32)
+ (local $$186 i32)
+ (local $$187 i32)
+ (local $$188 i32)
+ (local $$189 i32)
+ (local $$190 i32)
+ (local $$191 i32)
+ (local $$192 i32)
+ (local $$193 i32)
+ (local $$194 i32)
+ (local $$195 i32)
+ (local $$196 i32)
+ (local $$197 i32)
+ (local $$198 i32)
+ (local $$199 i32)
+ (local $$200 i32)
+ (local $$201 i32)
+ (local $$202 i32)
+ (local $$203 i32)
+ (local $$204 i32)
+ (local $$205 i32)
+ (local $$206 i32)
+ (local $$207 i32)
+ (local $$208 i32)
+ (local $$209 i32)
+ (local $$210 i32)
+ (local $$211 i32)
+ (local $$212 i32)
+ (local $$213 i32)
+ (local $$214 i32)
+ (local $$215 i32)
+ (local $$216 i32)
+ (local $$217 i32)
+ (local $$218 i32)
+ (local $$219 i32)
+ (local $$220 i32)
+ (local $$221 i32)
+ (local $$222 i32)
+ (local $$223 i32)
+ (local $$224 i32)
+ (local $$225 i32)
+ (local $$226 i32)
+ (local $$227 i32)
+ (local $$228 i32)
+ (local $$229 i32)
+ (local $$230 i32)
+ (local $$231 i32)
+ (local $$232 i32)
+ (local $$233 i32)
+ (local $$234 i32)
+ (local $$235 i32)
+ (local $$236 i32)
+ (local $$237 i32)
+ (local $$238 i32)
+ (local $$239 i32)
+ (local $$240 i32)
+ (local $$241 i32)
+ (local $$242 i32)
+ (local $$243 i32)
+ (local $$244 i32)
+ (local $$245 i32)
+ (local $$246 i32)
+ (local $$247 i32)
+ (local $$248 i32)
+ (local $$249 i32)
+ (local $$250 i32)
+ (local $$251 i32)
+ (local $$252 i32)
+ (local $$253 i32)
+ (local $$254 i32)
+ (local $$255 i32)
+ (local $$256 i32)
+ (local $$257 i32)
+ (local $$258 i32)
+ (local $$259 i32)
+ (local $$260 i32)
+ (local $$261 i32)
+ (local $$262 i32)
+ (local $$263 i32)
+ (local $$264 i32)
+ (local $$265 i32)
+ (local $$266 i32)
+ (local $$267 i32)
+ (local $$268 i32)
+ (local $$269 i32)
+ (local $$270 i32)
+ (local $$271 i32)
+ (local $$272 i32)
+ (local $$273 i32)
+ (local $$274 i32)
+ (local $$275 i32)
+ (local $$276 i32)
+ (local $$277 i32)
+ (local $$278 i32)
+ (local $$279 i32)
+ (local $$280 i32)
+ (local $$281 i32)
+ (local $$282 i32)
+ (local $$283 i32)
+ (local $$284 i32)
+ (local $$285 i32)
+ (local $$286 i32)
+ (local $$287 i32)
+ (local $$288 i32)
+ (local $$289 i32)
+ (local $$290 i32)
+ (local $$291 i32)
+ (local $$292 i32)
+ (local $$293 i32)
+ (local $$294 i32)
+ (local $$295 i32)
+ (local $$296 i32)
+ (local $$297 i32)
+ (local $$298 i32)
+ (local $$299 i32)
+ (local $$300 i32)
+ (local $$301 i32)
+ (local $$302 i32)
+ (local $$303 i32)
+ (local $$304 i32)
+ (local $$305 i32)
+ (local $$306 i32)
+ (local $$307 i32)
+ (local $$308 i32)
+ (local $$309 i32)
+ (local $$310 i32)
+ (local $$311 i32)
+ (local $$312 i32)
+ (block $fake_return_waka123
+ (block
+ (set_local $$181
+ (i32.const 0)
+ )
+ (set_local $$181
+ (i32.load align=4
+ (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 0)
+ )
+ (set_local $$279
+ (i32.store align=4
+ (get_local $$182)
+ (get_local $$279)
+ )
+ )
+ (set_local $$184
+ (i32.const 480)
+ )
+ (set_local $$184
+ (i32.add
+ (get_local $$279)
+ (get_local $$184)
+ )
+ )
+ (call_import $__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_import $__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_import $__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_import $__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_import $__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_import $__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_import $__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_import $__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_import $__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_import $__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_import $__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_import $__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_import $__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_import $__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_import $__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_import $__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_import $__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_import $__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_import $__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_import $__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_import $__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_import $__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_import $__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_import $__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_import $__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_import $__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_import $__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_import $__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_import $__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_import $__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_import $__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_import $__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_import $__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_import $__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_import $__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_import $__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_import $__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_import $__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_import $__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_import $__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_import $__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_import $__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_import $__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_import $__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_import $__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_import $__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_import $__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_import $__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_import $__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_import $__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_import $__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_import $__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_import $__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_import $__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_import $__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_import $__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_import $__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_import $__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_import $__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_import $__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_import $__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_import $__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_import $__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_import $__ashlti3
+ (get_local $$247)
+ (get_local $$1)
+ (get_local $$2)
+ (get_local $$17)
+ )
+ (set_local $$78
+ (i32.const 8)
+ )
+ (set_local $$248
+ (i32.const 480)
+ )
+ (set_local $$248
+ (i32.add
+ (get_local $$279)
+ (get_local $$248)
+ )
+ )
+ (set_local $$39
+ (i64.load align=8
+ (i32.add
+ (get_local $$248)
+ (get_local $$78)
+ )
+ )
+ )
+ (set_local $$249
+ (i32.const 464)
+ )
+ (set_local $$249
+ (i32.add
+ (get_local $$279)
+ (get_local $$249)
+ )
+ )
+ (set_local $$43
+ (i64.load align=8
+ (i32.add
+ (get_local $$249)
+ (get_local $$78)
+ )
+ )
+ )
+ (set_local $$34
+ (i64.load offset=480 align=8
+ (get_local $$279)
+ )
+ )
+ (set_local $$49
+ (i64.load offset=464 align=8
+ (get_local $$279)
+ )
+ )
+ (set_local $$36
+ (i64.load offset=496 align=8
+ (get_local $$279)
+ )
+ )
+ (set_local $$250
+ (i32.const 496)
+ )
+ (set_local $$250
+ (i32.add
+ (get_local $$279)
+ (get_local $$250)
+ )
+ )
+ (set_local $$38
+ (i64.load align=8
+ (i32.add
+ (get_local $$250)
+ (get_local $$78)
+ )
+ )
+ )
+ (set_local $$50
+ (i64.lt_u
+ (get_local $$33)
+ (get_local $$42)
+ )
+ )
+ (set_local $$51
+ (i64.const 0)
+ )
+ (set_local $$52
+ (i64.eq
+ (get_local $$33)
+ (get_local $$51)
+ )
+ )
+ (set_local $$251
+ (i32.const 352)
+ )
+ (set_local $$251
+ (i32.add
+ (get_local $$279)
+ (get_local $$251)
+ )
+ )
+ (set_local $$33
+ (i64.load align=8
+ (i32.add
+ (get_local $$251)
+ (get_local $$78)
+ )
+ )
+ )
+ (set_local $$252
+ (i32.const 336)
+ )
+ (set_local $$252
+ (i32.add
+ (get_local $$279)
+ (get_local $$252)
+ )
+ )
+ (set_local $$41
+ (i64.load align=8
+ (i32.add
+ (get_local $$252)
+ (get_local $$78)
+ )
+ )
+ )
+ (set_local $$253
+ (i32.const 368)
+ )
+ (set_local $$253
+ (i32.add
+ (get_local $$279)
+ (get_local $$253)
+ )
+ )
+ (set_local $$79
+ (i64.load align=8
+ (i32.add
+ (get_local $$253)
+ (get_local $$78)
+ )
+ )
+ )
+ (set_local $$254
+ (i32.const 432)
+ )
+ (set_local $$254
+ (i32.add
+ (get_local $$279)
+ (get_local $$254)
+ )
+ )
+ (set_local $$80
+ (i64.load align=8
+ (i32.add
+ (get_local $$254)
+ (get_local $$78)
+ )
+ )
+ )
+ (set_local $$255
+ (i32.const 864)
+ )
+ (set_local $$255
+ (i32.add
+ (get_local $$279)
+ (get_local $$255)
+ )
+ )
+ (set_local $$81
+ (i64.load align=8
+ (i32.add
+ (get_local $$255)
+ (get_local $$78)
+ )
+ )
+ )
+ (set_local $$256
+ (i32.const 848)
+ )
+ (set_local $$256
+ (i32.add
+ (get_local $$279)
+ (get_local $$256)
+ )
+ )
+ (set_local $$82
+ (i64.load align=8
+ (i32.add
+ (get_local $$256)
+ (get_local $$78)
+ )
+ )
+ )
+ (set_local $$257
+ (i32.const 880)
+ )
+ (set_local $$257
+ (i32.add
+ (get_local $$279)
+ (get_local $$257)
+ )
+ )
+ (set_local $$83
+ (i64.load align=8
+ (i32.add
+ (get_local $$257)
+ (get_local $$78)
+ )
+ )
+ )
+ (set_local $$258
+ (i32.const 1008)
+ )
+ (set_local $$258
+ (i32.add
+ (get_local $$279)
+ (get_local $$258)
+ )
+ )
+ (set_local $$84
+ (i64.load align=8
+ (i32.add
+ (get_local $$258)
+ (get_local $$78)
+ )
+ )
+ )
+ (set_local $$259
+ (i32.const 960)
+ )
+ (set_local $$259
+ (i32.add
+ (get_local $$279)
+ (get_local $$259)
+ )
+ )
+ (set_local $$85
+ (i64.load align=8
+ (i32.add
+ (get_local $$259)
+ (get_local $$78)
+ )
+ )
+ )
+ (set_local $$260
+ (i32.const 976)
+ )
+ (set_local $$260
+ (i32.add
+ (get_local $$279)
+ (get_local $$260)
+ )
+ )
+ (set_local $$86
+ (i64.load align=8
+ (i32.add
+ (get_local $$260)
+ (get_local $$78)
+ )
+ )
+ )
+ (set_local $$261
+ (i32.const 816)
+ )
+ (set_local $$261
+ (i32.add
+ (get_local $$279)
+ (get_local $$261)
+ )
+ )
+ (set_local $$87
+ (i64.load align=8
+ (i32.add
+ (get_local $$261)
+ (get_local $$78)
+ )
+ )
+ )
+ (set_local $$262
+ (i32.const 240)
+ )
+ (set_local $$262
+ (i32.add
+ (get_local $$279)
+ (get_local $$262)
+ )
+ )
+ (set_local $$88
+ (i64.load align=8
+ (i32.add
+ (get_local $$262)
+ (get_local $$78)
+ )
+ )
+ )
+ (set_local $$263
+ (i32.const 912)
+ )
+ (set_local $$263
+ (i32.add
+ (get_local $$279)
+ (get_local $$263)
+ )
+ )
+ (set_local $$100
+ (i64.load align=8
+ (i32.add
+ (get_local $$263)
+ (get_local $$78)
+ )
+ )
+ )
+ (set_local $$264
+ (i32.const 928)
+ )
+ (set_local $$264
+ (i32.add
+ (get_local $$279)
+ (get_local $$264)
+ )
+ )
+ (set_local $$101
+ (i64.load align=8
+ (i32.add
+ (get_local $$264)
+ (get_local $$78)
+ )
+ )
+ )
+ (set_local $$265
+ (i32.const 944)
+ )
+ (set_local $$265
+ (i32.add
+ (get_local $$279)
+ (get_local $$265)
+ )
+ )
+ (set_local $$102
+ (i64.load align=8
+ (i32.add
+ (get_local $$265)
+ (get_local $$78)
+ )
+ )
+ )
+ (set_local $$266
+ (i32.const 80)
+ )
+ (set_local $$266
+ (i32.add
+ (get_local $$279)
+ (get_local $$266)
+ )
+ )
+ (set_local $$103
+ (i64.load align=8
+ (i32.add
+ (get_local $$266)
+ (get_local $$78)
+ )
+ )
+ )
+ (set_local $$267
+ (i32.const 96)
+ )
+ (set_local $$267
+ (i32.add
+ (get_local $$279)
+ (get_local $$267)
+ )
+ )
+ (set_local $$104
+ (i64.load align=8
+ (i32.add
+ (get_local $$267)
+ (get_local $$78)
+ )
+ )
+ )
+ (set_local $$90
+ (i64.load offset=80 align=8
+ (get_local $$279)
+ )
+ )
+ (set_local $$91
+ (i64.load offset=96 align=8
+ (get_local $$279)
+ )
+ )
+ (set_local $$92
+ (i64.load offset=112 align=8
+ (get_local $$279)
+ )
+ )
+ (set_local $$268
+ (i32.const 112)
+ )
+ (set_local $$268
+ (i32.add
+ (get_local $$279)
+ (get_local $$268)
+ )
+ )
+ (set_local $$105
+ (i64.load align=8
+ (i32.add
+ (get_local $$268)
+ (get_local $$78)
+ )
+ )
+ )
+ (set_local $$89
+ (i64.lt_u
+ (get_local $$48)
+ (get_local $$42)
+ )
+ )
+ (set_local $$93
+ (i64.eq
+ (get_local $$48)
+ (get_local $$51)
+ )
+ )
+ (set_local $$269
+ (i32.const 48)
+ )
+ (set_local $$269
+ (i32.add
+ (get_local $$279)
+ (get_local $$269)
+ )
+ )
+ (set_local $$48
+ (i64.load align=8
+ (i32.add
+ (get_local $$269)
+ (get_local $$78)
+ )
+ )
+ )
+ (set_local $$270
+ (i32.const 176)
+ )
+ (set_local $$270
+ (i32.add
+ (get_local $$279)
+ (get_local $$270)
+ )
+ )
+ (set_local $$106
+ (i64.load align=8
+ (i32.add
+ (get_local $$270)
+ (get_local $$78)
+ )
+ )
+ )
+ (set_local $$271
+ (i32.const 288)
+ )
+ (set_local $$271
+ (i32.add
+ (get_local $$279)
+ (get_local $$271)
+ )
+ )
+ (set_local $$107
+ (i64.load align=8
+ (i32.add
+ (get_local $$271)
+ (get_local $$78)
+ )
+ )
+ )
+ (set_local $$272
+ (i32.const 272)
+ )
+ (set_local $$272
+ (i32.add
+ (get_local $$279)
+ (get_local $$272)
+ )
+ )
+ (set_local $$108
+ (i64.load align=8
+ (i32.add
+ (get_local $$272)
+ (get_local $$78)
+ )
+ )
+ )
+ (set_local $$273
+ (i32.const 304)
+ )
+ (set_local $$273
+ (i32.add
+ (get_local $$279)
+ (get_local $$273)
+ )
+ )
+ (set_local $$109
+ (i64.load align=8
+ (i32.add
+ (get_local $$273)
+ (get_local $$78)
+ )
+ )
+ )
+ (set_local $$274
+ (i32.const 128)
+ )
+ (set_local $$274
+ (i32.add
+ (get_local $$279)
+ (get_local $$274)
+ )
+ )
+ (set_local $$119
+ (i64.load align=8
+ (i32.add
+ (get_local $$274)
+ (get_local $$78)
+ )
+ )
+ )
+ (set_local $$275
+ (i32.const 144)
+ )
+ (set_local $$275
+ (i32.add
+ (get_local $$279)
+ (get_local $$275)
+ )
+ )
+ (set_local $$120
+ (i64.load align=8
+ (i32.add
+ (get_local $$275)
+ (get_local $$78)
+ )
+ )
+ )
+ (set_local $$276
+ (i32.const 160)
+ )
+ (set_local $$276
+ (i32.add
+ (get_local $$279)
+ (get_local $$276)
+ )
+ )
+ (set_local $$121
+ (i64.load align=8
+ (i32.add
+ (get_local $$276)
+ (get_local $$78)
+ )
+ )
+ )
+ (set_local $$277
+ (i32.const 0)
+ )
+ (set_local $$277
+ (i32.add
+ (get_local $$279)
+ (get_local $$277)
+ )
+ )
+ (set_local $$122
+ (i64.load align=8
+ (i32.add
+ (get_local $$277)
+ (get_local $$78)
+ )
+ )
+ )
+ (set_local $$278
+ (i32.const 16)
+ )
+ (set_local $$278
+ (i32.add
+ (get_local $$279)
+ (get_local $$278)
+ )
+ )
+ (set_local $$123
+ (i64.load align=8
+ (i32.add
+ (get_local $$278)
+ (get_local $$78)
+ )
+ )
+ )
+ (set_local $$117
+ (i64.load offset=64 align=8
+ (get_local $$279)
+ )
+ )
+ (set_local $$279
+ (i32.const 64)
+ )
+ (set_local $$279
+ (i32.add
+ (get_local $$279)
+ (get_local $$279)
+ )
+ )
+ (set_local $$125
+ (i64.load align=8
+ (i32.add
+ (get_local $$279)
+ (get_local $$78)
+ )
+ )
+ )
+ (set_local $$280
+ (i32.const 32)
+ )
+ (set_local $$280
+ (i32.add
+ (get_local $$279)
+ (get_local $$280)
+ )
+ )
+ (set_local $$124
+ (i64.load align=8
+ (i32.add
+ (get_local $$280)
+ (get_local $$78)
+ )
+ )
+ )
+ (set_local $$281
+ (i32.const 896)
+ )
+ (set_local $$281
+ (i32.add
+ (get_local $$279)
+ (get_local $$281)
+ )
+ )
+ (set_local $$126
+ (i64.load align=8
+ (i32.add
+ (get_local $$281)
+ (get_local $$78)
+ )
+ )
+ )
+ (set_local $$282
+ (i32.const 256)
+ )
+ (set_local $$282
+ (i32.add
+ (get_local $$279)
+ (get_local $$282)
+ )
+ )
+ (set_local $$127
+ (i64.load align=8
+ (i32.add
+ (get_local $$282)
+ (get_local $$78)
+ )
+ )
+ )
+ (set_local $$283
+ (i32.const 192)
+ )
+ (set_local $$283
+ (i32.add
+ (get_local $$279)
+ (get_local $$283)
+ )
+ )
+ (set_local $$142
+ (i64.load align=8
+ (i32.add
+ (get_local $$283)
+ (get_local $$78)
+ )
+ )
+ )
+ (set_local $$284
+ (i32.const 208)
+ )
+ (set_local $$284
+ (i32.add
+ (get_local $$279)
+ (get_local $$284)
+ )
+ )
+ (set_local $$143
+ (i64.load align=8
+ (i32.add
+ (get_local $$284)
+ (get_local $$78)
+ )
+ )
+ )
+ (set_local $$114
+ (i64.load align=8
+ (get_local $$279)
+ )
+ )
+ (set_local $$115
+ (i64.load offset=16 align=8
+ (get_local $$279)
+ )
+ )
+ (set_local $$116
+ (i64.load offset=32 align=8
+ (get_local $$279)
+ )
+ )
+ (set_local $$285
+ (i32.const 224)
+ )
+ (set_local $$285
+ (i32.add
+ (get_local $$279)
+ (get_local $$285)
+ )
+ )
+ (set_local $$144
+ (i64.load align=8
+ (i32.add
+ (get_local $$285)
+ (get_local $$78)
+ )
+ )
+ )
+ (set_local $$74
+ (i64.lt_u
+ (get_local $$47)
+ (get_local $$42)
+ )
+ )
+ (set_local $$128
+ (i64.load offset=192 align=8
+ (get_local $$279)
+ )
+ )
+ (set_local $$129
+ (i64.load offset=208 align=8
+ (get_local $$279)
+ )
+ )
+ (set_local $$130
+ (i64.load offset=224 align=8
+ (get_local $$279)
+ )
+ )
+ (set_local $$75
+ (i64.load offset=240 align=8
+ (get_local $$279)
+ )
+ )
+ (set_local $$94
+ (i64.load offset=48 align=8
+ (get_local $$279)
+ )
+ )
+ (set_local $$95
+ (i64.load offset=176 align=8
+ (get_local $$279)
+ )
+ )
+ (set_local $$71
+ (i64.lt_u
+ (get_local $$45)
+ (get_local $$42)
+ )
+ )
+ (set_local $$76
+ (i64.lt_u
+ (get_local $$47)
+ (get_local $$44)
+ )
+ )
+ (set_local $$110
+ (i64.load offset=128 align=8
+ (get_local $$279)
+ )
+ )
+ (set_local $$111
+ (i64.load offset=144 align=8
+ (get_local $$279)
+ )
+ )
+ (set_local $$112
+ (i64.load offset=160 align=8
+ (get_local $$279)
+ )
+ )
+ (set_local $$96
+ (i64.eq
+ (get_local $$47)
+ (get_local $$51)
+ )
+ )
+ (set_local $$113
+ (i64.eq
+ (get_local $$45)
+ (get_local $$51)
+ )
+ )
+ (set_local $$286
+ (i32.const 768)
+ )
+ (set_local $$286
+ (i32.add
+ (get_local $$279)
+ (get_local $$286)
+ )
+ )
+ (set_local $$47
+ (i64.load align=8
+ (i32.add
+ (get_local $$286)
+ (get_local $$78)
+ )
+ )
+ )
+ (set_local $$287
+ (i32.const 784)
+ )
+ (set_local $$287
+ (i32.add
+ (get_local $$279)
+ (get_local $$287)
+ )
+ )
+ (set_local $$45
+ (i64.load align=8
+ (i32.add
+ (get_local $$287)
+ (get_local $$78)
+ )
+ )
+ )
+ (set_local $$288
+ (i32.const 800)
+ )
+ (set_local $$288
+ (i32.add
+ (get_local $$279)
+ (get_local $$288)
+ )
+ )
+ (set_local $$145
+ (i64.load align=8
+ (i32.add
+ (get_local $$288)
+ (get_local $$78)
+ )
+ )
+ )
+ (set_local $$289
+ (i32.const 992)
+ )
+ (set_local $$289
+ (i32.add
+ (get_local $$279)
+ (get_local $$289)
+ )
+ )
+ (set_local $$146
+ (i64.load align=8
+ (i32.add
+ (get_local $$289)
+ (get_local $$78)
+ )
+ )
+ )
+ (set_local $$290
+ (i32.const 832)
+ )
+ (set_local $$290
+ (i32.add
+ (get_local $$279)
+ (get_local $$290)
+ )
+ )
+ (set_local $$147
+ (i64.load align=8
+ (i32.add
+ (get_local $$290)
+ (get_local $$78)
+ )
+ )
+ )
+ (set_local $$291
+ (i32.const 384)
+ )
+ (set_local $$291
+ (i32.add
+ (get_local $$279)
+ (get_local $$291)
+ )
+ )
+ (set_local $$148
+ (i64.load align=8
+ (i32.add
+ (get_local $$291)
+ (get_local $$78)
+ )
+ )
+ )
+ (set_local $$292
+ (i32.const 400)
+ )
+ (set_local $$292
+ (i32.add
+ (get_local $$279)
+ (get_local $$292)
+ )
+ )
+ (set_local $$149
+ (i64.load align=8
+ (i32.add
+ (get_local $$292)
+ (get_local $$78)
+ )
+ )
+ )
+ (set_local $$136
+ (i64.load offset=384 align=8
+ (get_local $$279)
+ )
+ )
+ (set_local $$137
+ (i64.load offset=400 align=8
+ (get_local $$279)
+ )
+ )
+ (set_local $$293
+ (i32.const 416)
+ )
+ (set_local $$293
+ (i32.add
+ (get_local $$279)
+ (get_local $$293)
+ )
+ )
+ (set_local $$150
+ (i64.load align=8
+ (i32.add
+ (get_local $$293)
+ (get_local $$78)
+ )
+ )
+ )
+ (set_local $$138
+ (i64.load offset=416 align=8
+ (get_local $$279)
+ )
+ )
+ (set_local $$59
+ (i64.load offset=432 align=8
+ (get_local $$279)
+ )
+ )
+ (set_local $$58
+ (i64.lt_u
+ (get_local $$37)
+ (get_local $$42)
+ )
+ )
+ (set_local $$139
+ (i64.eq
+ (get_local $$37)
+ (get_local $$51)
+ )
+ )
+ (set_local $$294
+ (i32.const 320)
+ )
+ (set_local $$294
+ (i32.add
+ (get_local $$279)
+ (get_local $$294)
+ )
+ )
+ (set_local $$37
+ (i64.load align=8
+ (i32.add
+ (get_local $$294)
+ (get_local $$78)
+ )
+ )
+ )
+ (set_local $$54
+ (i64.load offset=352 align=8
+ (get_local $$279)
+ )
+ )
+ (set_local $$55
+ (i64.load offset=336 align=8
+ (get_local $$279)
+ )
+ )
+ (set_local $$56
+ (i64.load offset=368 align=8
+ (get_local $$279)
+ )
+ )
+ (set_local $$295
+ (i32.const 448)
+ )
+ (set_local $$295
+ (i32.add
+ (get_local $$279)
+ (get_local $$295)
+ )
+ )
+ (set_local $$151
+ (i64.load align=8
+ (i32.add
+ (get_local $$295)
+ (get_local $$78)
+ )
+ )
+ )
+ (set_local $$53
+ (i64.lt_u
+ (get_local $$35)
+ (get_local $$42)
+ )
+ )
+ (set_local $$97
+ (i64.load offset=288 align=8
+ (get_local $$279)
+ )
+ )
+ (set_local $$98
+ (i64.load offset=272 align=8
+ (get_local $$279)
+ )
+ )
+ (set_local $$99
+ (i64.load offset=304 align=8
+ (get_local $$279)
+ )
+ )
+ (set_local $$118
+ (i64.load offset=256 align=8
+ (get_local $$279)
+ )
+ )
+ (set_local $$140
+ (i64.load offset=320 align=8
+ (get_local $$279)
+ )
+ )
+ (set_local $$141
+ (i64.load offset=448 align=8
+ (get_local $$279)
+ )
+ )
+ (set_local $$57
+ (i64.eq
+ (get_local $$35)
+ (get_local $$51)
+ )
+ )
+ (set_local $$60
+ (i64.lt_u
+ (get_local $$35)
+ (get_local $$44)
+ )
+ )
+ (set_local $$296
+ (i32.const 736)
+ )
+ (set_local $$296
+ (i32.add
+ (get_local $$279)
+ (get_local $$296)
+ )
+ )
+ (set_local $$35
+ (i64.load align=8
+ (i32.add
+ (get_local $$296)
+ (get_local $$78)
+ )
+ )
+ )
+ (set_local $$297
+ (i32.const 720)
+ )
+ (set_local $$297
+ (i32.add
+ (get_local $$279)
+ (get_local $$297)
+ )
+ )
+ (set_local $$159
+ (i64.load align=8
+ (i32.add
+ (get_local $$297)
+ (get_local $$78)
+ )
+ )
+ )
+ (set_local $$62
+ (i64.load offset=864 align=8
+ (get_local $$279)
+ )
+ )
+ (set_local $$63
+ (i64.load offset=848 align=8
+ (get_local $$279)
+ )
+ )
+ (set_local $$64
+ (i64.load offset=880 align=8
+ (get_local $$279)
+ )
+ )
+ (set_local $$298
+ (i32.const 752)
+ )
+ (set_local $$298
+ (i32.add
+ (get_local $$279)
+ (get_local $$298)
+ )
+ )
+ (set_local $$160
+ (i64.load align=8
+ (i32.add
+ (get_local $$298)
+ (get_local $$78)
+ )
+ )
+ )
+ (set_local $$61
+ (i64.lt_u
+ (get_local $$40)
+ (get_local $$42)
+ )
+ )
+ (set_local $$152
+ (i64.load offset=736 align=8
+ (get_local $$279)
+ )
+ )
+ (set_local $$153
+ (i64.load offset=720 align=8
+ (get_local $$279)
+ )
+ )
+ (set_local $$154
+ (i64.load offset=752 align=8
+ (get_local $$279)
+ )
+ )
+ (set_local $$65
+ (i64.eq
+ (get_local $$40)
+ (get_local $$51)
+ )
+ )
+ (set_local $$299
+ (i32.const 592)
+ )
+ (set_local $$299
+ (i32.add
+ (get_local $$279)
+ (get_local $$299)
+ )
+ )
+ (set_local $$40
+ (i64.load align=8
+ (i32.add
+ (get_local $$299)
+ (get_local $$78)
+ )
+ )
+ )
+ (set_local $$300
+ (i32.const 608)
+ )
+ (set_local $$300
+ (i32.add
+ (get_local $$279)
+ (get_local $$300)
+ )
+ )
+ (set_local $$161
+ (i64.load align=8
+ (i32.add
+ (get_local $$300)
+ (get_local $$78)
+ )
+ )
+ )
+ (set_local $$301
+ (i32.const 624)
+ )
+ (set_local $$301
+ (i32.add
+ (get_local $$279)
+ (get_local $$301)
+ )
+ )
+ (set_local $$162
+ (i64.load align=8
+ (i32.add
+ (get_local $$301)
+ (get_local $$78)
+ )
+ )
+ )
+ (set_local $$302
+ (i32.const 688)
+ )
+ (set_local $$302
+ (i32.add
+ (get_local $$279)
+ (get_local $$302)
+ )
+ )
+ (set_local $$163
+ (i64.load align=8
+ (i32.add
+ (get_local $$302)
+ (get_local $$78)
+ )
+ )
+ )
+ (set_local $$303
+ (i32.const 640)
+ )
+ (set_local $$303
+ (i32.add
+ (get_local $$279)
+ (get_local $$303)
+ )
+ )
+ (set_local $$169
+ (i64.load align=8
+ (i32.add
+ (get_local $$303)
+ (get_local $$78)
+ )
+ )
+ )
+ (set_local $$304
+ (i32.const 656)
+ )
+ (set_local $$304
+ (i32.add
+ (get_local $$279)
+ (get_local $$304)
+ )
+ )
+ (set_local $$170
+ (i64.load align=8
+ (i32.add
+ (get_local $$304)
+ (get_local $$78)
+ )
+ )
+ )
+ (set_local $$131
+ (i64.load offset=768 align=8
+ (get_local $$279)
+ )
+ )
+ (set_local $$132
+ (i64.load offset=784 align=8
+ (get_local $$279)
+ )
+ )
+ (set_local $$133
+ (i64.load offset=800 align=8
+ (get_local $$279)
+ )
+ )
+ (set_local $$305
+ (i32.const 672)
+ )
+ (set_local $$305
+ (i32.add
+ (get_local $$279)
+ (get_local $$305)
+ )
+ )
+ (set_local $$171
+ (i64.load align=8
+ (i32.add
+ (get_local $$305)
+ (get_local $$78)
+ )
+ )
+ )
+ (set_local $$164
+ (i64.load offset=640 align=8
+ (get_local $$279)
+ )
+ )
+ (set_local $$165
+ (i64.load offset=656 align=8
+ (get_local $$279)
+ )
+ )
+ (set_local $$166
+ (i64.load offset=672 align=8
+ (get_local $$279)
+ )
+ )
+ (set_local $$72
+ (i64.load offset=816 align=8
+ (get_local $$279)
+ )
+ )
+ (set_local $$158
+ (i64.load offset=688 align=8
+ (get_local $$279)
+ )
+ )
+ (set_local $$306
+ (i32.const 576)
+ )
+ (set_local $$306
+ (i32.add
+ (get_local $$279)
+ (get_local $$306)
+ )
+ )
+ (set_local $$172
+ (i64.load align=8
+ (i32.add
+ (get_local $$306)
+ (get_local $$78)
+ )
+ )
+ )
+ (set_local $$135
+ (i64.load offset=832 align=8
+ (get_local $$279)
+ )
+ )
+ (set_local $$168
+ (i64.load offset=704 align=8
+ (get_local $$279)
+ )
+ )
+ (set_local $$307
+ (i32.const 704)
+ )
+ (set_local $$307
+ (i32.add
+ (get_local $$279)
+ (get_local $$307)
+ )
+ )
+ (set_local $$173
+ (i64.load align=8
+ (i32.add
+ (get_local $$307)
+ (get_local $$78)
+ )
+ )
+ )
+ (set_local $$308
+ (i32.const 528)
+ )
+ (set_local $$308
+ (i32.add
+ (get_local $$279)
+ (get_local $$308)
+ )
+ )
+ (set_local $$177
+ (i64.load align=8
+ (i32.add
+ (get_local $$308)
+ (get_local $$78)
+ )
+ )
+ )
+ (set_local $$309
+ (i32.const 544)
+ )
+ (set_local $$309
+ (i32.add
+ (get_local $$279)
+ (get_local $$309)
+ )
+ )
+ (set_local $$178
+ (i64.load align=8
+ (i32.add
+ (get_local $$309)
+ (get_local $$78)
+ )
+ )
+ )
+ (set_local $$310
+ (i32.const 560)
+ )
+ (set_local $$310
+ (i32.add
+ (get_local $$279)
+ (get_local $$310)
+ )
+ )
+ (set_local $$179
+ (i64.load align=8
+ (i32.add
+ (get_local $$310)
+ (get_local $$78)
+ )
+ )
+ )
+ (set_local $$67
+ (i64.load offset=1008 align=8
+ (get_local $$279)
+ )
+ )
+ (set_local $$68
+ (i64.load offset=960 align=8
+ (get_local $$279)
+ )
+ )
+ (set_local $$69
+ (i64.load offset=976 align=8
+ (get_local $$279)
+ )
+ )
+ (set_local $$66
+ (i64.lt_u
+ (get_local $$17)
+ (get_local $$42)
+ )
+ )
+ (set_local $$70
+ (i64.eq
+ (get_local $$17)
+ (get_local $$51)
+ )
+ )
+ (set_local $$73
+ (i64.lt_u
+ (get_local $$17)
+ (get_local $$44)
+ )
+ )
+ (set_local $$77
+ (i64.lt_u
+ (get_local $$17)
+ (get_local $$46)
+ )
+ )
+ (set_local $$17
+ (i64.load offset=912 align=8
+ (get_local $$279)
+ )
+ )
+ (set_local $$42
+ (i64.load offset=928 align=8
+ (get_local $$279)
+ )
+ )
+ (set_local $$44
+ (i64.load offset=944 align=8
+ (get_local $$279)
+ )
+ )
+ (set_local $$46
+ (i64.load offset=896 align=8
+ (get_local $$279)
+ )
+ )
+ (set_local $$134
+ (i64.load offset=992 align=8
+ (get_local $$279)
+ )
+ )
+ (set_local $$155
+ (i64.load offset=592 align=8
+ (get_local $$279)
+ )
+ )
+ (set_local $$156
+ (i64.load offset=608 align=8
+ (get_local $$279)
+ )
+ )
+ (set_local $$157
+ (i64.load offset=624 align=8
+ (get_local $$279)
+ )
+ )
+ (set_local $$167
+ (i64.load offset=576 align=8
+ (get_local $$279)
+ )
+ )
+ (set_local $$174
+ (i64.load offset=528 align=8
+ (get_local $$279)
+ )
+ )
+ (set_local $$175
+ (i64.load offset=544 align=8
+ (get_local $$279)
+ )
+ )
+ (set_local $$176
+ (i64.load offset=560 align=8
+ (get_local $$279)
+ )
+ )
+ (set_local $$180
+ (i64.load offset=512 align=8
+ (get_local $$279)
+ )
+ )
+ (set_local $$311
+ (i32.const 512)
+ )
+ (set_local $$311
+ (i32.add
+ (get_local $$279)
+ (get_local $$311)
+ )
+ )
+ (i64.store align=8
+ (i32.add
+ (get_local $$0)
+ (get_local $$78)
+ )
+ (i64.select
+ (get_local $$77)
+ (i64.select
+ (get_local $$73)
+ (i64.select
+ (get_local $$66)
+ (i64.load align=8
+ (i32.add
+ (get_local $$311)
+ (get_local $$78)
+ )
+ )
+ (get_local $$51)
+ )
+ (get_local $$51)
+ )
+ (get_local $$51)
+ )
+ )
+ (i64.store align=8
+ (get_local $$0)
+ (i64.select
+ (get_local $$77)
+ (i64.select
+ (get_local $$73)
+ (i64.select
+ (get_local $$66)
+ (get_local $$180)
+ (get_local $$51)
+ )
+ (get_local $$51)
+ )
+ (get_local $$51)
+ )
+ )
+ (i64.store align=8
+ (i32.add
+ (get_local $$0)
+ (i32.const 24)
+ )
+ (i64.select
+ (get_local $$77)
+ (i64.select
+ (get_local $$73)
+ (i64.select
+ (get_local $$70)
+ (get_local $$4)
+ (i64.select
+ (get_local $$66)
+ (i64.or
+ (get_local $$177)
+ (get_local $$178)
+ )
+ (get_local $$179)
+ )
+ )
+ (get_local $$51)
+ )
+ (get_local $$51)
+ )
+ )
+ (i64.store align=8
+ (i32.add
+ (get_local $$0)
+ (i32.const 16)
+ )
+ (i64.select
+ (get_local $$77)
+ (i64.select
+ (get_local $$73)
+ (i64.select
+ (get_local $$70)
+ (get_local $$3)
+ (i64.select
+ (get_local $$66)
+ (i64.or
+ (get_local $$174)
+ (get_local $$175)
+ )
+ (get_local $$176)
+ )
+ )
+ (get_local $$51)
+ )
+ (get_local $$51)
+ )
+ )
+ (i64.store align=8
+ (i32.add
+ (get_local $$0)
+ (i32.const 56)
+ )
+ (i64.select
+ (get_local $$77)
+ (i64.select
+ (get_local $$70)
+ (get_local $$8)
+ (i64.select
+ (get_local $$73)
+ (i64.or
+ (i64.select
+ (get_local $$70)
+ (get_local $$8)
+ (i64.select
+ (get_local $$66)
+ (i64.or
+ (get_local $$40)
+ (get_local $$161)
+ )
+ (get_local $$162)
+ )
+ )
+ (i64.select
+ (get_local $$71)
+ (get_local $$163)
+ (get_local $$51)
+ )
+ )
+ (i64.select
+ (get_local $$65)
+ (get_local $$4)
+ (i64.select
+ (get_local $$61)
+ (i64.or
+ (get_local $$159)
+ (get_local $$35)
+ )
+ (get_local $$160)
+ )
+ )
+ )
+ )
+ (get_local $$51)
+ )
+ )
+ (i64.store align=8
+ (i32.add
+ (get_local $$0)
+ (i32.const 48)
+ )
+ (i64.select
+ (get_local $$77)
+ (i64.select
+ (get_local $$70)
+ (get_local $$7)
+ (i64.select
+ (get_local $$73)
+ (i64.or
+ (i64.select
+ (get_local $$70)
+ (get_local $$7)
+ (i64.select
+ (get_local $$66)
+ (i64.or
+ (get_local $$155)
+ (get_local $$156)
+ )
+ (get_local $$157)
+ )
+ )
+ (i64.select
+ (get_local $$71)
+ (get_local $$158)
+ (get_local $$51)
+ )
+ )
+ (i64.select
+ (get_local $$65)
+ (get_local $$3)
+ (i64.select
+ (get_local $$61)
+ (i64.or
+ (get_local $$153)
+ (get_local $$152)
+ )
+ (get_local $$154)
+ )
+ )
+ )
+ )
+ (get_local $$51)
+ )
+ )
+ (i64.store align=8
+ (i32.add
+ (get_local $$0)
+ (i32.const 40)
+ )
+ (i64.select
+ (get_local $$77)
+ (i64.select
+ (get_local $$70)
+ (get_local $$6)
+ (i64.select
+ (get_local $$73)
+ (i64.or
+ (i64.select
+ (get_local $$66)
+ (get_local $$172)
+ (get_local $$51)
+ )
+ (i64.select
+ (get_local $$113)
+ (get_local $$2)
+ (i64.select
+ (get_local $$71)
+ (i64.or
+ (get_local $$169)
+ (get_local $$170)
+ )
+ (get_local $$171)
+ )
+ )
+ )
+ (i64.select
+ (get_local $$61)
+ (get_local $$173)
+ (get_local $$51)
+ )
+ )
+ )
+ (get_local $$51)
+ )
+ )
+ (i64.store align=8
+ (i32.add
+ (get_local $$0)
+ (i32.const 32)
+ )
+ (i64.select
+ (get_local $$77)
+ (i64.select
+ (get_local $$70)
+ (get_local $$5)
+ (i64.select
+ (get_local $$73)
+ (i64.or
+ (i64.select
+ (get_local $$66)
+ (get_local $$167)
+ (get_local $$51)
+ )
+ (i64.select
+ (get_local $$113)
+ (get_local $$1)
+ (i64.select
+ (get_local $$71)
+ (i64.or
+ (get_local $$164)
+ (get_local $$165)
+ )
+ (get_local $$166)
+ )
+ )
+ )
+ (i64.select
+ (get_local $$61)
+ (get_local $$168)
+ (get_local $$51)
+ )
+ )
+ )
+ (get_local $$51)
+ )
+ )
+ (i64.store align=8
+ (i32.add
+ (get_local $$0)
+ (i32.const 120)
+ )
+ (i64.select
+ (get_local $$70)
+ (get_local $$16)
+ (i64.select
+ (get_local $$77)
+ (i64.or
+ (i64.select
+ (get_local $$70)
+ (get_local $$16)
+ (i64.select
+ (get_local $$73)
+ (i64.or
+ (i64.select
+ (get_local $$70)
+ (get_local $$16)
+ (i64.select
+ (get_local $$66)
+ (i64.or
+ (get_local $$84)
+ (get_local $$85)
+ )
+ (get_local $$86)
+ )
+ )
+ (i64.select
+ (get_local $$71)
+ (get_local $$87)
+ (get_local $$51)
+ )
+ )
+ (i64.select
+ (get_local $$65)
+ (get_local $$12)
+ (i64.select
+ (get_local $$61)
+ (i64.or
+ (get_local $$82)
+ (get_local $$81)
+ )
+ (get_local $$83)
+ )
+ )
+ )
+ )
+ (i64.select
+ (get_local $$76)
+ (i64.select
+ (get_local $$74)
+ (get_local $$88)
+ (get_local $$51)
+ )
+ (get_local $$51)
+ )
+ )
+ (i64.select
+ (get_local $$57)
+ (get_local $$8)
+ (i64.select
+ (get_local $$60)
+ (i64.or
+ (i64.select
+ (get_local $$57)
+ (get_local $$8)
+ (i64.select
+ (get_local $$53)
+ (i64.or
+ (get_local $$41)
+ (get_local $$33)
+ )
+ (get_local $$79)
+ )
+ )
+ (i64.select
+ (get_local $$58)
+ (get_local $$80)
+ (get_local $$51)
+ )
+ )
+ (i64.select
+ (get_local $$52)
+ (get_local $$4)
+ (i64.select
+ (get_local $$50)
+ (i64.or
+ (get_local $$43)
+ (get_local $$39)
+ )
+ (get_local $$38)
+ )
+ )
+ )
+ )
+ )
+ )
+ )
+ (i64.store align=8
+ (i32.add
+ (get_local $$0)
+ (i32.const 112)
+ )
+ (i64.select
+ (get_local $$70)
+ (get_local $$15)
+ (i64.select
+ (get_local $$77)
+ (i64.or
+ (i64.select
+ (get_local $$70)
+ (get_local $$15)
+ (i64.select
+ (get_local $$73)
+ (i64.or
+ (i64.select
+ (get_local $$70)
+ (get_local $$15)
+ (i64.select
+ (get_local $$66)
+ (i64.or
+ (get_local $$67)
+ (get_local $$68)
+ )
+ (get_local $$69)
+ )
+ )
+ (i64.select
+ (get_local $$71)
+ (get_local $$72)
+ (get_local $$51)
+ )
+ )
+ (i64.select
+ (get_local $$65)
+ (get_local $$11)
+ (i64.select
+ (get_local $$61)
+ (i64.or
+ (get_local $$63)
+ (get_local $$62)
+ )
+ (get_local $$64)
+ )
+ )
+ )
+ )
+ (i64.select
+ (get_local $$76)
+ (i64.select
+ (get_local $$74)
+ (get_local $$75)
+ (get_local $$51)
+ )
+ (get_local $$51)
+ )
+ )
+ (i64.select
+ (get_local $$57)
+ (get_local $$7)
+ (i64.select
+ (get_local $$60)
+ (i64.or
+ (i64.select
+ (get_local $$57)
+ (get_local $$7)
+ (i64.select
+ (get_local $$53)
+ (i64.or
+ (get_local $$55)
+ (get_local $$54)
+ )
+ (get_local $$56)
+ )
+ )
+ (i64.select
+ (get_local $$58)
+ (get_local $$59)
+ (get_local $$51)
+ )
+ )
+ (i64.select
+ (get_local $$52)
+ (get_local $$3)
+ (i64.select
+ (get_local $$50)
+ (i64.or
+ (get_local $$49)
+ (get_local $$34)
+ )
+ (get_local $$36)
+ )
+ )
+ )
+ )
+ )
+ )
+ )
+ (i64.store align=8
+ (i32.add
+ (get_local $$0)
+ (i32.const 104)
+ )
+ (i64.select
+ (get_local $$70)
+ (get_local $$14)
+ (i64.select
+ (get_local $$77)
+ (i64.or
+ (i64.select
+ (get_local $$70)
+ (get_local $$14)
+ (i64.select
+ (get_local $$73)
+ (i64.or
+ (i64.select
+ (get_local $$66)
+ (get_local $$146)
+ (get_local $$51)
+ )
+ (i64.select
+ (get_local $$113)
+ (get_local $$10)
+ (i64.select
+ (get_local $$71)
+ (i64.or
+ (get_local $$47)
+ (get_local $$45)
+ )
+ (get_local $$145)
+ )
+ )
+ )
+ (i64.select
+ (get_local $$61)
+ (get_local $$147)
+ (get_local $$51)
+ )
+ )
+ )
+ (i64.select
+ (get_local $$76)
+ (i64.select
+ (get_local $$96)
+ (get_local $$6)
+ (i64.select
+ (get_local $$74)
+ (i64.or
+ (get_local $$142)
+ (get_local $$143)
+ )
+ (get_local $$144)
+ )
+ )
+ (get_local $$51)
+ )
+ )
+ (i64.select
+ (get_local $$57)
+ (get_local $$6)
+ (i64.select
+ (get_local $$60)
+ (i64.or
+ (i64.select
+ (get_local $$53)
+ (get_local $$37)
+ (get_local $$51)
+ )
+ (i64.select
+ (get_local $$139)
+ (get_local $$2)
+ (i64.select
+ (get_local $$58)
+ (i64.or
+ (get_local $$148)
+ (get_local $$149)
+ )
+ (get_local $$150)
+ )
+ )
+ )
+ (i64.select
+ (get_local $$50)
+ (get_local $$151)
+ (get_local $$51)
+ )
+ )
+ )
+ )
+ )
+ )
+ (i64.store align=8
+ (i32.add
+ (get_local $$0)
+ (i32.const 96)
+ )
+ (i64.select
+ (get_local $$70)
+ (get_local $$13)
+ (i64.select
+ (get_local $$77)
+ (i64.or
+ (i64.select
+ (get_local $$70)
+ (get_local $$13)
+ (i64.select
+ (get_local $$73)
+ (i64.or
+ (i64.select
+ (get_local $$66)
+ (get_local $$134)
+ (get_local $$51)
+ )
+ (i64.select
+ (get_local $$113)
+ (get_local $$9)
+ (i64.select
+ (get_local $$71)
+ (i64.or
+ (get_local $$131)
+ (get_local $$132)
+ )
+ (get_local $$133)
+ )
+ )
+ )
+ (i64.select
+ (get_local $$61)
+ (get_local $$135)
+ (get_local $$51)
+ )
+ )
+ )
+ (i64.select
+ (get_local $$76)
+ (i64.select
+ (get_local $$96)
+ (get_local $$5)
+ (i64.select
+ (get_local $$74)
+ (i64.or
+ (get_local $$128)
+ (get_local $$129)
+ )
+ (get_local $$130)
+ )
+ )
+ (get_local $$51)
+ )
+ )
+ (i64.select
+ (get_local $$57)
+ (get_local $$5)
+ (i64.select
+ (get_local $$60)
+ (i64.or
+ (i64.select
+ (get_local $$53)
+ (get_local $$140)
+ (get_local $$51)
+ )
+ (i64.select
+ (get_local $$139)
+ (get_local $$1)
+ (i64.select
+ (get_local $$58)
+ (i64.or
+ (get_local $$136)
+ (get_local $$137)
+ )
+ (get_local $$138)
+ )
+ )
+ )
+ (i64.select
+ (get_local $$50)
+ (get_local $$141)
+ (get_local $$51)
+ )
+ )
+ )
+ )
+ )
+ )
+ (i64.store align=8
+ (i32.add
+ (get_local $$0)
+ (i32.const 72)
+ )
+ (i64.select
+ (get_local $$70)
+ (get_local $$10)
+ (i64.select
+ (get_local $$77)
+ (i64.or
+ (i64.select
+ (get_local $$73)
+ (i64.select
+ (get_local $$66)
+ (get_local $$126)
+ (get_local $$51)
+ )
+ (get_local $$51)
+ )
+ (i64.select
+ (get_local $$96)
+ (get_local $$2)
+ (i64.select
+ (get_local $$76)
+ (i64.or
+ (i64.select
+ (get_local $$96)
+ (get_local $$2)
+ (i64.select
+ (get_local $$74)
+ (i64.or
+ (get_local $$122)
+ (get_local $$123)
+ )
+ (get_local $$124)
+ )
+ )
+ (i64.select
+ (get_local $$89)
+ (get_local $$125)
+ (get_local $$51)
+ )
+ )
+ (i64.select
+ (get_local $$113)
+ (get_local $$6)
+ (i64.select
+ (get_local $$71)
+ (i64.or
+ (get_local $$119)
+ (get_local $$120)
+ )
+ (get_local $$121)
+ )
+ )
+ )
+ )
+ )
+ (i64.select
+ (get_local $$60)
+ (i64.select
+ (get_local $$53)
+ (get_local $$127)
+ (get_local $$51)
+ )
+ (get_local $$51)
+ )
+ )
+ )
+ )
+ (i64.store align=8
+ (i32.add
+ (get_local $$0)
+ (i32.const 64)
+ )
+ (i64.select
+ (get_local $$70)
+ (get_local $$9)
+ (i64.select
+ (get_local $$77)
+ (i64.or
+ (i64.select
+ (get_local $$73)
+ (i64.select
+ (get_local $$66)
+ (get_local $$46)
+ (get_local $$51)
+ )
+ (get_local $$51)
+ )
+ (i64.select
+ (get_local $$96)
+ (get_local $$1)
+ (i64.select
+ (get_local $$76)
+ (i64.or
+ (i64.select
+ (get_local $$96)
+ (get_local $$1)
+ (i64.select
+ (get_local $$74)
+ (i64.or
+ (get_local $$114)
+ (get_local $$115)
+ )
+ (get_local $$116)
+ )
+ )
+ (i64.select
+ (get_local $$89)
+ (get_local $$117)
+ (get_local $$51)
+ )
+ )
+ (i64.select
+ (get_local $$113)
+ (get_local $$5)
+ (i64.select
+ (get_local $$71)
+ (i64.or
+ (get_local $$110)
+ (get_local $$111)
+ )
+ (get_local $$112)
+ )
+ )
+ )
+ )
+ )
+ (i64.select
+ (get_local $$60)
+ (i64.select
+ (get_local $$53)
+ (get_local $$118)
+ (get_local $$51)
+ )
+ (get_local $$51)
+ )
+ )
+ )
+ )
+ (i64.store align=8
+ (i32.add
+ (get_local $$0)
+ (i32.const 88)
+ )
+ (i64.select
+ (get_local $$70)
+ (get_local $$12)
+ (i64.select
+ (get_local $$77)
+ (i64.or
+ (i64.select
+ (get_local $$73)
+ (i64.select
+ (get_local $$70)
+ (get_local $$12)
+ (i64.select
+ (get_local $$66)
+ (i64.or
+ (get_local $$100)
+ (get_local $$101)
+ )
+ (get_local $$102)
+ )
+ )
+ (get_local $$51)
+ )
+ (i64.select
+ (get_local $$96)
+ (get_local $$4)
+ (i64.select
+ (get_local $$76)
+ (i64.or
+ (i64.select
+ (get_local $$74)
+ (get_local $$48)
+ (get_local $$51)
+ )
+ (i64.select
+ (get_local $$93)
+ (get_local $$8)
+ (i64.select
+ (get_local $$89)
+ (i64.or
+ (get_local $$103)
+ (get_local $$104)
+ )
+ (get_local $$105)
+ )
+ )
+ )
+ (i64.select
+ (get_local $$71)
+ (get_local $$106)
+ (get_local $$51)
+ )
+ )
+ )
+ )
+ (i64.select
+ (get_local $$60)
+ (i64.select
+ (get_local $$57)
+ (get_local $$4)
+ (i64.select
+ (get_local $$53)
+ (i64.or
+ (get_local $$108)
+ (get_local $$107)
+ )
+ (get_local $$109)
+ )
+ )
+ (get_local $$51)
+ )
+ )
+ )
+ )
+ (i64.store align=8
+ (i32.add
+ (get_local $$0)
+ (i32.const 80)
+ )
+ (i64.select
+ (get_local $$70)
+ (get_local $$11)
+ (i64.select
+ (get_local $$77)
+ (i64.or
+ (i64.select
+ (get_local $$73)
+ (i64.select
+ (get_local $$70)
+ (get_local $$11)
+ (i64.select
+ (get_local $$66)
+ (i64.or
+ (get_local $$17)
+ (get_local $$42)
+ )
+ (get_local $$44)
+ )
+ )
+ (get_local $$51)
+ )
+ (i64.select
+ (get_local $$96)
+ (get_local $$3)
+ (i64.select
+ (get_local $$76)
+ (i64.or
+ (i64.select
+ (get_local $$74)
+ (get_local $$94)
+ (get_local $$51)
+ )
+ (i64.select
+ (get_local $$93)
+ (get_local $$7)
+ (i64.select
+ (get_local $$89)
+ (i64.or
+ (get_local $$90)
+ (get_local $$91)
+ )
+ (get_local $$92)
+ )
+ )
+ )
+ (i64.select
+ (get_local $$71)
+ (get_local $$95)
+ (get_local $$51)
+ )
+ )
+ )
+ )
+ (i64.select
+ (get_local $$60)
+ (i64.select
+ (get_local $$57)
+ (get_local $$3)
+ (i64.select
+ (get_local $$53)
+ (i64.or
+ (get_local $$98)
+ (get_local $$97)
+ )
+ (get_local $$99)
+ )
+ )
+ (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 0)
+ )
+ (set_local $$279
+ (i32.store align=4
+ (get_local $$183)
+ (get_local $$279)
+ )
+ )
+ (br $fake_return_waka123)
+ )
+ )
+ )
+)
+;; METADATA: { "asmConsts": {},"staticBump": 0 }
diff --git a/test/llvm_autogenerated/llvm-to-s.py b/test/llvm_autogenerated/llvm-to-s.py
index 9952352a8..ae73c167b 100755
--- a/test/llvm_autogenerated/llvm-to-s.py
+++ b/test/llvm_autogenerated/llvm-to-s.py
@@ -52,6 +52,14 @@ def main(args):
tests = FindTestFiles(LLVM_TEST_DIR, '.ll')
for ll_test in tests:
name_noext = os.path.splitext(os.path.basename(ll_test))[0]
+
+ BLACKLIST = ['inline-asm', # inline asm containing invalid syntax
+ 'returned', # external global symbol
+ 'vtable', # external global symbol
+ ]
+ if name_noext in BLACKLIST:
+ continue
+
s = os.path.join(S_TEST_DIR, name_noext + '.s')
run_line = GetRunLine(ll_test)
cmd = shlex.split(run_line)
diff --git a/test/llvm_autogenerated/load-ext.wast b/test/llvm_autogenerated/load-ext.wast
new file mode 100644
index 000000000..422828010
--- /dev/null
+++ b/test/llvm_autogenerated/load-ext.wast
@@ -0,0 +1,124 @@
+(module
+ (memory 0 4294967295)
+ (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 $$0 i32) (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i32.load8_s align=1
+ (get_local $$0)
+ )
+ )
+ )
+ )
+ )
+ (func $zext_i8_i32 (param $$0 i32) (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i32.load8_u align=1
+ (get_local $$0)
+ )
+ )
+ )
+ )
+ )
+ (func $sext_i16_i32 (param $$0 i32) (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i32.load16_s align=2
+ (get_local $$0)
+ )
+ )
+ )
+ )
+ )
+ (func $zext_i16_i32 (param $$0 i32) (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i32.load16_u align=2
+ (get_local $$0)
+ )
+ )
+ )
+ )
+ )
+ (func $sext_i8_i64 (param $$0 i32) (result i64)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i64.load8_s align=1
+ (get_local $$0)
+ )
+ )
+ )
+ )
+ )
+ (func $zext_i8_i64 (param $$0 i32) (result i64)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i64.load8_u align=1
+ (get_local $$0)
+ )
+ )
+ )
+ )
+ )
+ (func $sext_i16_i64 (param $$0 i32) (result i64)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i64.load16_s align=2
+ (get_local $$0)
+ )
+ )
+ )
+ )
+ )
+ (func $zext_i16_i64 (param $$0 i32) (result i64)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i64.load16_u align=2
+ (get_local $$0)
+ )
+ )
+ )
+ )
+ )
+ (func $sext_i32_i64 (param $$0 i32) (result i64)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i64.load align=4
+ (get_local $$0)
+ )
+ )
+ )
+ )
+ )
+ (func $zext_i32_i64 (param $$0 i32) (result i64)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i64.load align=4
+ (get_local $$0)
+ )
+ )
+ )
+ )
+ )
+)
+;; METADATA: { "asmConsts": {},"staticBump": 0 }
diff --git a/test/llvm_autogenerated/load-store-i1.wast b/test/llvm_autogenerated/load-store-i1.wast
new file mode 100644
index 000000000..d9b67382b
--- /dev/null
+++ b/test/llvm_autogenerated/load-store-i1.wast
@@ -0,0 +1,102 @@
+(module
+ (memory 0 4294967295)
+ (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 $$0 i32) (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i32.load8_u align=1
+ (get_local $$0)
+ )
+ )
+ )
+ )
+ )
+ (func $load_s_i1_i32 (param $$0 i32) (result i32)
+ (local $$1 i32)
+ (block $fake_return_waka123
+ (block
+ (set_local $$1
+ (i32.const 31)
+ )
+ (br $fake_return_waka123
+ (i32.shr_s
+ (i32.shl
+ (i32.load8_u align=1
+ (get_local $$0)
+ )
+ (get_local $$1)
+ )
+ (get_local $$1)
+ )
+ )
+ )
+ )
+ )
+ (func $load_u_i1_i64 (param $$0 i32) (result i64)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i64.load8_u align=1
+ (get_local $$0)
+ )
+ )
+ )
+ )
+ )
+ (func $load_s_i1_i64 (param $$0 i32) (result i64)
+ (local $$1 i64)
+ (block $fake_return_waka123
+ (block
+ (set_local $$1
+ (i64.const 63)
+ )
+ (br $fake_return_waka123
+ (i64.shr_s
+ (i64.shl
+ (i64.load8_u align=1
+ (get_local $$0)
+ )
+ (get_local $$1)
+ )
+ (get_local $$1)
+ )
+ )
+ )
+ )
+ )
+ (func $store_i32_i1 (param $$0 i32) (param $$1 i32)
+ (block $fake_return_waka123
+ (block
+ (i32.store align=8
+ (get_local $$0)
+ (i32.and
+ (get_local $$1)
+ (i32.const 1)
+ )
+ )
+ (br $fake_return_waka123)
+ )
+ )
+ )
+ (func $store_i64_i1 (param $$0 i32) (param $$1 i64)
+ (block $fake_return_waka123
+ (block
+ (i64.store align=8
+ (get_local $$0)
+ (i64.and
+ (get_local $$1)
+ (i64.const 1)
+ )
+ )
+ (br $fake_return_waka123)
+ )
+ )
+ )
+)
+;; METADATA: { "asmConsts": {},"staticBump": 0 }
diff --git a/test/llvm_autogenerated/load.wast b/test/llvm_autogenerated/load.wast
new file mode 100644
index 000000000..ac52dcda0
--- /dev/null
+++ b/test/llvm_autogenerated/load.wast
@@ -0,0 +1,52 @@
+(module
+ (memory 0 4294967295)
+ (export "ldi32" $ldi32)
+ (export "ldi64" $ldi64)
+ (export "ldf32" $ldf32)
+ (export "ldf64" $ldf64)
+ (func $ldi32 (param $$0 i32) (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i32.load align=4
+ (get_local $$0)
+ )
+ )
+ )
+ )
+ )
+ (func $ldi64 (param $$0 i32) (result i64)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i64.load align=8
+ (get_local $$0)
+ )
+ )
+ )
+ )
+ )
+ (func $ldf32 (param $$0 i32) (result f32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (f32.load align=4
+ (get_local $$0)
+ )
+ )
+ )
+ )
+ )
+ (func $ldf64 (param $$0 i32) (result f64)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (f64.load align=8
+ (get_local $$0)
+ )
+ )
+ )
+ )
+ )
+)
+;; METADATA: { "asmConsts": {},"staticBump": 0 }
diff --git a/test/llvm_autogenerated/memory-addr32.wast b/test/llvm_autogenerated/memory-addr32.wast
new file mode 100644
index 000000000..c056c10d9
--- /dev/null
+++ b/test/llvm_autogenerated/memory-addr32.wast
@@ -0,0 +1,23 @@
+(module
+ (memory 0 4294967295)
+ (export "memory_size" $memory_size)
+ (export "grow_memory" $grow_memory)
+ (func $memory_size (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (memory_size)
+ )
+ )
+ )
+ )
+ (func $grow_memory (param $$0 i32)
+ (block $fake_return_waka123
+ (block
+ (memory_size)
+ (br $fake_return_waka123)
+ )
+ )
+ )
+)
+;; METADATA: { "asmConsts": {},"staticBump": 0 }
diff --git a/test/llvm_autogenerated/memory-addr64.wast b/test/llvm_autogenerated/memory-addr64.wast
new file mode 100644
index 000000000..49c56ea9b
--- /dev/null
+++ b/test/llvm_autogenerated/memory-addr64.wast
@@ -0,0 +1,23 @@
+(module
+ (memory 0 4294967295)
+ (export "memory_size" $memory_size)
+ (export "grow_memory" $grow_memory)
+ (func $memory_size (result i64)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (memory_size)
+ )
+ )
+ )
+ )
+ (func $grow_memory (param $$0 i64)
+ (block $fake_return_waka123
+ (block
+ (memory_size)
+ (br $fake_return_waka123)
+ )
+ )
+ )
+)
+;; METADATA: { "asmConsts": {},"staticBump": 0 }
diff --git a/test/llvm_autogenerated/offset-folding.wast b/test/llvm_autogenerated/offset-folding.wast
new file mode 100644
index 000000000..b3a247cc1
--- /dev/null
+++ b/test/llvm_autogenerated/offset-folding.wast
@@ -0,0 +1,44 @@
+(module
+ (memory 216 4294967295)
+ (export "test0" $test0)
+ (export "test1" $test1)
+ (export "test2" $test2)
+ (export "test3" $test3)
+ (func $test0 (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i32.const 192)
+ )
+ )
+ )
+ )
+ (func $test1 (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i32.const 204)
+ )
+ )
+ )
+ )
+ (func $test2 (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i32.const 4)
+ )
+ )
+ )
+ )
+ (func $test3 (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i32.const 16)
+ )
+ )
+ )
+ )
+)
+;; METADATA: { "asmConsts": {},"staticBump": 215 }
diff --git a/test/llvm_autogenerated/offset.wast b/test/llvm_autogenerated/offset.wast
new file mode 100644
index 000000000..d85361666
--- /dev/null
+++ b/test/llvm_autogenerated/offset.wast
@@ -0,0 +1,473 @@
+(module
+ (memory 8 4294967295 (segment 4 "\00\00\00\00"))
+ (export "load_i32_with_folded_offset" $load_i32_with_folded_offset)
+ (export "load_i32_with_folded_gep_offset" $load_i32_with_folded_gep_offset)
+ (export "load_i32_with_unfolded_gep_negative_offset" $load_i32_with_unfolded_gep_negative_offset)
+ (export "load_i32_with_unfolded_offset" $load_i32_with_unfolded_offset)
+ (export "load_i32_with_unfolded_gep_offset" $load_i32_with_unfolded_gep_offset)
+ (export "load_i64_with_folded_offset" $load_i64_with_folded_offset)
+ (export "load_i64_with_folded_gep_offset" $load_i64_with_folded_gep_offset)
+ (export "load_i64_with_unfolded_gep_negative_offset" $load_i64_with_unfolded_gep_negative_offset)
+ (export "load_i64_with_unfolded_offset" $load_i64_with_unfolded_offset)
+ (export "load_i64_with_unfolded_gep_offset" $load_i64_with_unfolded_gep_offset)
+ (export "store_i32_with_folded_offset" $store_i32_with_folded_offset)
+ (export "store_i32_with_folded_gep_offset" $store_i32_with_folded_gep_offset)
+ (export "store_i32_with_unfolded_gep_negative_offset" $store_i32_with_unfolded_gep_negative_offset)
+ (export "store_i32_with_unfolded_offset" $store_i32_with_unfolded_offset)
+ (export "store_i32_with_unfolded_gep_offset" $store_i32_with_unfolded_gep_offset)
+ (export "store_i64_with_folded_offset" $store_i64_with_folded_offset)
+ (export "store_i64_with_folded_gep_offset" $store_i64_with_folded_gep_offset)
+ (export "store_i64_with_unfolded_gep_negative_offset" $store_i64_with_unfolded_gep_negative_offset)
+ (export "store_i64_with_unfolded_offset" $store_i64_with_unfolded_offset)
+ (export "store_i64_with_unfolded_gep_offset" $store_i64_with_unfolded_gep_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_s_with_folded_gep_offset" $load_i8_s_with_folded_gep_offset)
+ (export "load_i8_u_with_folded_offset" $load_i8_u_with_folded_offset)
+ (export "load_i8_u_with_folded_gep_offset" $load_i8_u_with_folded_gep_offset)
+ (export "store_i8_with_folded_offset" $store_i8_with_folded_offset)
+ (export "store_i8_with_folded_gep_offset" $store_i8_with_folded_gep_offset)
+ (export "aggregate_load_store" $aggregate_load_store)
+ (export "aggregate_return" $aggregate_return)
+ (func $load_i32_with_folded_offset (param $$0 i32) (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i32.load offset=24 align=4
+ (get_local $$0)
+ )
+ )
+ )
+ )
+ )
+ (func $load_i32_with_folded_gep_offset (param $$0 i32) (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i32.load offset=24 align=4
+ (get_local $$0)
+ )
+ )
+ )
+ )
+ )
+ (func $load_i32_with_unfolded_gep_negative_offset (param $$0 i32) (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i32.load align=4
+ (i32.add
+ (get_local $$0)
+ (i32.const -24)
+ )
+ )
+ )
+ )
+ )
+ )
+ (func $load_i32_with_unfolded_offset (param $$0 i32) (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i32.load align=4
+ (i32.add
+ (get_local $$0)
+ (i32.const 24)
+ )
+ )
+ )
+ )
+ )
+ )
+ (func $load_i32_with_unfolded_gep_offset (param $$0 i32) (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i32.load align=4
+ (i32.add
+ (get_local $$0)
+ (i32.const 24)
+ )
+ )
+ )
+ )
+ )
+ )
+ (func $load_i64_with_folded_offset (param $$0 i32) (result i64)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i64.load offset=24 align=8
+ (get_local $$0)
+ )
+ )
+ )
+ )
+ )
+ (func $load_i64_with_folded_gep_offset (param $$0 i32) (result i64)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i64.load offset=24 align=8
+ (get_local $$0)
+ )
+ )
+ )
+ )
+ )
+ (func $load_i64_with_unfolded_gep_negative_offset (param $$0 i32) (result i64)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i64.load align=8
+ (i32.add
+ (get_local $$0)
+ (i32.const -24)
+ )
+ )
+ )
+ )
+ )
+ )
+ (func $load_i64_with_unfolded_offset (param $$0 i32) (result i64)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i64.load align=8
+ (i32.add
+ (get_local $$0)
+ (i32.const 24)
+ )
+ )
+ )
+ )
+ )
+ )
+ (func $load_i64_with_unfolded_gep_offset (param $$0 i32) (result i64)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i64.load align=8
+ (i32.add
+ (get_local $$0)
+ (i32.const 24)
+ )
+ )
+ )
+ )
+ )
+ )
+ (func $store_i32_with_folded_offset (param $$0 i32)
+ (block $fake_return_waka123
+ (block
+ (i32.store offset=24 align=4
+ (get_local $$0)
+ (i32.const 0)
+ )
+ (br $fake_return_waka123)
+ )
+ )
+ )
+ (func $store_i32_with_folded_gep_offset (param $$0 i32)
+ (block $fake_return_waka123
+ (block
+ (i32.store offset=24 align=4
+ (get_local $$0)
+ (i32.const 0)
+ )
+ (br $fake_return_waka123)
+ )
+ )
+ )
+ (func $store_i32_with_unfolded_gep_negative_offset (param $$0 i32)
+ (block $fake_return_waka123
+ (block
+ (i32.store align=4
+ (i32.add
+ (get_local $$0)
+ (i32.const -24)
+ )
+ (i32.const 0)
+ )
+ (br $fake_return_waka123)
+ )
+ )
+ )
+ (func $store_i32_with_unfolded_offset (param $$0 i32)
+ (block $fake_return_waka123
+ (block
+ (i32.store align=4
+ (i32.add
+ (get_local $$0)
+ (i32.const 24)
+ )
+ (i32.const 0)
+ )
+ (br $fake_return_waka123)
+ )
+ )
+ )
+ (func $store_i32_with_unfolded_gep_offset (param $$0 i32)
+ (block $fake_return_waka123
+ (block
+ (i32.store align=4
+ (i32.add
+ (get_local $$0)
+ (i32.const 24)
+ )
+ (i32.const 0)
+ )
+ (br $fake_return_waka123)
+ )
+ )
+ )
+ (func $store_i64_with_folded_offset (param $$0 i32)
+ (block $fake_return_waka123
+ (block
+ (i64.store offset=24 align=8
+ (get_local $$0)
+ (i64.const 0)
+ )
+ (br $fake_return_waka123)
+ )
+ )
+ )
+ (func $store_i64_with_folded_gep_offset (param $$0 i32)
+ (block $fake_return_waka123
+ (block
+ (i64.store offset=24 align=8
+ (get_local $$0)
+ (i64.const 0)
+ )
+ (br $fake_return_waka123)
+ )
+ )
+ )
+ (func $store_i64_with_unfolded_gep_negative_offset (param $$0 i32)
+ (block $fake_return_waka123
+ (block
+ (i64.store align=8
+ (i32.add
+ (get_local $$0)
+ (i32.const -24)
+ )
+ (i64.const 0)
+ )
+ (br $fake_return_waka123)
+ )
+ )
+ )
+ (func $store_i64_with_unfolded_offset (param $$0 i32)
+ (block $fake_return_waka123
+ (block
+ (i64.store align=8
+ (i32.add
+ (get_local $$0)
+ (i32.const 24)
+ )
+ (i64.const 0)
+ )
+ (br $fake_return_waka123)
+ )
+ )
+ )
+ (func $store_i64_with_unfolded_gep_offset (param $$0 i32)
+ (block $fake_return_waka123
+ (block
+ (i64.store align=8
+ (i32.add
+ (get_local $$0)
+ (i32.const 24)
+ )
+ (i64.const 0)
+ )
+ (br $fake_return_waka123)
+ )
+ )
+ )
+ (func $load_i32_from_numeric_address (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i32.load offset=42 align=4
+ (i32.const 0)
+ )
+ )
+ )
+ )
+ )
+ (func $load_i32_from_global_address (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i32.load offset=4 align=4
+ (i32.const 0)
+ )
+ )
+ )
+ )
+ )
+ (func $store_i32_to_numeric_address
+ (local $$0 i32)
+ (block $fake_return_waka123
+ (block
+ (set_local $$0
+ (i32.const 0)
+ )
+ (i32.store offset=42 align=4
+ (get_local $$0)
+ (get_local $$0)
+ )
+ (br $fake_return_waka123)
+ )
+ )
+ )
+ (func $store_i32_to_global_address
+ (local $$0 i32)
+ (block $fake_return_waka123
+ (block
+ (set_local $$0
+ (i32.const 0)
+ )
+ (i32.store offset=4 align=4
+ (get_local $$0)
+ (get_local $$0)
+ )
+ (br $fake_return_waka123)
+ )
+ )
+ )
+ (func $load_i8_s_with_folded_offset (param $$0 i32) (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i32.load8_s offset=24 align=1
+ (get_local $$0)
+ )
+ )
+ )
+ )
+ )
+ (func $load_i8_s_with_folded_gep_offset (param $$0 i32) (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i32.load8_s offset=24 align=1
+ (get_local $$0)
+ )
+ )
+ )
+ )
+ )
+ (func $load_i8_u_with_folded_offset (param $$0 i32) (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i32.load8_u offset=24 align=1
+ (get_local $$0)
+ )
+ )
+ )
+ )
+ )
+ (func $load_i8_u_with_folded_gep_offset (param $$0 i32) (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i32.load8_u offset=24 align=1
+ (get_local $$0)
+ )
+ )
+ )
+ )
+ )
+ (func $store_i8_with_folded_offset (param $$0 i32)
+ (block $fake_return_waka123
+ (block
+ (i32.store offset=24 align=8
+ (get_local $$0)
+ (i32.const 0)
+ )
+ (br $fake_return_waka123)
+ )
+ )
+ )
+ (func $store_i8_with_folded_gep_offset (param $$0 i32)
+ (block $fake_return_waka123
+ (block
+ (i32.store offset=24 align=8
+ (get_local $$0)
+ (i32.const 0)
+ )
+ (br $fake_return_waka123)
+ )
+ )
+ )
+ (func $aggregate_load_store (param $$0 i32) (param $$1 i32)
+ (local $$2 i32)
+ (local $$3 i32)
+ (local $$4 i32)
+ (block $fake_return_waka123
+ (block
+ (set_local $$2
+ (i32.load align=4
+ (get_local $$0)
+ )
+ )
+ (set_local $$3
+ (i32.load offset=4 align=4
+ (get_local $$0)
+ )
+ )
+ (set_local $$4
+ (i32.load offset=8 align=4
+ (get_local $$0)
+ )
+ )
+ (i32.store offset=12 align=4
+ (get_local $$1)
+ (i32.load offset=12 align=4
+ (get_local $$0)
+ )
+ )
+ (i32.store offset=8 align=4
+ (get_local $$1)
+ (get_local $$4)
+ )
+ (i32.store offset=4 align=4
+ (get_local $$1)
+ (get_local $$3)
+ )
+ (i32.store align=4
+ (get_local $$1)
+ (get_local $$2)
+ )
+ (br $fake_return_waka123)
+ )
+ )
+ )
+ (func $aggregate_return (param $$0 i32)
+ (block $fake_return_waka123
+ (block
+ (i32.store align=4
+ (get_local $$0)
+ (i32.store offset=4 align=4
+ (get_local $$0)
+ (i32.store offset=8 align=4
+ (get_local $$0)
+ (i32.store offset=12 align=4
+ (get_local $$0)
+ (i32.const 0)
+ )
+ )
+ )
+ )
+ (br $fake_return_waka123)
+ )
+ )
+ )
+)
+;; METADATA: { "asmConsts": {},"staticBump": 7 }
diff --git a/test/llvm_autogenerated/phi.wast b/test/llvm_autogenerated/phi.wast
new file mode 100644
index 000000000..c1f14d530
--- /dev/null
+++ b/test/llvm_autogenerated/phi.wast
@@ -0,0 +1,82 @@
+(module
+ (memory 0 4294967295)
+ (export "test0" $test0)
+ (export "test1" $test1)
+ (func $test0 (param $$0 i32) (result i32)
+ (block $fake_return_waka123
+ (block
+ (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)
+ )
+ )
+ )
+ (br $fake_return_waka123
+ (get_local $$0)
+ )
+ )
+ )
+ )
+ (func $test1 (param $$0 i32) (result i32)
+ (local $$1 i32)
+ (local $$2 i32)
+ (local $$3 i32)
+ (local $$4 i32)
+ (local $$5 i32)
+ (block $fake_return_waka123
+ (block
+ (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
+ (block
+ (set_local $$1
+ (get_local $$4)
+ )
+ (set_local $$4
+ (get_local $$3)
+ )
+ (set_local $$5
+ (i32.add
+ (get_local $$5)
+ (get_local $$2)
+ )
+ )
+ (set_local $$3
+ (get_local $$1)
+ )
+ (br_if
+ (i32.lt_s
+ (get_local $$5)
+ (get_local $$0)
+ )
+ $BB1_1
+ )
+ )
+ )
+ (br $fake_return_waka123
+ (get_local $$4)
+ )
+ )
+ )
+ )
+)
+;; METADATA: { "asmConsts": {},"staticBump": 0 }
diff --git a/test/llvm_autogenerated/reg-stackify.wast b/test/llvm_autogenerated/reg-stackify.wast
new file mode 100644
index 000000000..2dbf17a13
--- /dev/null
+++ b/test/llvm_autogenerated/reg-stackify.wast
@@ -0,0 +1,155 @@
+(module
+ (memory 0 4294967295)
+ (export "no0" $no0)
+ (export "no1" $no1)
+ (export "yes0" $yes0)
+ (export "yes1" $yes1)
+ (export "stack_uses" $stack_uses)
+ (export "multiple_uses" $multiple_uses)
+ (func $no0 (param $$0 i32) (param $$1 i32) (result i32)
+ (block $fake_return_waka123
+ (block
+ (set_local $$1
+ (i32.load align=4
+ (get_local $$1)
+ )
+ )
+ (i32.store align=4
+ (get_local $$0)
+ (i32.const 0)
+ )
+ (br $fake_return_waka123
+ (get_local $$1)
+ )
+ )
+ )
+ )
+ (func $no1 (param $$0 i32) (param $$1 i32) (result i32)
+ (block $fake_return_waka123
+ (block
+ (set_local $$1
+ (i32.load align=4
+ (get_local $$1)
+ )
+ )
+ (i32.store align=4
+ (get_local $$0)
+ (i32.const 0)
+ )
+ (br $fake_return_waka123
+ (get_local $$1)
+ )
+ )
+ )
+ )
+ (func $yes0 (param $$0 i32) (param $$1 i32) (result i32)
+ (block $fake_return_waka123
+ (block
+ (i32.store align=4
+ (get_local $$0)
+ (i32.const 0)
+ )
+ (br $fake_return_waka123
+ (i32.load align=4
+ (get_local $$1)
+ )
+ )
+ )
+ )
+ )
+ (func $yes1 (param $$0 i32) (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i32.load align=4
+ (get_local $$0)
+ )
+ )
+ )
+ )
+ )
+ (func $stack_uses (param $$0 i32) (param $$1 i32) (param $$2 i32) (param $$3 i32) (result i32)
+ (local $$4 i32)
+ (local $$5 i32)
+ (block $fake_return_waka123
+ (block
+ (set_local $$5
+ (i32.const 2)
+ )
+ (set_local $$4
+ (i32.const 1)
+ )
+ (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
+ )
+ (br $fake_return_waka123
+ (i32.const 0)
+ )
+ )
+ (br $fake_return_waka123
+ (get_local $$4)
+ )
+ )
+ )
+ )
+ (func $multiple_uses (param $$0 i32) (param $$1 i32) (param $$2 i32)
+ (local $$3 i32)
+ (block $fake_return_waka123
+ (block
+ (set_local $$3
+ (i32.load align=4
+ (get_local $$2)
+ )
+ )
+ (block $BB5_3
+ (br_if
+ (i32.ge_u
+ (get_local $$3)
+ (get_local $$1)
+ )
+ $BB5_3
+ )
+ (br_if
+ (i32.lt_u
+ (get_local $$3)
+ (get_local $$0)
+ )
+ $BB5_3
+ )
+ (i32.store align=4
+ (get_local $$2)
+ (get_local $$3)
+ )
+ )
+ (br $fake_return_waka123)
+ )
+ )
+ )
+)
+;; METADATA: { "asmConsts": {},"staticBump": 0 }
diff --git a/test/llvm_autogenerated/return-int32.wast b/test/llvm_autogenerated/return-int32.wast
new file mode 100644
index 000000000..57bf9538b
--- /dev/null
+++ b/test/llvm_autogenerated/return-int32.wast
@@ -0,0 +1,14 @@
+(module
+ (memory 0 4294967295)
+ (export "return_i32" $return_i32)
+ (func $return_i32 (param $$0 i32) (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (get_local $$0)
+ )
+ )
+ )
+ )
+)
+;; METADATA: { "asmConsts": {},"staticBump": 0 }
diff --git a/test/llvm_autogenerated/return-void.wast b/test/llvm_autogenerated/return-void.wast
new file mode 100644
index 000000000..8cfa247b0
--- /dev/null
+++ b/test/llvm_autogenerated/return-void.wast
@@ -0,0 +1,12 @@
+(module
+ (memory 0 4294967295)
+ (export "return_void" $return_void)
+ (func $return_void
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123)
+ )
+ )
+ )
+)
+;; METADATA: { "asmConsts": {},"staticBump": 0 }
diff --git a/test/llvm_autogenerated/returned.s b/test/llvm_autogenerated/returned.s
deleted file mode 100644
index d1ffd41b7..000000000
--- a/test/llvm_autogenerated/returned.s
+++ /dev/null
@@ -1,42 +0,0 @@
- .text
- .file "/s/llvm/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
-
- .globl test_constant_arg
- .type test_constant_arg,@function
-test_constant_arg:
- i32.const $push0=, global
- i32.call $discard=, returns_arg, $pop0
- return
-func_end2:
- .size test_constant_arg, func_end2-test_constant_arg
-
- .type addr,@object
- .data
- .globl addr
- .align 2
-addr:
- .int32 global
- .size addr, 4
-
-
- .section ".note.GNU-stack","",@progbits
diff --git a/test/llvm_autogenerated/select.wast b/test/llvm_autogenerated/select.wast
new file mode 100644
index 000000000..bb5a4e575
--- /dev/null
+++ b/test/llvm_autogenerated/select.wast
@@ -0,0 +1,172 @@
+(module
+ (memory 0 4294967295)
+ (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 $$0 i32) (param $$1 i32) (param $$2 i32) (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i32.select
+ (get_local $$0)
+ (get_local $$1)
+ (get_local $$2)
+ )
+ )
+ )
+ )
+ )
+ (func $select_i32_eq (param $$0 i32) (param $$1 i32) (param $$2 i32) (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i32.select
+ (get_local $$0)
+ (get_local $$2)
+ (get_local $$1)
+ )
+ )
+ )
+ )
+ )
+ (func $select_i32_ne (param $$0 i32) (param $$1 i32) (param $$2 i32) (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i32.select
+ (get_local $$0)
+ (get_local $$1)
+ (get_local $$2)
+ )
+ )
+ )
+ )
+ )
+ (func $select_i64_bool (param $$0 i32) (param $$1 i64) (param $$2 i64) (result i64)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i64.select
+ (get_local $$0)
+ (get_local $$1)
+ (get_local $$2)
+ )
+ )
+ )
+ )
+ )
+ (func $select_i64_eq (param $$0 i32) (param $$1 i64) (param $$2 i64) (result i64)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i64.select
+ (get_local $$0)
+ (get_local $$2)
+ (get_local $$1)
+ )
+ )
+ )
+ )
+ )
+ (func $select_i64_ne (param $$0 i32) (param $$1 i64) (param $$2 i64) (result i64)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i64.select
+ (get_local $$0)
+ (get_local $$1)
+ (get_local $$2)
+ )
+ )
+ )
+ )
+ )
+ (func $select_f32_bool (param $$0 i32) (param $$1 f32) (param $$2 f32) (result f32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (f32.select
+ (get_local $$0)
+ (get_local $$1)
+ (get_local $$2)
+ )
+ )
+ )
+ )
+ )
+ (func $select_f32_eq (param $$0 i32) (param $$1 f32) (param $$2 f32) (result f32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (f32.select
+ (get_local $$0)
+ (get_local $$2)
+ (get_local $$1)
+ )
+ )
+ )
+ )
+ )
+ (func $select_f32_ne (param $$0 i32) (param $$1 f32) (param $$2 f32) (result f32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (f32.select
+ (get_local $$0)
+ (get_local $$1)
+ (get_local $$2)
+ )
+ )
+ )
+ )
+ )
+ (func $select_f64_bool (param $$0 i32) (param $$1 f64) (param $$2 f64) (result f64)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (f64.select
+ (get_local $$0)
+ (get_local $$1)
+ (get_local $$2)
+ )
+ )
+ )
+ )
+ )
+ (func $select_f64_eq (param $$0 i32) (param $$1 f64) (param $$2 f64) (result f64)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (f64.select
+ (get_local $$0)
+ (get_local $$2)
+ (get_local $$1)
+ )
+ )
+ )
+ )
+ )
+ (func $select_f64_ne (param $$0 i32) (param $$1 f64) (param $$2 f64) (result f64)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (f64.select
+ (get_local $$0)
+ (get_local $$1)
+ (get_local $$2)
+ )
+ )
+ )
+ )
+ )
+)
+;; METADATA: { "asmConsts": {},"staticBump": 0 }
diff --git a/test/llvm_autogenerated/signext-zeroext.wast b/test/llvm_autogenerated/signext-zeroext.wast
new file mode 100644
index 000000000..480223851
--- /dev/null
+++ b/test/llvm_autogenerated/signext-zeroext.wast
@@ -0,0 +1,80 @@
+(module
+ (memory 0 4294967295)
+ (export "z2s_func" $z2s_func)
+ (export "s2z_func" $s2z_func)
+ (export "z2s_call" $z2s_call)
+ (export "s2z_call" $s2z_call)
+ (func $z2s_func (param $$0 i32) (result i32)
+ (local $$1 i32)
+ (block $fake_return_waka123
+ (block
+ (set_local $$1
+ (i32.const 24)
+ )
+ (br $fake_return_waka123
+ (i32.shr_s
+ (i32.shl
+ (get_local $$0)
+ (get_local $$1)
+ )
+ (get_local $$1)
+ )
+ )
+ )
+ )
+ )
+ (func $s2z_func (param $$0 i32) (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i32.and
+ (get_local $$0)
+ (i32.const 255)
+ )
+ )
+ )
+ )
+ )
+ (func $z2s_call (param $$0 i32) (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (call $z2s_func
+ (i32.and
+ (get_local $$0)
+ (i32.const 255)
+ )
+ )
+ )
+ )
+ )
+ )
+ (func $s2z_call (param $$0 i32) (result i32)
+ (local $$1 i32)
+ (block $fake_return_waka123
+ (block
+ (set_local $$1
+ (i32.const 24)
+ )
+ (br $fake_return_waka123
+ (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)
+ )
+ )
+ )
+ )
+ )
+)
+;; METADATA: { "asmConsts": {},"staticBump": 0 }
diff --git a/test/llvm_autogenerated/store-results.wast b/test/llvm_autogenerated/store-results.wast
new file mode 100644
index 000000000..d4f73baff
--- /dev/null
+++ b/test/llvm_autogenerated/store-results.wast
@@ -0,0 +1,91 @@
+(module
+ (memory 16 4294967295)
+ (export "single_block" $single_block)
+ (export "foo" $foo)
+ (export "bar" $bar)
+ (func $single_block (param $$0 i32) (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (i32.store align=4
+ (get_local $$0)
+ (i32.const 0)
+ )
+ )
+ )
+ )
+ )
+ (func $foo
+ (local $$0 i32)
+ (local $$1 i32)
+ (block $fake_return_waka123
+ (block
+ (set_local $$0
+ (i32.const 0)
+ )
+ (set_local $$1
+ (get_local $$0)
+ )
+ (loop $BB1_2 $BB1_1
+ (block
+ (set_local $$1
+ (i32.add
+ (get_local $$1)
+ (i32.const 1)
+ )
+ )
+ (i32.store offset=4 align=4
+ (get_local $$0)
+ (get_local $$0)
+ )
+ (br_if
+ (i32.ne
+ (get_local $$1)
+ (i32.const 256)
+ )
+ $BB1_1
+ )
+ )
+ )
+ (br $fake_return_waka123)
+ )
+ )
+ )
+ (func $bar
+ (local $$0 i32)
+ (local $$1 f32)
+ (block $fake_return_waka123
+ (block
+ (set_local $$1
+ (f32.const 0)
+ )
+ (set_local $$0
+ (i32.const 0)
+ )
+ (loop $BB2_2 $BB2_1
+ (block
+ (i32.store offset=4 align=4
+ (get_local $$0)
+ (get_local $$0)
+ )
+ (set_local $$1
+ (f32.add
+ (get_local $$1)
+ (f32.const 1)
+ )
+ )
+ (br_if
+ (f32.ne
+ (get_local $$1)
+ (f32.const 256)
+ )
+ $BB2_1
+ )
+ )
+ )
+ (br $fake_return_waka123)
+ )
+ )
+ )
+)
+;; METADATA: { "asmConsts": {},"staticBump": 15 }
diff --git a/test/llvm_autogenerated/store-trunc.wast b/test/llvm_autogenerated/store-trunc.wast
new file mode 100644
index 000000000..44b400534
--- /dev/null
+++ b/test/llvm_autogenerated/store-trunc.wast
@@ -0,0 +1,64 @@
+(module
+ (memory 0 4294967295)
+ (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 $$0 i32) (param $$1 i32)
+ (block $fake_return_waka123
+ (block
+ (i32.store align=8
+ (get_local $$0)
+ (get_local $$1)
+ )
+ (br $fake_return_waka123)
+ )
+ )
+ )
+ (func $trunc_i16_i32 (param $$0 i32) (param $$1 i32)
+ (block $fake_return_waka123
+ (block
+ (i32.store align=16
+ (get_local $$0)
+ (get_local $$1)
+ )
+ (br $fake_return_waka123)
+ )
+ )
+ )
+ (func $trunc_i8_i64 (param $$0 i32) (param $$1 i64)
+ (block $fake_return_waka123
+ (block
+ (i64.store align=8
+ (get_local $$0)
+ (get_local $$1)
+ )
+ (br $fake_return_waka123)
+ )
+ )
+ )
+ (func $trunc_i16_i64 (param $$0 i32) (param $$1 i64)
+ (block $fake_return_waka123
+ (block
+ (i64.store align=16
+ (get_local $$0)
+ (get_local $$1)
+ )
+ (br $fake_return_waka123)
+ )
+ )
+ )
+ (func $trunc_i32_i64 (param $$0 i32) (param $$1 i64)
+ (block $fake_return_waka123
+ (block
+ (i64.store align=32
+ (get_local $$0)
+ (get_local $$1)
+ )
+ (br $fake_return_waka123)
+ )
+ )
+ )
+)
+;; METADATA: { "asmConsts": {},"staticBump": 0 }
diff --git a/test/llvm_autogenerated/store.wast b/test/llvm_autogenerated/store.wast
new file mode 100644
index 000000000..d3a89a131
--- /dev/null
+++ b/test/llvm_autogenerated/store.wast
@@ -0,0 +1,52 @@
+(module
+ (memory 0 4294967295)
+ (export "sti32" $sti32)
+ (export "sti64" $sti64)
+ (export "stf32" $stf32)
+ (export "stf64" $stf64)
+ (func $sti32 (param $$0 i32) (param $$1 i32)
+ (block $fake_return_waka123
+ (block
+ (i32.store align=4
+ (get_local $$0)
+ (get_local $$1)
+ )
+ (br $fake_return_waka123)
+ )
+ )
+ )
+ (func $sti64 (param $$0 i32) (param $$1 i64)
+ (block $fake_return_waka123
+ (block
+ (i64.store align=8
+ (get_local $$0)
+ (get_local $$1)
+ )
+ (br $fake_return_waka123)
+ )
+ )
+ )
+ (func $stf32 (param $$0 i32) (param $$1 f32)
+ (block $fake_return_waka123
+ (block
+ (f32.store align=4
+ (get_local $$0)
+ (get_local $$1)
+ )
+ (br $fake_return_waka123)
+ )
+ )
+ )
+ (func $stf64 (param $$0 i32) (param $$1 f64)
+ (block $fake_return_waka123
+ (block
+ (f64.store align=8
+ (get_local $$0)
+ (get_local $$1)
+ )
+ (br $fake_return_waka123)
+ )
+ )
+ )
+)
+;; METADATA: { "asmConsts": {},"staticBump": 0 }
diff --git a/test/llvm_autogenerated/switch.wast b/test/llvm_autogenerated/switch.wast
new file mode 100644
index 000000000..9404bd72a
--- /dev/null
+++ b/test/llvm_autogenerated/switch.wast
@@ -0,0 +1,100 @@
+(module
+ (memory 0 4294967295)
+ (import $foo0 "env" "foo0")
+ (import $foo1 "env" "foo1")
+ (import $foo2 "env" "foo2")
+ (import $foo3 "env" "foo3")
+ (import $foo4 "env" "foo4")
+ (import $foo5 "env" "foo5")
+ (export "bar32" $bar32)
+ (export "bar64" $bar64)
+ (func $bar32 (param $$0 i32)
+ (block $fake_return_waka123
+ (block
+ (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)
+ (table (case $BB0_2) (case $BB0_2) (case $BB0_2) (case $BB0_2) (case $BB0_2) (case $BB0_2) (case $BB0_2) (case $BB0_3) (case $BB0_3) (case $BB0_3) (case $BB0_3) (case $BB0_3) (case $BB0_3) (case $BB0_3) (case $BB0_3) (case $BB0_4) (case $BB0_4) (case $BB0_4) (case $BB0_4) (case $BB0_4) (case $BB0_4) (case $BB0_5) (case $BB0_6) (case $BB0_7)) (case $BB0_2)
+ )
+ )
+ (call_import $foo0)
+ (br $BB0_8)
+ )
+ (call_import $foo1)
+ (br $BB0_8)
+ )
+ (call_import $foo2)
+ (br $BB0_8)
+ )
+ (call_import $foo3)
+ (br $BB0_8)
+ )
+ (call_import $foo4)
+ (br $BB0_8)
+ )
+ (call_import $foo5)
+ )
+ (br $fake_return_waka123)
+ )
+ )
+ )
+ (func $bar64 (param $$0 i64)
+ (block $fake_return_waka123
+ (block
+ (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)
+ )
+ (table (case $BB1_2) (case $BB1_2) (case $BB1_2) (case $BB1_2) (case $BB1_2) (case $BB1_2) (case $BB1_2) (case $BB1_3) (case $BB1_3) (case $BB1_3) (case $BB1_3) (case $BB1_3) (case $BB1_3) (case $BB1_3) (case $BB1_3) (case $BB1_4) (case $BB1_4) (case $BB1_4) (case $BB1_4) (case $BB1_4) (case $BB1_4) (case $BB1_5) (case $BB1_6) (case $BB1_7)) (case $BB1_2)
+ )
+ )
+ (call_import $foo0)
+ (br $BB1_8)
+ )
+ (call_import $foo1)
+ (br $BB1_8)
+ )
+ (call_import $foo2)
+ (br $BB1_8)
+ )
+ (call_import $foo3)
+ (br $BB1_8)
+ )
+ (call_import $foo4)
+ (br $BB1_8)
+ )
+ (call_import $foo5)
+ )
+ (br $fake_return_waka123)
+ )
+ )
+ )
+)
+;; METADATA: { "asmConsts": {},"staticBump": 0 }
diff --git a/test/llvm_autogenerated/unreachable.wast b/test/llvm_autogenerated/unreachable.wast
new file mode 100644
index 000000000..1d3be1405
--- /dev/null
+++ b/test/llvm_autogenerated/unreachable.wast
@@ -0,0 +1,28 @@
+(module
+ (memory 0 4294967295)
+ (import $abort "env" "abort")
+ (export "f1" $f1)
+ (export "f2" $f2)
+ (export "f3" $f3)
+ (func $f1 (result i32)
+ (call_import $abort)
+ (unreachable)
+ )
+ (func $f2
+ (block $fake_return_waka123
+ (block
+ (unreachable)
+ (br $fake_return_waka123)
+ )
+ )
+ )
+ (func $f3
+ (block $fake_return_waka123
+ (block
+ (unreachable)
+ (br $fake_return_waka123)
+ )
+ )
+ )
+)
+;; METADATA: { "asmConsts": {},"staticBump": 0 }
diff --git a/test/llvm_autogenerated/unused-argument.wast b/test/llvm_autogenerated/unused-argument.wast
new file mode 100644
index 000000000..96c880442
--- /dev/null
+++ b/test/llvm_autogenerated/unused-argument.wast
@@ -0,0 +1,34 @@
+(module
+ (memory 0 4294967295)
+ (import $return_something "env" "return_something" (result i32))
+ (export "unused_first" $unused_first)
+ (export "unused_second" $unused_second)
+ (export "call_something" $call_something)
+ (func $unused_first (param $$0 i32) (param $$1 i32) (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (get_local $$1)
+ )
+ )
+ )
+ )
+ (func $unused_second (param $$0 i32) (param $$1 i32) (result i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123
+ (get_local $$0)
+ )
+ )
+ )
+ )
+ (func $call_something
+ (block $fake_return_waka123
+ (block
+ (call_import $return_something)
+ (br $fake_return_waka123)
+ )
+ )
+ )
+)
+;; METADATA: { "asmConsts": {},"staticBump": 0 }
diff --git a/test/llvm_autogenerated/userstack.wast b/test/llvm_autogenerated/userstack.wast
new file mode 100644
index 000000000..c2083ce2a
--- /dev/null
+++ b/test/llvm_autogenerated/userstack.wast
@@ -0,0 +1,216 @@
+(module
+ (memory 0 4294967295)
+ (export "alloca32" $alloca32)
+ (export "alloca3264" $alloca3264)
+ (export "allocarray" $allocarray)
+ (export "dynamic_alloca" $dynamic_alloca)
+ (func $alloca32
+ (local $$0 i32)
+ (local $$1 i32)
+ (local $$2 i32)
+ (local $$3 i32)
+ (block $fake_return_waka123
+ (block
+ (set_local $$0
+ (i32.const 0)
+ )
+ (set_local $$0
+ (i32.load align=4
+ (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 0)
+ )
+ (set_local $$3
+ (i32.store align=4
+ (get_local $$1)
+ (get_local $$3)
+ )
+ )
+ (i32.store offset=12 align=4
+ (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 0)
+ )
+ (set_local $$3
+ (i32.store align=4
+ (get_local $$2)
+ (get_local $$3)
+ )
+ )
+ (br $fake_return_waka123)
+ )
+ )
+ )
+ (func $alloca3264
+ (local $$0 i32)
+ (local $$1 i32)
+ (local $$2 i32)
+ (local $$3 i32)
+ (block $fake_return_waka123
+ (block
+ (set_local $$0
+ (i32.const 0)
+ )
+ (set_local $$0
+ (i32.load align=4
+ (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 0)
+ )
+ (set_local $$3
+ (i32.store align=4
+ (get_local $$1)
+ (get_local $$3)
+ )
+ )
+ (i32.store offset=12 align=4
+ (get_local $$3)
+ (i32.const 0)
+ )
+ (i64.store align=8
+ (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 0)
+ )
+ (set_local $$3
+ (i32.store align=4
+ (get_local $$2)
+ (get_local $$3)
+ )
+ )
+ (br $fake_return_waka123)
+ )
+ )
+ )
+ (func $allocarray
+ (local $$0 i32)
+ (local $$1 i32)
+ (local $$2 i32)
+ (local $$3 i32)
+ (local $$4 i32)
+ (local $$5 i32)
+ (block $fake_return_waka123
+ (block
+ (set_local $$1
+ (i32.const 0)
+ )
+ (set_local $$1
+ (i32.load align=4
+ (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 0)
+ )
+ (set_local $$5
+ (i32.store align=4
+ (get_local $$2)
+ (get_local $$5)
+ )
+ )
+ (set_local $$0
+ (i32.store offset=12 align=4
+ (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 align=4
+ (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 0)
+ )
+ (set_local $$5
+ (i32.store align=4
+ (get_local $$3)
+ (get_local $$5)
+ )
+ )
+ (br $fake_return_waka123)
+ )
+ )
+ )
+ (func $dynamic_alloca (param $$0 i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123)
+ )
+ )
+ )
+)
+;; METADATA: { "asmConsts": {},"staticBump": 0 }
diff --git a/test/llvm_autogenerated/varargs.wast b/test/llvm_autogenerated/varargs.wast
new file mode 100644
index 000000000..7f5e0cb7e
--- /dev/null
+++ b/test/llvm_autogenerated/varargs.wast
@@ -0,0 +1,160 @@
+(module
+ (memory 0 4294967295)
+ (import $callee "env" "callee")
+ (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 $$0 i32)
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123)
+ )
+ )
+ )
+ (func $copy (param $$0 i32) (param $$1 i32)
+ (block $fake_return_waka123
+ (block
+ (i32.store align=4
+ (get_local $$0)
+ (i32.load align=4
+ (get_local $$1)
+ )
+ )
+ (br $fake_return_waka123)
+ )
+ )
+ )
+ (func $arg_i8 (param $$0 i32) (result i32)
+ (local $$1 i32)
+ (block $fake_return_waka123
+ (block
+ (set_local $$1
+ (i32.load align=4
+ (get_local $$0)
+ )
+ )
+ (i32.store align=4
+ (get_local $$0)
+ (i32.add
+ (get_local $$1)
+ (i32.const 4)
+ )
+ )
+ (br $fake_return_waka123
+ (i32.load align=4
+ (get_local $$1)
+ )
+ )
+ )
+ )
+ )
+ (func $arg_i32 (param $$0 i32) (result i32)
+ (local $$1 i32)
+ (block $fake_return_waka123
+ (block
+ (set_local $$1
+ (i32.and
+ (i32.add
+ (i32.load align=4
+ (get_local $$0)
+ )
+ (i32.const 3)
+ )
+ (i32.const -4)
+ )
+ )
+ (i32.store align=4
+ (get_local $$0)
+ (i32.add
+ (get_local $$1)
+ (i32.const 4)
+ )
+ )
+ (br $fake_return_waka123
+ (i32.load align=4
+ (get_local $$1)
+ )
+ )
+ )
+ )
+ )
+ (func $arg_i128 (param $$0 i32) (param $$1 i32)
+ (local $$2 i32)
+ (local $$3 i32)
+ (local $$4 i32)
+ (local $$5 i64)
+ (block $fake_return_waka123
+ (block
+ (set_local $$2
+ (i32.and
+ (i32.add
+ (i32.load align=4
+ (get_local $$1)
+ )
+ (i32.const 7)
+ )
+ (i32.const -8)
+ )
+ )
+ (set_local $$3
+ (i32.const 8)
+ )
+ (set_local $$4
+ (i32.store align=4
+ (get_local $$1)
+ (i32.add
+ (get_local $$2)
+ (get_local $$3)
+ )
+ )
+ )
+ (set_local $$5
+ (i64.load align=8
+ (get_local $$2)
+ )
+ )
+ (i32.store align=4
+ (get_local $$1)
+ (i32.add
+ (get_local $$2)
+ (i32.const 16)
+ )
+ )
+ (i64.store align=8
+ (i32.add
+ (get_local $$0)
+ (get_local $$3)
+ )
+ (i64.load align=8
+ (get_local $$4)
+ )
+ )
+ (i64.store align=8
+ (get_local $$0)
+ (get_local $$5)
+ )
+ (br $fake_return_waka123)
+ )
+ )
+ )
+ (func $caller_none
+ (block $fake_return_waka123
+ (block
+ (call_import $callee)
+ (br $fake_return_waka123)
+ )
+ )
+ )
+ (func $caller_some
+ (block $fake_return_waka123
+ (block
+ (br $fake_return_waka123)
+ )
+ )
+ )
+)
+;; METADATA: { "asmConsts": {},"staticBump": 0 }
diff --git a/test/llvm_autogenerated/vtable.s b/test/llvm_autogenerated/vtable.s
deleted file mode 100644
index cc56a884b..000000000
--- a/test/llvm_autogenerated/vtable.s
+++ /dev/null
@@ -1,206 +0,0 @@
- .text
- .file "/s/llvm/llvm/test/CodeGen/WebAssembly/vtable.ll"
- .globl _ZN1A3fooEv
- .type _ZN1A3fooEv,@function
-_ZN1A3fooEv:
- .param i32
- 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:
- .param i32
- 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:
- .param i32
- 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:
- .param i32
- 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:
- .param i32
- call _ZdlPv, $0
- return
-func_end4:
- .size _ZN1AD0Ev, func_end4-_ZN1AD0Ev
-
- .weak _ZN1BD0Ev
- .type _ZN1BD0Ev,@function
-_ZN1BD0Ev:
- .param i32
- call _ZdlPv, $0
- return
-func_end5:
- .size _ZN1BD0Ev, func_end5-_ZN1BD0Ev
-
- .weak _ZN1CD0Ev
- .type _ZN1CD0Ev,@function
-_ZN1CD0Ev:
- .param i32
- call _ZdlPv, $0
- return
-func_end6:
- .size _ZN1CD0Ev, func_end6-_ZN1CD0Ev
-
- .weak _ZN1AD2Ev
- .type _ZN1AD2Ev,@function
-_ZN1AD2Ev:
- .param i32
- .result i32
- return $0
-func_end7:
- .size _ZN1AD2Ev, func_end7-_ZN1AD2Ev
-
- .weak _ZN1DD0Ev
- .type _ZN1DD0Ev,@function
-_ZN1DD0Ev:
- .param i32
- call _ZdlPv, $0
- return
-func_end8:
- .size _ZN1DD0Ev, func_end8-_ZN1DD0Ev
-
- .type _ZTS1A,@object
- .section .rodata,"a",@progbits
- .globl _ZTS1A
-_ZTS1A:
- .asciz "1A"
- .size _ZTS1A, 3
-
- .type _ZTS1B,@object
- .globl _ZTS1B
-_ZTS1B:
- .asciz "1B"
- .size _ZTS1B, 3
-
- .type _ZTS1C,@object
- .globl _ZTS1C
-_ZTS1C:
- .asciz "1C"
- .size _ZTS1C, 3
-
- .type _ZTS1D,@object
- .globl _ZTS1D
-_ZTS1D:
- .asciz "1D"
- .size _ZTS1D, 3
-
- .type _ZTV1A,@object
- .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
- .globl _ZTV1B
- .align 2
-_ZTV1B:
- .int32 0
- .int32 _ZTI1B
- .int32 _ZN1AD2Ev
- .int32 _ZN1BD0Ev
- .int32 _ZN1B3fooEv
- .size _ZTV1B, 20
-
- .type _ZTV1C,@object
- .globl _ZTV1C
- .align 2
-_ZTV1C:
- .int32 0
- .int32 _ZTI1C
- .int32 _ZN1AD2Ev
- .int32 _ZN1CD0Ev
- .int32 _ZN1C3fooEv
- .size _ZTV1C, 20
-
- .type _ZTV1D,@object
- .globl _ZTV1D
- .align 2
-_ZTV1D:
- .int32 0
- .int32 _ZTI1D
- .int32 _ZN1AD2Ev
- .int32 _ZN1DD0Ev
- .int32 _ZN1D3fooEv
- .size _ZTV1D, 20
-
- .type _ZTI1A,@object
- .globl _ZTI1A
- .align 3
-_ZTI1A:
- .int32 _ZTVN10__cxxabiv117__class_type_infoE+8
- .int32 _ZTS1A
- .size _ZTI1A, 8
-
- .type _ZTI1B,@object
- .globl _ZTI1B
- .align 3
-_ZTI1B:
- .int32 _ZTVN10__cxxabiv120__si_class_type_infoE+8
- .int32 _ZTS1B
- .int32 _ZTI1A
- .size _ZTI1B, 12
-
- .type _ZTI1C,@object
- .globl _ZTI1C
- .align 3
-_ZTI1C:
- .int32 _ZTVN10__cxxabiv120__si_class_type_infoE+8
- .int32 _ZTS1C
- .int32 _ZTI1A
- .size _ZTI1C, 12
-
- .type _ZTI1D,@object
- .globl _ZTI1D
- .align 3
-_ZTI1D:
- .int32 _ZTVN10__cxxabiv120__si_class_type_infoE+8
- .int32 _ZTS1D
- .int32 _ZTI1B
- .size _ZTI1D, 12
-
- .type g,@object
- .bss
- .globl g
- .align 2
-g:
- .int32 0
- .size g, 4
-
-
- .section ".note.GNU-stack","",@progbits