diff options
48 files changed, 9953 insertions, 396 deletions
@@ -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 |