diff options
author | Soni L <EnderMoneyMod@gmail.com> | 2021-06-25 18:48:22 -0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-06-25 14:48:22 -0700 |
commit | 6c9355e490a37c7a990d504f32676c9d7a2ebb13 (patch) | |
tree | c32f63de34c82a546e69187b5c466e1cc6990301 /test/wasm2c | |
parent | 950042585626bc639c4b330bd47c7b9be4e11bac (diff) | |
download | wabt-6c9355e490a37c7a990d504f32676c9d7a2ebb13.tar.gz wabt-6c9355e490a37c7a990d504f32676c9d7a2ebb13.tar.bz2 wabt-6c9355e490a37c7a990d504f32676c9d7a2ebb13.zip |
wasm2c: Support sign-extend (#1679)
This doesn't touch the error when passing --disable-sign-extension to
wasm2c, but nothing really tests the --enable/--disable feature flags
anyway so it should be a non-issue.
(The casts are technically implementation-defined, but they're being
relied on elsewhere as well so it's a non-issue.)
Diffstat (limited to 'test/wasm2c')
-rw-r--r-- | test/wasm2c/spec/i32.txt | 981 | ||||
-rw-r--r-- | test/wasm2c/spec/i64.txt | 490 |
2 files changed, 4 insertions, 1467 deletions
diff --git a/test/wasm2c/spec/i32.txt b/test/wasm2c/spec/i32.txt index 6fad9d01..fe166e2d 100644 --- a/test/wasm2c/spec/i32.txt +++ b/test/wasm2c/spec/i32.txt @@ -1,982 +1,5 @@ ;;; TOOL: run-spec-wasm2c -;;; NOTE: This is copied from i32.wast, with unsupported tests removed -;;; TODO: support sign-extend -;; i32 operations - -(module - (func (export "add") (param $x i32) (param $y i32) (result i32) (i32.add (local.get $x) (local.get $y))) - (func (export "sub") (param $x i32) (param $y i32) (result i32) (i32.sub (local.get $x) (local.get $y))) - (func (export "mul") (param $x i32) (param $y i32) (result i32) (i32.mul (local.get $x) (local.get $y))) - (func (export "div_s") (param $x i32) (param $y i32) (result i32) (i32.div_s (local.get $x) (local.get $y))) - (func (export "div_u") (param $x i32) (param $y i32) (result i32) (i32.div_u (local.get $x) (local.get $y))) - (func (export "rem_s") (param $x i32) (param $y i32) (result i32) (i32.rem_s (local.get $x) (local.get $y))) - (func (export "rem_u") (param $x i32) (param $y i32) (result i32) (i32.rem_u (local.get $x) (local.get $y))) - (func (export "and") (param $x i32) (param $y i32) (result i32) (i32.and (local.get $x) (local.get $y))) - (func (export "or") (param $x i32) (param $y i32) (result i32) (i32.or (local.get $x) (local.get $y))) - (func (export "xor") (param $x i32) (param $y i32) (result i32) (i32.xor (local.get $x) (local.get $y))) - (func (export "shl") (param $x i32) (param $y i32) (result i32) (i32.shl (local.get $x) (local.get $y))) - (func (export "shr_s") (param $x i32) (param $y i32) (result i32) (i32.shr_s (local.get $x) (local.get $y))) - (func (export "shr_u") (param $x i32) (param $y i32) (result i32) (i32.shr_u (local.get $x) (local.get $y))) - (func (export "rotl") (param $x i32) (param $y i32) (result i32) (i32.rotl (local.get $x) (local.get $y))) - (func (export "rotr") (param $x i32) (param $y i32) (result i32) (i32.rotr (local.get $x) (local.get $y))) - (func (export "clz") (param $x i32) (result i32) (i32.clz (local.get $x))) - (func (export "ctz") (param $x i32) (result i32) (i32.ctz (local.get $x))) - (func (export "popcnt") (param $x i32) (result i32) (i32.popcnt (local.get $x))) -;; (func (export "extend8_s") (param $x i32) (result i32) (i32.extend8_s (local.get $x))) -;; (func (export "extend16_s") (param $x i32) (result i32) (i32.extend16_s (local.get $x))) - (func (export "eqz") (param $x i32) (result i32) (i32.eqz (local.get $x))) - (func (export "eq") (param $x i32) (param $y i32) (result i32) (i32.eq (local.get $x) (local.get $y))) - (func (export "ne") (param $x i32) (param $y i32) (result i32) (i32.ne (local.get $x) (local.get $y))) - (func (export "lt_s") (param $x i32) (param $y i32) (result i32) (i32.lt_s (local.get $x) (local.get $y))) - (func (export "lt_u") (param $x i32) (param $y i32) (result i32) (i32.lt_u (local.get $x) (local.get $y))) - (func (export "le_s") (param $x i32) (param $y i32) (result i32) (i32.le_s (local.get $x) (local.get $y))) - (func (export "le_u") (param $x i32) (param $y i32) (result i32) (i32.le_u (local.get $x) (local.get $y))) - (func (export "gt_s") (param $x i32) (param $y i32) (result i32) (i32.gt_s (local.get $x) (local.get $y))) - (func (export "gt_u") (param $x i32) (param $y i32) (result i32) (i32.gt_u (local.get $x) (local.get $y))) - (func (export "ge_s") (param $x i32) (param $y i32) (result i32) (i32.ge_s (local.get $x) (local.get $y))) - (func (export "ge_u") (param $x i32) (param $y i32) (result i32) (i32.ge_u (local.get $x) (local.get $y))) -) - -(assert_return (invoke "add" (i32.const 1) (i32.const 1)) (i32.const 2)) -(assert_return (invoke "add" (i32.const 1) (i32.const 0)) (i32.const 1)) -(assert_return (invoke "add" (i32.const -1) (i32.const -1)) (i32.const -2)) -(assert_return (invoke "add" (i32.const -1) (i32.const 1)) (i32.const 0)) -(assert_return (invoke "add" (i32.const 0x7fffffff) (i32.const 1)) (i32.const 0x80000000)) -(assert_return (invoke "add" (i32.const 0x80000000) (i32.const -1)) (i32.const 0x7fffffff)) -(assert_return (invoke "add" (i32.const 0x80000000) (i32.const 0x80000000)) (i32.const 0)) -(assert_return (invoke "add" (i32.const 0x3fffffff) (i32.const 1)) (i32.const 0x40000000)) - -(assert_return (invoke "sub" (i32.const 1) (i32.const 1)) (i32.const 0)) -(assert_return (invoke "sub" (i32.const 1) (i32.const 0)) (i32.const 1)) -(assert_return (invoke "sub" (i32.const -1) (i32.const -1)) (i32.const 0)) -(assert_return (invoke "sub" (i32.const 0x7fffffff) (i32.const -1)) (i32.const 0x80000000)) -(assert_return (invoke "sub" (i32.const 0x80000000) (i32.const 1)) (i32.const 0x7fffffff)) -(assert_return (invoke "sub" (i32.const 0x80000000) (i32.const 0x80000000)) (i32.const 0)) -(assert_return (invoke "sub" (i32.const 0x3fffffff) (i32.const -1)) (i32.const 0x40000000)) - -(assert_return (invoke "mul" (i32.const 1) (i32.const 1)) (i32.const 1)) -(assert_return (invoke "mul" (i32.const 1) (i32.const 0)) (i32.const 0)) -(assert_return (invoke "mul" (i32.const -1) (i32.const -1)) (i32.const 1)) -(assert_return (invoke "mul" (i32.const 0x10000000) (i32.const 4096)) (i32.const 0)) -(assert_return (invoke "mul" (i32.const 0x80000000) (i32.const 0)) (i32.const 0)) -(assert_return (invoke "mul" (i32.const 0x80000000) (i32.const -1)) (i32.const 0x80000000)) -(assert_return (invoke "mul" (i32.const 0x7fffffff) (i32.const -1)) (i32.const 0x80000001)) -(assert_return (invoke "mul" (i32.const 0x01234567) (i32.const 0x76543210)) (i32.const 0x358e7470)) -(assert_return (invoke "mul" (i32.const 0x7fffffff) (i32.const 0x7fffffff)) (i32.const 1)) - -(assert_trap (invoke "div_s" (i32.const 1) (i32.const 0)) "integer divide by zero") -(assert_trap (invoke "div_s" (i32.const 0) (i32.const 0)) "integer divide by zero") -(assert_trap (invoke "div_s" (i32.const 0x80000000) (i32.const -1)) "integer overflow") -(assert_trap (invoke "div_s" (i32.const 0x80000000) (i32.const 0)) "integer divide by zero") -(assert_return (invoke "div_s" (i32.const 1) (i32.const 1)) (i32.const 1)) -(assert_return (invoke "div_s" (i32.const 0) (i32.const 1)) (i32.const 0)) -(assert_return (invoke "div_s" (i32.const 0) (i32.const -1)) (i32.const 0)) -(assert_return (invoke "div_s" (i32.const -1) (i32.const -1)) (i32.const 1)) -(assert_return (invoke "div_s" (i32.const 0x80000000) (i32.const 2)) (i32.const 0xc0000000)) -(assert_return (invoke "div_s" (i32.const 0x80000001) (i32.const 1000)) (i32.const 0xffdf3b65)) -(assert_return (invoke "div_s" (i32.const 5) (i32.const 2)) (i32.const 2)) -(assert_return (invoke "div_s" (i32.const -5) (i32.const 2)) (i32.const -2)) -(assert_return (invoke "div_s" (i32.const 5) (i32.const -2)) (i32.const -2)) -(assert_return (invoke "div_s" (i32.const -5) (i32.const -2)) (i32.const 2)) -(assert_return (invoke "div_s" (i32.const 7) (i32.const 3)) (i32.const 2)) -(assert_return (invoke "div_s" (i32.const -7) (i32.const 3)) (i32.const -2)) -(assert_return (invoke "div_s" (i32.const 7) (i32.const -3)) (i32.const -2)) -(assert_return (invoke "div_s" (i32.const -7) (i32.const -3)) (i32.const 2)) -(assert_return (invoke "div_s" (i32.const 11) (i32.const 5)) (i32.const 2)) -(assert_return (invoke "div_s" (i32.const 17) (i32.const 7)) (i32.const 2)) - -(assert_trap (invoke "div_u" (i32.const 1) (i32.const 0)) "integer divide by zero") -(assert_trap (invoke "div_u" (i32.const 0) (i32.const 0)) "integer divide by zero") -(assert_return (invoke "div_u" (i32.const 1) (i32.const 1)) (i32.const 1)) -(assert_return (invoke "div_u" (i32.const 0) (i32.const 1)) (i32.const 0)) -(assert_return (invoke "div_u" (i32.const -1) (i32.const -1)) (i32.const 1)) -(assert_return (invoke "div_u" (i32.const 0x80000000) (i32.const -1)) (i32.const 0)) -(assert_return (invoke "div_u" (i32.const 0x80000000) (i32.const 2)) (i32.const 0x40000000)) -(assert_return (invoke "div_u" (i32.const 0x8ff00ff0) (i32.const 0x10001)) (i32.const 0x8fef)) -(assert_return (invoke "div_u" (i32.const 0x80000001) (i32.const 1000)) (i32.const 0x20c49b)) -(assert_return (invoke "div_u" (i32.const 5) (i32.const 2)) (i32.const 2)) -(assert_return (invoke "div_u" (i32.const -5) (i32.const 2)) (i32.const 0x7ffffffd)) -(assert_return (invoke "div_u" (i32.const 5) (i32.const -2)) (i32.const 0)) -(assert_return (invoke "div_u" (i32.const -5) (i32.const -2)) (i32.const 0)) -(assert_return (invoke "div_u" (i32.const 7) (i32.const 3)) (i32.const 2)) -(assert_return (invoke "div_u" (i32.const 11) (i32.const 5)) (i32.const 2)) -(assert_return (invoke "div_u" (i32.const 17) (i32.const 7)) (i32.const 2)) - -(assert_trap (invoke "rem_s" (i32.const 1) (i32.const 0)) "integer divide by zero") -(assert_trap (invoke "rem_s" (i32.const 0) (i32.const 0)) "integer divide by zero") -(assert_return (invoke "rem_s" (i32.const 0x7fffffff) (i32.const -1)) (i32.const 0)) -(assert_return (invoke "rem_s" (i32.const 1) (i32.const 1)) (i32.const 0)) -(assert_return (invoke "rem_s" (i32.const 0) (i32.const 1)) (i32.const 0)) -(assert_return (invoke "rem_s" (i32.const 0) (i32.const -1)) (i32.const 0)) -(assert_return (invoke "rem_s" (i32.const -1) (i32.const -1)) (i32.const 0)) -(assert_return (invoke "rem_s" (i32.const 0x80000000) (i32.const -1)) (i32.const 0)) -(assert_return (invoke "rem_s" (i32.const 0x80000000) (i32.const 2)) (i32.const 0)) -(assert_return (invoke "rem_s" (i32.const 0x80000001) (i32.const 1000)) (i32.const -647)) -(assert_return (invoke "rem_s" (i32.const 5) (i32.const 2)) (i32.const 1)) -(assert_return (invoke "rem_s" (i32.const -5) (i32.const 2)) (i32.const -1)) -(assert_return (invoke "rem_s" (i32.const 5) (i32.const -2)) (i32.const 1)) -(assert_return (invoke "rem_s" (i32.const -5) (i32.const -2)) (i32.const -1)) -(assert_return (invoke "rem_s" (i32.const 7) (i32.const 3)) (i32.const 1)) -(assert_return (invoke "rem_s" (i32.const -7) (i32.const 3)) (i32.const -1)) -(assert_return (invoke "rem_s" (i32.const 7) (i32.const -3)) (i32.const 1)) -(assert_return (invoke "rem_s" (i32.const -7) (i32.const -3)) (i32.const -1)) -(assert_return (invoke "rem_s" (i32.const 11) (i32.const 5)) (i32.const 1)) -(assert_return (invoke "rem_s" (i32.const 17) (i32.const 7)) (i32.const 3)) - -(assert_trap (invoke "rem_u" (i32.const 1) (i32.const 0)) "integer divide by zero") -(assert_trap (invoke "rem_u" (i32.const 0) (i32.const 0)) "integer divide by zero") -(assert_return (invoke "rem_u" (i32.const 1) (i32.const 1)) (i32.const 0)) -(assert_return (invoke "rem_u" (i32.const 0) (i32.const 1)) (i32.const 0)) -(assert_return (invoke "rem_u" (i32.const -1) (i32.const -1)) (i32.const 0)) -(assert_return (invoke "rem_u" (i32.const 0x80000000) (i32.const -1)) (i32.const 0x80000000)) -(assert_return (invoke "rem_u" (i32.const 0x80000000) (i32.const 2)) (i32.const 0)) -(assert_return (invoke "rem_u" (i32.const 0x8ff00ff0) (i32.const 0x10001)) (i32.const 0x8001)) -(assert_return (invoke "rem_u" (i32.const 0x80000001) (i32.const 1000)) (i32.const 649)) -(assert_return (invoke "rem_u" (i32.const 5) (i32.const 2)) (i32.const 1)) -(assert_return (invoke "rem_u" (i32.const -5) (i32.const 2)) (i32.const 1)) -(assert_return (invoke "rem_u" (i32.const 5) (i32.const -2)) (i32.const 5)) -(assert_return (invoke "rem_u" (i32.const -5) (i32.const -2)) (i32.const -5)) -(assert_return (invoke "rem_u" (i32.const 7) (i32.const 3)) (i32.const 1)) -(assert_return (invoke "rem_u" (i32.const 11) (i32.const 5)) (i32.const 1)) -(assert_return (invoke "rem_u" (i32.const 17) (i32.const 7)) (i32.const 3)) - -(assert_return (invoke "and" (i32.const 1) (i32.const 0)) (i32.const 0)) -(assert_return (invoke "and" (i32.const 0) (i32.const 1)) (i32.const 0)) -(assert_return (invoke "and" (i32.const 1) (i32.const 1)) (i32.const 1)) -(assert_return (invoke "and" (i32.const 0) (i32.const 0)) (i32.const 0)) -(assert_return (invoke "and" (i32.const 0x7fffffff) (i32.const 0x80000000)) (i32.const 0)) -(assert_return (invoke "and" (i32.const 0x7fffffff) (i32.const -1)) (i32.const 0x7fffffff)) -(assert_return (invoke "and" (i32.const 0xf0f0ffff) (i32.const 0xfffff0f0)) (i32.const 0xf0f0f0f0)) -(assert_return (invoke "and" (i32.const 0xffffffff) (i32.const 0xffffffff)) (i32.const 0xffffffff)) - -(assert_return (invoke "or" (i32.const 1) (i32.const 0)) (i32.const 1)) -(assert_return (invoke "or" (i32.const 0) (i32.const 1)) (i32.const 1)) -(assert_return (invoke "or" (i32.const 1) (i32.const 1)) (i32.const 1)) -(assert_return (invoke "or" (i32.const 0) (i32.const 0)) (i32.const 0)) -(assert_return (invoke "or" (i32.const 0x7fffffff) (i32.const 0x80000000)) (i32.const -1)) -(assert_return (invoke "or" (i32.const 0x80000000) (i32.const 0)) (i32.const 0x80000000)) -(assert_return (invoke "or" (i32.const 0xf0f0ffff) (i32.const 0xfffff0f0)) (i32.const 0xffffffff)) -(assert_return (invoke "or" (i32.const 0xffffffff) (i32.const 0xffffffff)) (i32.const 0xffffffff)) - -(assert_return (invoke "xor" (i32.const 1) (i32.const 0)) (i32.const 1)) -(assert_return (invoke "xor" (i32.const 0) (i32.const 1)) (i32.const 1)) -(assert_return (invoke "xor" (i32.const 1) (i32.const 1)) (i32.const 0)) -(assert_return (invoke "xor" (i32.const 0) (i32.const 0)) (i32.const 0)) -(assert_return (invoke "xor" (i32.const 0x7fffffff) (i32.const 0x80000000)) (i32.const -1)) -(assert_return (invoke "xor" (i32.const 0x80000000) (i32.const 0)) (i32.const 0x80000000)) -(assert_return (invoke "xor" (i32.const -1) (i32.const 0x80000000)) (i32.const 0x7fffffff)) -(assert_return (invoke "xor" (i32.const -1) (i32.const 0x7fffffff)) (i32.const 0x80000000)) -(assert_return (invoke "xor" (i32.const 0xf0f0ffff) (i32.const 0xfffff0f0)) (i32.const 0x0f0f0f0f)) -(assert_return (invoke "xor" (i32.const 0xffffffff) (i32.const 0xffffffff)) (i32.const 0)) - -(assert_return (invoke "shl" (i32.const 1) (i32.const 1)) (i32.const 2)) -(assert_return (invoke "shl" (i32.const 1) (i32.const 0)) (i32.const 1)) -(assert_return (invoke "shl" (i32.const 0x7fffffff) (i32.const 1)) (i32.const 0xfffffffe)) -(assert_return (invoke "shl" (i32.const 0xffffffff) (i32.const 1)) (i32.const 0xfffffffe)) -(assert_return (invoke "shl" (i32.const 0x80000000) (i32.const 1)) (i32.const 0)) -(assert_return (invoke "shl" (i32.const 0x40000000) (i32.const 1)) (i32.const 0x80000000)) -(assert_return (invoke "shl" (i32.const 1) (i32.const 31)) (i32.const 0x80000000)) -(assert_return (invoke "shl" (i32.const 1) (i32.const 32)) (i32.const 1)) -(assert_return (invoke "shl" (i32.const 1) (i32.const 33)) (i32.const 2)) -(assert_return (invoke "shl" (i32.const 1) (i32.const -1)) (i32.const 0x80000000)) -(assert_return (invoke "shl" (i32.const 1) (i32.const 0x7fffffff)) (i32.const 0x80000000)) - -(assert_return (invoke "shr_s" (i32.const 1) (i32.const 1)) (i32.const 0)) -(assert_return (invoke "shr_s" (i32.const 1) (i32.const 0)) (i32.const 1)) -(assert_return (invoke "shr_s" (i32.const -1) (i32.const 1)) (i32.const -1)) -(assert_return (invoke "shr_s" (i32.const 0x7fffffff) (i32.const 1)) (i32.const 0x3fffffff)) -(assert_return (invoke "shr_s" (i32.const 0x80000000) (i32.const 1)) (i32.const 0xc0000000)) -(assert_return (invoke "shr_s" (i32.const 0x40000000) (i32.const 1)) (i32.const 0x20000000)) -(assert_return (invoke "shr_s" (i32.const 1) (i32.const 32)) (i32.const 1)) -(assert_return (invoke "shr_s" (i32.const 1) (i32.const 33)) (i32.const 0)) -(assert_return (invoke "shr_s" (i32.const 1) (i32.const -1)) (i32.const 0)) -(assert_return (invoke "shr_s" (i32.const 1) (i32.const 0x7fffffff)) (i32.const 0)) -(assert_return (invoke "shr_s" (i32.const 1) (i32.const 0x80000000)) (i32.const 1)) -(assert_return (invoke "shr_s" (i32.const 0x80000000) (i32.const 31)) (i32.const -1)) -(assert_return (invoke "shr_s" (i32.const -1) (i32.const 32)) (i32.const -1)) -(assert_return (invoke "shr_s" (i32.const -1) (i32.const 33)) (i32.const -1)) -(assert_return (invoke "shr_s" (i32.const -1) (i32.const -1)) (i32.const -1)) -(assert_return (invoke "shr_s" (i32.const -1) (i32.const 0x7fffffff)) (i32.const -1)) -(assert_return (invoke "shr_s" (i32.const -1) (i32.const 0x80000000)) (i32.const -1)) - -(assert_return (invoke "shr_u" (i32.const 1) (i32.const 1)) (i32.const 0)) -(assert_return (invoke "shr_u" (i32.const 1) (i32.const 0)) (i32.const 1)) -(assert_return (invoke "shr_u" (i32.const -1) (i32.const 1)) (i32.const 0x7fffffff)) -(assert_return (invoke "shr_u" (i32.const 0x7fffffff) (i32.const 1)) (i32.const 0x3fffffff)) -(assert_return (invoke "shr_u" (i32.const 0x80000000) (i32.const 1)) (i32.const 0x40000000)) -(assert_return (invoke "shr_u" (i32.const 0x40000000) (i32.const 1)) (i32.const 0x20000000)) -(assert_return (invoke "shr_u" (i32.const 1) (i32.const 32)) (i32.const 1)) -(assert_return (invoke "shr_u" (i32.const 1) (i32.const 33)) (i32.const 0)) -(assert_return (invoke "shr_u" (i32.const 1) (i32.const -1)) (i32.const 0)) -(assert_return (invoke "shr_u" (i32.const 1) (i32.const 0x7fffffff)) (i32.const 0)) -(assert_return (invoke "shr_u" (i32.const 1) (i32.const 0x80000000)) (i32.const 1)) -(assert_return (invoke "shr_u" (i32.const 0x80000000) (i32.const 31)) (i32.const 1)) -(assert_return (invoke "shr_u" (i32.const -1) (i32.const 32)) (i32.const -1)) -(assert_return (invoke "shr_u" (i32.const -1) (i32.const 33)) (i32.const 0x7fffffff)) -(assert_return (invoke "shr_u" (i32.const -1) (i32.const -1)) (i32.const 1)) -(assert_return (invoke "shr_u" (i32.const -1) (i32.const 0x7fffffff)) (i32.const 1)) -(assert_return (invoke "shr_u" (i32.const -1) (i32.const 0x80000000)) (i32.const -1)) - -(assert_return (invoke "rotl" (i32.const 1) (i32.const 1)) (i32.const 2)) -(assert_return (invoke "rotl" (i32.const 1) (i32.const 0)) (i32.const 1)) -(assert_return (invoke "rotl" (i32.const -1) (i32.const 1)) (i32.const -1)) -(assert_return (invoke "rotl" (i32.const 1) (i32.const 32)) (i32.const 1)) -(assert_return (invoke "rotl" (i32.const 0xabcd9876) (i32.const 1)) (i32.const 0x579b30ed)) -(assert_return (invoke "rotl" (i32.const 0xfe00dc00) (i32.const 4)) (i32.const 0xe00dc00f)) -(assert_return (invoke "rotl" (i32.const 0xb0c1d2e3) (i32.const 5)) (i32.const 0x183a5c76)) -(assert_return (invoke "rotl" (i32.const 0x00008000) (i32.const 37)) (i32.const 0x00100000)) -(assert_return (invoke "rotl" (i32.const 0xb0c1d2e3) (i32.const 0xff05)) (i32.const 0x183a5c76)) -(assert_return (invoke "rotl" (i32.const 0x769abcdf) (i32.const 0xffffffed)) (i32.const 0x579beed3)) -(assert_return (invoke "rotl" (i32.const 0x769abcdf) (i32.const 0x8000000d)) (i32.const 0x579beed3)) -(assert_return (invoke "rotl" (i32.const 1) (i32.const 31)) (i32.const 0x80000000)) -(assert_return (invoke "rotl" (i32.const 0x80000000) (i32.const 1)) (i32.const 1)) - -(assert_return (invoke "rotr" (i32.const 1) (i32.const 1)) (i32.const 0x80000000)) -(assert_return (invoke "rotr" (i32.const 1) (i32.const 0)) (i32.const 1)) -(assert_return (invoke "rotr" (i32.const -1) (i32.const 1)) (i32.const -1)) -(assert_return (invoke "rotr" (i32.const 1) (i32.const 32)) (i32.const 1)) -(assert_return (invoke "rotr" (i32.const 0xff00cc00) (i32.const 1)) (i32.const 0x7f806600)) -(assert_return (invoke "rotr" (i32.const 0x00080000) (i32.const 4)) (i32.const 0x00008000)) -(assert_return (invoke "rotr" (i32.const 0xb0c1d2e3) (i32.const 5)) (i32.const 0x1d860e97)) -(assert_return (invoke "rotr" (i32.const 0x00008000) (i32.const 37)) (i32.const 0x00000400)) -(assert_return (invoke "rotr" (i32.const 0xb0c1d2e3) (i32.const 0xff05)) (i32.const 0x1d860e97)) -(assert_return (invoke "rotr" (i32.const 0x769abcdf) (i32.const 0xffffffed)) (i32.const 0xe6fbb4d5)) -(assert_return (invoke "rotr" (i32.const 0x769abcdf) (i32.const 0x8000000d)) (i32.const 0xe6fbb4d5)) -(assert_return (invoke "rotr" (i32.const 1) (i32.const 31)) (i32.const 2)) -(assert_return (invoke "rotr" (i32.const 0x80000000) (i32.const 31)) (i32.const 1)) - -(assert_return (invoke "clz" (i32.const 0xffffffff)) (i32.const 0)) -(assert_return (invoke "clz" (i32.const 0)) (i32.const 32)) -(assert_return (invoke "clz" (i32.const 0x00008000)) (i32.const 16)) -(assert_return (invoke "clz" (i32.const 0xff)) (i32.const 24)) -(assert_return (invoke "clz" (i32.const 0x80000000)) (i32.const 0)) -(assert_return (invoke "clz" (i32.const 1)) (i32.const 31)) -(assert_return (invoke "clz" (i32.const 2)) (i32.const 30)) -(assert_return (invoke "clz" (i32.const 0x7fffffff)) (i32.const 1)) - -(assert_return (invoke "ctz" (i32.const -1)) (i32.const 0)) -(assert_return (invoke "ctz" (i32.const 0)) (i32.const 32)) -(assert_return (invoke "ctz" (i32.const 0x00008000)) (i32.const 15)) -(assert_return (invoke "ctz" (i32.const 0x00010000)) (i32.const 16)) -(assert_return (invoke "ctz" (i32.const 0x80000000)) (i32.const 31)) -(assert_return (invoke "ctz" (i32.const 0x7fffffff)) (i32.const 0)) - -(assert_return (invoke "popcnt" (i32.const -1)) (i32.const 32)) -(assert_return (invoke "popcnt" (i32.const 0)) (i32.const 0)) -(assert_return (invoke "popcnt" (i32.const 0x00008000)) (i32.const 1)) -(assert_return (invoke "popcnt" (i32.const 0x80008000)) (i32.const 2)) -(assert_return (invoke "popcnt" (i32.const 0x7fffffff)) (i32.const 31)) -(assert_return (invoke "popcnt" (i32.const 0xAAAAAAAA)) (i32.const 16)) -(assert_return (invoke "popcnt" (i32.const 0x55555555)) (i32.const 16)) -(assert_return (invoke "popcnt" (i32.const 0xDEADBEEF)) (i32.const 24)) - -;; (assert_return (invoke "extend8_s" (i32.const 0)) (i32.const 0)) -;; (assert_return (invoke "extend8_s" (i32.const 0x7f)) (i32.const 127)) -;; (assert_return (invoke "extend8_s" (i32.const 0x80)) (i32.const -128)) -;; (assert_return (invoke "extend8_s" (i32.const 0xff)) (i32.const -1)) -;; (assert_return (invoke "extend8_s" (i32.const 0x012345_00)) (i32.const 0)) -;; (assert_return (invoke "extend8_s" (i32.const 0xfedcba_80)) (i32.const -0x80)) -;; (assert_return (invoke "extend8_s" (i32.const -1)) (i32.const -1)) -;; -;; (assert_return (invoke "extend16_s" (i32.const 0)) (i32.const 0)) -;; (assert_return (invoke "extend16_s" (i32.const 0x7fff)) (i32.const 32767)) -;; (assert_return (invoke "extend16_s" (i32.const 0x8000)) (i32.const -32768)) -;; (assert_return (invoke "extend16_s" (i32.const 0xffff)) (i32.const -1)) -;; (assert_return (invoke "extend16_s" (i32.const 0x0123_0000)) (i32.const 0)) -;; (assert_return (invoke "extend16_s" (i32.const 0xfedc_8000)) (i32.const -0x8000)) -;; (assert_return (invoke "extend16_s" (i32.const -1)) (i32.const -1)) - -(assert_return (invoke "eqz" (i32.const 0)) (i32.const 1)) -(assert_return (invoke "eqz" (i32.const 1)) (i32.const 0)) -(assert_return (invoke "eqz" (i32.const 0x80000000)) (i32.const 0)) -(assert_return (invoke "eqz" (i32.const 0x7fffffff)) (i32.const 0)) -(assert_return (invoke "eqz" (i32.const 0xffffffff)) (i32.const 0)) - -(assert_return (invoke "eq" (i32.const 0) (i32.const 0)) (i32.const 1)) -(assert_return (invoke "eq" (i32.const 1) (i32.const 1)) (i32.const 1)) -(assert_return (invoke "eq" (i32.const -1) (i32.const 1)) (i32.const 0)) -(assert_return (invoke "eq" (i32.const 0x80000000) (i32.const 0x80000000)) (i32.const 1)) -(assert_return (invoke "eq" (i32.const 0x7fffffff) (i32.const 0x7fffffff)) (i32.const 1)) -(assert_return (invoke "eq" (i32.const -1) (i32.const -1)) (i32.const 1)) -(assert_return (invoke "eq" (i32.const 1) (i32.const 0)) (i32.const 0)) -(assert_return (invoke "eq" (i32.const 0) (i32.const 1)) (i32.const 0)) -(assert_return (invoke "eq" (i32.const 0x80000000) (i32.const 0)) (i32.const 0)) -(assert_return (invoke "eq" (i32.const 0) (i32.const 0x80000000)) (i32.const 0)) -(assert_return (invoke "eq" (i32.const 0x80000000) (i32.const -1)) (i32.const 0)) -(assert_return (invoke "eq" (i32.const -1) (i32.const 0x80000000)) (i32.const 0)) -(assert_return (invoke "eq" (i32.const 0x80000000) (i32.const 0x7fffffff)) (i32.const 0)) -(assert_return (invoke "eq" (i32.const 0x7fffffff) (i32.const 0x80000000)) (i32.const 0)) - -(assert_return (invoke "ne" (i32.const 0) (i32.const 0)) (i32.const 0)) -(assert_return (invoke "ne" (i32.const 1) (i32.const 1)) (i32.const 0)) -(assert_return (invoke "ne" (i32.const -1) (i32.const 1)) (i32.const 1)) -(assert_return (invoke "ne" (i32.const 0x80000000) (i32.const 0x80000000)) (i32.const 0)) -(assert_return (invoke "ne" (i32.const 0x7fffffff) (i32.const 0x7fffffff)) (i32.const 0)) -(assert_return (invoke "ne" (i32.const -1) (i32.const -1)) (i32.const 0)) -(assert_return (invoke "ne" (i32.const 1) (i32.const 0)) (i32.const 1)) -(assert_return (invoke "ne" (i32.const 0) (i32.const 1)) (i32.const 1)) -(assert_return (invoke "ne" (i32.const 0x80000000) (i32.const 0)) (i32.const 1)) -(assert_return (invoke "ne" (i32.const 0) (i32.const 0x80000000)) (i32.const 1)) -(assert_return (invoke "ne" (i32.const 0x80000000) (i32.const -1)) (i32.const 1)) -(assert_return (invoke "ne" (i32.const -1) (i32.const 0x80000000)) (i32.const 1)) -(assert_return (invoke "ne" (i32.const 0x80000000) (i32.const 0x7fffffff)) (i32.const 1)) -(assert_return (invoke "ne" (i32.const 0x7fffffff) (i32.const 0x80000000)) (i32.const 1)) - -(assert_return (invoke "lt_s" (i32.const 0) (i32.const 0)) (i32.const 0)) -(assert_return (invoke "lt_s" (i32.const 1) (i32.const 1)) (i32.const 0)) -(assert_return (invoke "lt_s" (i32.const -1) (i32.const 1)) (i32.const 1)) -(assert_return (invoke "lt_s" (i32.const 0x80000000) (i32.const 0x80000000)) (i32.const 0)) -(assert_return (invoke "lt_s" (i32.const 0x7fffffff) (i32.const 0x7fffffff)) (i32.const 0)) -(assert_return (invoke "lt_s" (i32.const -1) (i32.const -1)) (i32.const 0)) -(assert_return (invoke "lt_s" (i32.const 1) (i32.const 0)) (i32.const 0)) -(assert_return (invoke "lt_s" (i32.const 0) (i32.const 1)) (i32.const 1)) -(assert_return (invoke "lt_s" (i32.const 0x80000000) (i32.const 0)) (i32.const 1)) -(assert_return (invoke "lt_s" (i32.const 0) (i32.const 0x80000000)) (i32.const 0)) -(assert_return (invoke "lt_s" (i32.const 0x80000000) (i32.const -1)) (i32.const 1)) -(assert_return (invoke "lt_s" (i32.const -1) (i32.const 0x80000000)) (i32.const 0)) -(assert_return (invoke "lt_s" (i32.const 0x80000000) (i32.const 0x7fffffff)) (i32.const 1)) -(assert_return (invoke "lt_s" (i32.const 0x7fffffff) (i32.const 0x80000000)) (i32.const 0)) - -(assert_return (invoke "lt_u" (i32.const 0) (i32.const 0)) (i32.const 0)) -(assert_return (invoke "lt_u" (i32.const 1) (i32.const 1)) (i32.const 0)) -(assert_return (invoke "lt_u" (i32.const -1) (i32.const 1)) (i32.const 0)) -(assert_return (invoke "lt_u" (i32.const 0x80000000) (i32.const 0x80000000)) (i32.const 0)) -(assert_return (invoke "lt_u" (i32.const 0x7fffffff) (i32.const 0x7fffffff)) (i32.const 0)) -(assert_return (invoke "lt_u" (i32.const -1) (i32.const -1)) (i32.const 0)) -(assert_return (invoke "lt_u" (i32.const 1) (i32.const 0)) (i32.const 0)) -(assert_return (invoke "lt_u" (i32.const 0) (i32.const 1)) (i32.const 1)) -(assert_return (invoke "lt_u" (i32.const 0x80000000) (i32.const 0)) (i32.const 0)) -(assert_return (invoke "lt_u" (i32.const 0) (i32.const 0x80000000)) (i32.const 1)) -(assert_return (invoke "lt_u" (i32.const 0x80000000) (i32.const -1)) (i32.const 1)) -(assert_return (invoke "lt_u" (i32.const -1) (i32.const 0x80000000)) (i32.const 0)) -(assert_return (invoke "lt_u" (i32.const 0x80000000) (i32.const 0x7fffffff)) (i32.const 0)) -(assert_return (invoke "lt_u" (i32.const 0x7fffffff) (i32.const 0x80000000)) (i32.const 1)) - -(assert_return (invoke "le_s" (i32.const 0) (i32.const 0)) (i32.const 1)) -(assert_return (invoke "le_s" (i32.const 1) (i32.const 1)) (i32.const 1)) -(assert_return (invoke "le_s" (i32.const -1) (i32.const 1)) (i32.const 1)) -(assert_return (invoke "le_s" (i32.const 0x80000000) (i32.const 0x80000000)) (i32.const 1)) -(assert_return (invoke "le_s" (i32.const 0x7fffffff) (i32.const 0x7fffffff)) (i32.const 1)) -(assert_return (invoke "le_s" (i32.const -1) (i32.const -1)) (i32.const 1)) -(assert_return (invoke "le_s" (i32.const 1) (i32.const 0)) (i32.const 0)) -(assert_return (invoke "le_s" (i32.const 0) (i32.const 1)) (i32.const 1)) -(assert_return (invoke "le_s" (i32.const 0x80000000) (i32.const 0)) (i32.const 1)) -(assert_return (invoke "le_s" (i32.const 0) (i32.const 0x80000000)) (i32.const 0)) -(assert_return (invoke "le_s" (i32.const 0x80000000) (i32.const -1)) (i32.const 1)) -(assert_return (invoke "le_s" (i32.const -1) (i32.const 0x80000000)) (i32.const 0)) -(assert_return (invoke "le_s" (i32.const 0x80000000) (i32.const 0x7fffffff)) (i32.const 1)) -(assert_return (invoke "le_s" (i32.const 0x7fffffff) (i32.const 0x80000000)) (i32.const 0)) - -(assert_return (invoke "le_u" (i32.const 0) (i32.const 0)) (i32.const 1)) -(assert_return (invoke "le_u" (i32.const 1) (i32.const 1)) (i32.const 1)) -(assert_return (invoke "le_u" (i32.const -1) (i32.const 1)) (i32.const 0)) -(assert_return (invoke "le_u" (i32.const 0x80000000) (i32.const 0x80000000)) (i32.const 1)) -(assert_return (invoke "le_u" (i32.const 0x7fffffff) (i32.const 0x7fffffff)) (i32.const 1)) -(assert_return (invoke "le_u" (i32.const -1) (i32.const -1)) (i32.const 1)) -(assert_return (invoke "le_u" (i32.const 1) (i32.const 0)) (i32.const 0)) -(assert_return (invoke "le_u" (i32.const 0) (i32.const 1)) (i32.const 1)) -(assert_return (invoke "le_u" (i32.const 0x80000000) (i32.const 0)) (i32.const 0)) -(assert_return (invoke "le_u" (i32.const 0) (i32.const 0x80000000)) (i32.const 1)) -(assert_return (invoke "le_u" (i32.const 0x80000000) (i32.const -1)) (i32.const 1)) -(assert_return (invoke "le_u" (i32.const -1) (i32.const 0x80000000)) (i32.const 0)) -(assert_return (invoke "le_u" (i32.const 0x80000000) (i32.const 0x7fffffff)) (i32.const 0)) -(assert_return (invoke "le_u" (i32.const 0x7fffffff) (i32.const 0x80000000)) (i32.const 1)) - -(assert_return (invoke "gt_s" (i32.const 0) (i32.const 0)) (i32.const 0)) -(assert_return (invoke "gt_s" (i32.const 1) (i32.const 1)) (i32.const 0)) -(assert_return (invoke "gt_s" (i32.const -1) (i32.const 1)) (i32.const 0)) -(assert_return (invoke "gt_s" (i32.const 0x80000000) (i32.const 0x80000000)) (i32.const 0)) -(assert_return (invoke "gt_s" (i32.const 0x7fffffff) (i32.const 0x7fffffff)) (i32.const 0)) -(assert_return (invoke "gt_s" (i32.const -1) (i32.const -1)) (i32.const 0)) -(assert_return (invoke "gt_s" (i32.const 1) (i32.const 0)) (i32.const 1)) -(assert_return (invoke "gt_s" (i32.const 0) (i32.const 1)) (i32.const 0)) -(assert_return (invoke "gt_s" (i32.const 0x80000000) (i32.const 0)) (i32.const 0)) -(assert_return (invoke "gt_s" (i32.const 0) (i32.const 0x80000000)) (i32.const 1)) -(assert_return (invoke "gt_s" (i32.const 0x80000000) (i32.const -1)) (i32.const 0)) -(assert_return (invoke "gt_s" (i32.const -1) (i32.const 0x80000000)) (i32.const 1)) -(assert_return (invoke "gt_s" (i32.const 0x80000000) (i32.const 0x7fffffff)) (i32.const 0)) -(assert_return (invoke "gt_s" (i32.const 0x7fffffff) (i32.const 0x80000000)) (i32.const 1)) - -(assert_return (invoke "gt_u" (i32.const 0) (i32.const 0)) (i32.const 0)) -(assert_return (invoke "gt_u" (i32.const 1) (i32.const 1)) (i32.const 0)) -(assert_return (invoke "gt_u" (i32.const -1) (i32.const 1)) (i32.const 1)) -(assert_return (invoke "gt_u" (i32.const 0x80000000) (i32.const 0x80000000)) (i32.const 0)) -(assert_return (invoke "gt_u" (i32.const 0x7fffffff) (i32.const 0x7fffffff)) (i32.const 0)) -(assert_return (invoke "gt_u" (i32.const -1) (i32.const -1)) (i32.const 0)) -(assert_return (invoke "gt_u" (i32.const 1) (i32.const 0)) (i32.const 1)) -(assert_return (invoke "gt_u" (i32.const 0) (i32.const 1)) (i32.const 0)) -(assert_return (invoke "gt_u" (i32.const 0x80000000) (i32.const 0)) (i32.const 1)) -(assert_return (invoke "gt_u" (i32.const 0) (i32.const 0x80000000)) (i32.const 0)) -(assert_return (invoke "gt_u" (i32.const 0x80000000) (i32.const -1)) (i32.const 0)) -(assert_return (invoke "gt_u" (i32.const -1) (i32.const 0x80000000)) (i32.const 1)) -(assert_return (invoke "gt_u" (i32.const 0x80000000) (i32.const 0x7fffffff)) (i32.const 1)) -(assert_return (invoke "gt_u" (i32.const 0x7fffffff) (i32.const 0x80000000)) (i32.const 0)) - -(assert_return (invoke "ge_s" (i32.const 0) (i32.const 0)) (i32.const 1)) -(assert_return (invoke "ge_s" (i32.const 1) (i32.const 1)) (i32.const 1)) -(assert_return (invoke "ge_s" (i32.const -1) (i32.const 1)) (i32.const 0)) -(assert_return (invoke "ge_s" (i32.const 0x80000000) (i32.const 0x80000000)) (i32.const 1)) -(assert_return (invoke "ge_s" (i32.const 0x7fffffff) (i32.const 0x7fffffff)) (i32.const 1)) -(assert_return (invoke "ge_s" (i32.const -1) (i32.const -1)) (i32.const 1)) -(assert_return (invoke "ge_s" (i32.const 1) (i32.const 0)) (i32.const 1)) -(assert_return (invoke "ge_s" (i32.const 0) (i32.const 1)) (i32.const 0)) -(assert_return (invoke "ge_s" (i32.const 0x80000000) (i32.const 0)) (i32.const 0)) -(assert_return (invoke "ge_s" (i32.const 0) (i32.const 0x80000000)) (i32.const 1)) -(assert_return (invoke "ge_s" (i32.const 0x80000000) (i32.const -1)) (i32.const 0)) -(assert_return (invoke "ge_s" (i32.const -1) (i32.const 0x80000000)) (i32.const 1)) -(assert_return (invoke "ge_s" (i32.const 0x80000000) (i32.const 0x7fffffff)) (i32.const 0)) -(assert_return (invoke "ge_s" (i32.const 0x7fffffff) (i32.const 0x80000000)) (i32.const 1)) - -(assert_return (invoke "ge_u" (i32.const 0) (i32.const 0)) (i32.const 1)) -(assert_return (invoke "ge_u" (i32.const 1) (i32.const 1)) (i32.const 1)) -(assert_return (invoke "ge_u" (i32.const -1) (i32.const 1)) (i32.const 1)) -(assert_return (invoke "ge_u" (i32.const 0x80000000) (i32.const 0x80000000)) (i32.const 1)) -(assert_return (invoke "ge_u" (i32.const 0x7fffffff) (i32.const 0x7fffffff)) (i32.const 1)) -(assert_return (invoke "ge_u" (i32.const -1) (i32.const -1)) (i32.const 1)) -(assert_return (invoke "ge_u" (i32.const 1) (i32.const 0)) (i32.const 1)) -(assert_return (invoke "ge_u" (i32.const 0) (i32.const 1)) (i32.const 0)) -(assert_return (invoke "ge_u" (i32.const 0x80000000) (i32.const 0)) (i32.const 1)) -(assert_return (invoke "ge_u" (i32.const 0) (i32.const 0x80000000)) (i32.const 0)) -(assert_return (invoke "ge_u" (i32.const 0x80000000) (i32.const -1)) (i32.const 0)) -(assert_return (invoke "ge_u" (i32.const -1) (i32.const 0x80000000)) (i32.const 1)) -(assert_return (invoke "ge_u" (i32.const 0x80000000) (i32.const 0x7fffffff)) (i32.const 1)) -(assert_return (invoke "ge_u" (i32.const 0x7fffffff) (i32.const 0x80000000)) (i32.const 0)) - - -(assert_invalid - (module - (func $type-unary-operand-empty - (i32.eqz) (drop) - ) - ) - "type mismatch" -) -(assert_invalid - (module - (func $type-unary-operand-empty-in-block - (i32.const 0) - (block (i32.eqz) (drop)) - ) - ) - "type mismatch" -) -(assert_invalid - (module - (func $type-unary-operand-empty-in-loop - (i32.const 0) - (loop (i32.eqz) (drop)) - ) - ) - "type mismatch" -) -(assert_invalid - (module - (func $type-unary-operand-empty-in-if - (i32.const 0) (i32.const 0) - (if (then (i32.eqz) (drop))) - ) - ) - "type mismatch" -) -(assert_invalid - (module - (func $type-unary-operand-empty-in-else - (i32.const 0) (i32.const 0) - (if (result i32) (then (i32.const 0)) (else (i32.eqz))) (drop) - ) - ) - "type mismatch" -) -(assert_invalid - (module - (func $type-unary-operand-empty-in-br - (i32.const 0) - (block (br 0 (i32.eqz)) (drop)) - ) - ) - "type mismatch" -) -(assert_invalid - (module - (func $type-unary-operand-empty-in-br_if - (i32.const 0) - (block (br_if 0 (i32.eqz) (i32.const 1)) (drop)) - ) - ) - "type mismatch" -) -(assert_invalid - (module - (func $type-unary-operand-empty-in-br_table - (i32.const 0) - (block (br_table 0 (i32.eqz)) (drop)) - ) - ) - "type mismatch" -) -(assert_invalid - (module - (func $type-unary-operand-empty-in-return - (return (i32.eqz)) (drop) - ) - ) - "type mismatch" -) -(assert_invalid - (module - (func $type-unary-operand-empty-in-select - (select (i32.eqz) (i32.const 1) (i32.const 2)) (drop) - ) - ) - "type mismatch" -) -(assert_invalid - (module - (func $type-unary-operand-empty-in-call - (call 1 (i32.eqz)) (drop) - ) - (func (param i32) (result i32) (local.get 0)) - ) - "type mismatch" -) -(assert_invalid - (module - (func $f (param i32) (result i32) (local.get 0)) - (type $sig (func (param i32) (result i32))) - (table funcref (elem $f)) - (func $type-unary-operand-empty-in-call_indirect - (block (result i32) - (call_indirect (type $sig) - (i32.eqz) (i32.const 0) - ) - (drop) - ) - ) - ) - "type mismatch" -) -(assert_invalid - (module - (func $type-unary-operand-empty-in-local.set - (local i32) - (local.set 0 (i32.eqz)) (local.get 0) (drop) - ) - ) - "type mismatch" -) -(assert_invalid - (module - (func $type-unary-operand-empty-in-local.tee - (local i32) - (local.tee 0 (i32.eqz)) (drop) - ) - ) - "type mismatch" -) -(assert_invalid - (module - (global $x (mut i32) (i32.const 0)) - (func $type-unary-operand-empty-in-global.set - (global.set $x (i32.eqz)) (global.get $x) (drop) - ) - ) - "type mismatch" -) -(assert_invalid - (module - (memory 0) - (func $type-unary-operand-empty-in-memory.grow - (memory.grow (i32.eqz)) (drop) - ) - ) - "type mismatch" -) -(assert_invalid - (module - (memory 0) - (func $type-unary-operand-empty-in-load - (i32.load (i32.eqz)) (drop) - ) - ) - "type mismatch" -) -(assert_invalid - (module - (memory 1) - (func $type-unary-operand-empty-in-store - (i32.store (i32.eqz) (i32.const 1)) - ) - ) - "type mismatch" -) - -(assert_invalid - (module - (func $type-binary-1st-operand-empty - (i32.add) (drop) - ) - ) - "type mismatch" -) -(assert_invalid - (module - (func $type-binary-2nd-operand-empty - (i32.const 0) (i32.add) (drop) - ) - ) - "type mismatch" -) -(assert_invalid - (module - (func $type-binary-1st-operand-empty-in-block - (i32.const 0) (i32.const 0) - (block (i32.add) (drop)) - ) - ) - "type mismatch" -) -(assert_invalid - (module - (func $type-binary-2nd-operand-empty-in-block - (i32.const 0) - (block (i32.const 0) (i32.add) (drop)) - ) - ) - "type mismatch" -) -(assert_invalid - (module - (func $type-binary-1st-operand-empty-in-loop - (i32.const 0) (i32.const 0) - (loop (i32.add) (drop)) - ) - ) - "type mismatch" -) -(assert_invalid - (module - (func $type-binary-2nd-operand-empty-in-loop - (i32.const 0) - (loop (i32.const 0) (i32.add) (drop)) - ) - ) - "type mismatch" -) -(assert_invalid - (module - (func $type-binary-1st-operand-empty-in-if - (i32.const 0) (i32.const 0) (i32.const 0) - (if (i32.add) (then (drop))) - ) - ) - "type mismatch" -) -(assert_invalid - (module - (func $type-binary-2nd-operand-empty-in-if - (i32.const 0) (i32.const 0) - (if (i32.const 0) (then (i32.add)) (else (drop))) - ) - ) - "type mismatch" -) -(assert_invalid - (module - (func $type-binary-1st-operand-empty-in-else - (i32.const 0) (i32.const 0) (i32.const 0) - (if (result i32) (then (i32.const 0)) (else (i32.add) (i32.const 0))) - (drop) (drop) - ) - ) - "type mismatch" -) -(assert_invalid - (module - (func $type-binary-2nd-operand-empty-in-else - (i32.const 0) (i32.const 0) - (if (result i32) (then (i32.const 0)) (else (i32.add))) - (drop) - ) - ) - "type mismatch" -) -(assert_invalid - (module - (func $type-binary-1st-operand-empty-in-br - (i32.const 0) (i32.const 0) - (block (br 0 (i32.add)) (drop)) - ) - ) - "type mismatch" -) -(assert_invalid - (module - (func $type-binary-2nd-operand-empty-in-br - (i32.const 0) - (block (br 0 (i32.const 0) (i32.add)) (drop)) - ) - ) - "type mismatch" -) -(assert_invalid - (module - (func $type-binary-1st-operand-empty-in-br_if - (i32.const 0) (i32.const 0) - (block (br_if 0 (i32.add) (i32.const 1)) (drop)) - ) - ) - "type mismatch" -) -(assert_invalid - (module - (func $type-binary-2nd-operand-empty-in-br_if - (i32.const 0) - (block (br_if 0 (i32.const 0) (i32.add) (i32.const 1)) (drop)) - ) - ) - "type mismatch" -) -(assert_invalid - (module - (func $type-binary-1st-operand-empty-in-br_table - (i32.const 0) (i32.const 0) - (block (br_table 0 (i32.add)) (drop)) - ) - ) - "type mismatch" -) -(assert_invalid - (module - (func $type-binary-2nd-operand-empty-in-br_table - (i32.const 0) - (block (br_table 0 (i32.const 0) (i32.add)) (drop)) - ) - ) - "type mismatch" -) -(assert_invalid - (module - (func $type-binary-1st-operand-empty-in-return - (return (i32.add)) (drop) - ) - ) - "type mismatch" -) -(assert_invalid - (module - (func $type-binary-2nd-operand-empty-in-return - (return (i32.const 0) (i32.add)) (drop) - ) - ) - "type mismatch" -) -(assert_invalid - (module - (func $type-binary-1st-operand-empty-in-select - (select (i32.add) (i32.const 1) (i32.const 2)) (drop) - ) - ) - "type mismatch" -) -(assert_invalid - (module - (func $type-binary-2nd-operand-empty-in-select - (select (i32.const 0) (i32.add) (i32.const 1) (i32.const 2)) (drop) - ) - ) - "type mismatch" -) -(assert_invalid - (module - (func $type-binary-1st-operand-empty-in-call - (call 1 (i32.add)) (drop) - ) - (func (param i32 i32) (result i32) (local.get 0)) - ) - "type mismatch" -) -(assert_invalid - (module - (func $type-binary-2nd-operand-empty-in-call - (call 1 (i32.const 0) (i32.add)) (drop) - ) - (func (param i32 i32) (result i32) (local.get 0)) - ) - "type mismatch" -) -(assert_invalid - (module - (func $f (param i32) (result i32) (local.get 0)) - (type $sig (func (param i32) (result i32))) - (table funcref (elem $f)) - (func $type-binary-1st-operand-empty-in-call_indirect - (block (result i32) - (call_indirect (type $sig) - (i32.add) (i32.const 0) - ) - (drop) - ) - ) - ) - "type mismatch" -) -(assert_invalid - (module - (func $f (param i32) (result i32) (local.get 0)) - (type $sig (func (param i32) (result i32))) - (table funcref (elem $f)) - (func $type-binary-2nd-operand-empty-in-call_indirect - (block (result i32) - (call_indirect (type $sig) - (i32.const 0) (i32.add) (i32.const 0) - ) - (drop) - ) - ) - ) - "type mismatch" -) -(assert_invalid - (module - (func $type-binary-1st-operand-empty-in-local.set - (local i32) - (local.set 0 (i32.add)) (local.get 0) (drop) - ) - ) - "type mismatch" -) -(assert_invalid - (module - (func $type-binary-2nd-operand-empty-in-local.set - (local i32) - (local.set 0 (i32.const 0) (i32.add)) (local.get 0) (drop) - ) - ) - "type mismatch" -) -(assert_invalid - (module - (func $type-binary-1st-operand-empty-in-local.tee - (local i32) - (local.tee 0 (i32.add)) (drop) - ) - ) - "type mismatch" -) -(assert_invalid - (module - (func $type-binary-2nd-operand-empty-in-local.tee - (local i32) - (local.tee 0 (i32.const 0) (i32.add)) (drop) - ) - ) - "type mismatch" -) -(assert_invalid - (module - (global $x (mut i32) (i32.const 0)) - (func $type-binary-1st-operand-empty-in-global.set - (global.set $x (i32.add)) (global.get $x) (drop) - ) - ) - "type mismatch" -) -(assert_invalid - (module - (global $x (mut i32) (i32.const 0)) - (func $type-binary-2nd-operand-empty-in-global.set - (global.set $x (i32.const 0) (i32.add)) (global.get $x) (drop) - ) - ) - "type mismatch" -) -(assert_invalid - (module - (memory 0) - (func $type-binary-1st-operand-empty-in-memory.grow - (memory.grow (i32.add)) (drop) - ) - ) - "type mismatch" -) -(assert_invalid - (module - (memory 0) - (func $type-binary-2nd-operand-empty-in-memory.grow - (memory.grow (i32.const 0) (i32.add)) (drop) - ) - ) - "type mismatch" -) -(assert_invalid - (module - (memory 0) - (func $type-binary-1st-operand-empty-in-load - (i32.load (i32.add)) (drop) - ) - ) - "type mismatch" -) -(assert_invalid - (module - (memory 0) - (func $type-binary-2nd-operand-empty-in-load - (i32.load (i32.const 0) (i32.add)) (drop) - ) - ) - "type mismatch" -) -(assert_invalid - (module - (memory 1) - (func $type-binary-1st-operand-empty-in-store - (i32.store (i32.add) (i32.const 1)) - ) - ) - "type mismatch" -) -(assert_invalid - (module - (memory 1) - (func $type-binary-2nd-operand-empty-in-store - (i32.store (i32.const 1) (i32.add) (i32.const 0)) - ) - ) - "type mismatch" -) - - -;; Type check - -(assert_invalid (module (func (result i32) (i32.add (i64.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (result i32) (i32.and (i64.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (result i32) (i32.div_s (i64.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (result i32) (i32.div_u (i64.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (result i32) (i32.mul (i64.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (result i32) (i32.or (i64.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (result i32) (i32.rem_s (i64.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (result i32) (i32.rem_u (i64.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (result i32) (i32.rotl (i64.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (result i32) (i32.rotr (i64.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (result i32) (i32.shl (i64.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (result i32) (i32.shr_s (i64.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (result i32) (i32.shr_u (i64.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (result i32) (i32.sub (i64.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (result i32) (i32.xor (i64.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (result i32) (i32.eqz (i64.const 0)))) "type mismatch") -(assert_invalid (module (func (result i32) (i32.clz (i64.const 0)))) "type mismatch") -(assert_invalid (module (func (result i32) (i32.ctz (i64.const 0)))) "type mismatch") -(assert_invalid (module (func (result i32) (i32.popcnt (i64.const 0)))) "type mismatch") -(assert_invalid (module (func (result i32) (i32.eq (i64.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (result i32) (i32.ge_s (i64.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (result i32) (i32.ge_u (i64.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (result i32) (i32.gt_s (i64.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (result i32) (i32.gt_u (i64.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (result i32) (i32.le_s (i64.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (result i32) (i32.le_u (i64.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (result i32) (i32.lt_s (i64.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (result i32) (i32.lt_u (i64.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (result i32) (i32.ne (i64.const 0) (f32.const 0)))) "type mismatch") +;;; STDIN_FILE: third_party/testsuite/i32.wast (;; STDOUT ;;; -360/360 tests passed. +374/374 tests passed. ;;; STDOUT ;;) diff --git a/test/wasm2c/spec/i64.txt b/test/wasm2c/spec/i64.txt index db04a8ab..6061be1f 100644 --- a/test/wasm2c/spec/i64.txt +++ b/test/wasm2c/spec/i64.txt @@ -1,491 +1,5 @@ ;;; TOOL: run-spec-wasm2c -;;; NOTE: This is copied from i64.wast, with unsupported tests removed -;;; TODO: support sign-extend -;; i64 operations - -(module - (func (export "add") (param $x i64) (param $y i64) (result i64) (i64.add (local.get $x) (local.get $y))) - (func (export "sub") (param $x i64) (param $y i64) (result i64) (i64.sub (local.get $x) (local.get $y))) - (func (export "mul") (param $x i64) (param $y i64) (result i64) (i64.mul (local.get $x) (local.get $y))) - (func (export "div_s") (param $x i64) (param $y i64) (result i64) (i64.div_s (local.get $x) (local.get $y))) - (func (export "div_u") (param $x i64) (param $y i64) (result i64) (i64.div_u (local.get $x) (local.get $y))) - (func (export "rem_s") (param $x i64) (param $y i64) (result i64) (i64.rem_s (local.get $x) (local.get $y))) - (func (export "rem_u") (param $x i64) (param $y i64) (result i64) (i64.rem_u (local.get $x) (local.get $y))) - (func (export "and") (param $x i64) (param $y i64) (result i64) (i64.and (local.get $x) (local.get $y))) - (func (export "or") (param $x i64) (param $y i64) (result i64) (i64.or (local.get $x) (local.get $y))) - (func (export "xor") (param $x i64) (param $y i64) (result i64) (i64.xor (local.get $x) (local.get $y))) - (func (export "shl") (param $x i64) (param $y i64) (result i64) (i64.shl (local.get $x) (local.get $y))) - (func (export "shr_s") (param $x i64) (param $y i64) (result i64) (i64.shr_s (local.get $x) (local.get $y))) - (func (export "shr_u") (param $x i64) (param $y i64) (result i64) (i64.shr_u (local.get $x) (local.get $y))) - (func (export "rotl") (param $x i64) (param $y i64) (result i64) (i64.rotl (local.get $x) (local.get $y))) - (func (export "rotr") (param $x i64) (param $y i64) (result i64) (i64.rotr (local.get $x) (local.get $y))) - (func (export "clz") (param $x i64) (result i64) (i64.clz (local.get $x))) - (func (export "ctz") (param $x i64) (result i64) (i64.ctz (local.get $x))) - (func (export "popcnt") (param $x i64) (result i64) (i64.popcnt (local.get $x))) -;; (func (export "extend8_s") (param $x i64) (result i64) (i64.extend8_s (local.get $x))) -;; (func (export "extend16_s") (param $x i64) (result i64) (i64.extend16_s (local.get $x))) -;; (func (export "extend32_s") (param $x i64) (result i64) (i64.extend32_s (local.get $x))) - (func (export "eqz") (param $x i64) (result i32) (i64.eqz (local.get $x))) - (func (export "eq") (param $x i64) (param $y i64) (result i32) (i64.eq (local.get $x) (local.get $y))) - (func (export "ne") (param $x i64) (param $y i64) (result i32) (i64.ne (local.get $x) (local.get $y))) - (func (export "lt_s") (param $x i64) (param $y i64) (result i32) (i64.lt_s (local.get $x) (local.get $y))) - (func (export "lt_u") (param $x i64) (param $y i64) (result i32) (i64.lt_u (local.get $x) (local.get $y))) - (func (export "le_s") (param $x i64) (param $y i64) (result i32) (i64.le_s (local.get $x) (local.get $y))) - (func (export "le_u") (param $x i64) (param $y i64) (result i32) (i64.le_u (local.get $x) (local.get $y))) - (func (export "gt_s") (param $x i64) (param $y i64) (result i32) (i64.gt_s (local.get $x) (local.get $y))) - (func (export "gt_u") (param $x i64) (param $y i64) (result i32) (i64.gt_u (local.get $x) (local.get $y))) - (func (export "ge_s") (param $x i64) (param $y i64) (result i32) (i64.ge_s (local.get $x) (local.get $y))) - (func (export "ge_u") (param $x i64) (param $y i64) (result i32) (i64.ge_u (local.get $x) (local.get $y))) -) - -(assert_return (invoke "add" (i64.const 1) (i64.const 1)) (i64.const 2)) -(assert_return (invoke "add" (i64.const 1) (i64.const 0)) (i64.const 1)) -(assert_return (invoke "add" (i64.const -1) (i64.const -1)) (i64.const -2)) -(assert_return (invoke "add" (i64.const -1) (i64.const 1)) (i64.const 0)) -(assert_return (invoke "add" (i64.const 0x7fffffffffffffff) (i64.const 1)) (i64.const 0x8000000000000000)) -(assert_return (invoke "add" (i64.const 0x8000000000000000) (i64.const -1)) (i64.const 0x7fffffffffffffff)) -(assert_return (invoke "add" (i64.const 0x8000000000000000) (i64.const 0x8000000000000000)) (i64.const 0)) -(assert_return (invoke "add" (i64.const 0x3fffffff) (i64.const 1)) (i64.const 0x40000000)) - -(assert_return (invoke "sub" (i64.const 1) (i64.const 1)) (i64.const 0)) -(assert_return (invoke "sub" (i64.const 1) (i64.const 0)) (i64.const 1)) -(assert_return (invoke "sub" (i64.const -1) (i64.const -1)) (i64.const 0)) -(assert_return (invoke "sub" (i64.const 0x7fffffffffffffff) (i64.const -1)) (i64.const 0x8000000000000000)) -(assert_return (invoke "sub" (i64.const 0x8000000000000000) (i64.const 1)) (i64.const 0x7fffffffffffffff)) -(assert_return (invoke "sub" (i64.const 0x8000000000000000) (i64.const 0x8000000000000000)) (i64.const 0)) -(assert_return (invoke "sub" (i64.const 0x3fffffff) (i64.const -1)) (i64.const 0x40000000)) - -(assert_return (invoke "mul" (i64.const 1) (i64.const 1)) (i64.const 1)) -(assert_return (invoke "mul" (i64.const 1) (i64.const 0)) (i64.const 0)) -(assert_return (invoke "mul" (i64.const -1) (i64.const -1)) (i64.const 1)) -(assert_return (invoke "mul" (i64.const 0x1000000000000000) (i64.const 4096)) (i64.const 0)) -(assert_return (invoke "mul" (i64.const 0x8000000000000000) (i64.const 0)) (i64.const 0)) -(assert_return (invoke "mul" (i64.const 0x8000000000000000) (i64.const -1)) (i64.const 0x8000000000000000)) -(assert_return (invoke "mul" (i64.const 0x7fffffffffffffff) (i64.const -1)) (i64.const 0x8000000000000001)) -(assert_return (invoke "mul" (i64.const 0x0123456789abcdef) (i64.const 0xfedcba9876543210)) (i64.const 0x2236d88fe5618cf0)) -(assert_return (invoke "mul" (i64.const 0x7fffffffffffffff) (i64.const 0x7fffffffffffffff)) (i64.const 1)) - -(assert_trap (invoke "div_s" (i64.const 1) (i64.const 0)) "integer divide by zero") -(assert_trap (invoke "div_s" (i64.const 0) (i64.const 0)) "integer divide by zero") -(assert_trap (invoke "div_s" (i64.const 0x8000000000000000) (i64.const -1)) "integer overflow") -(assert_trap (invoke "div_s" (i64.const 0x8000000000000000) (i64.const 0)) "integer divide by zero") -(assert_return (invoke "div_s" (i64.const 1) (i64.const 1)) (i64.const 1)) -(assert_return (invoke "div_s" (i64.const 0) (i64.const 1)) (i64.const 0)) -(assert_return (invoke "div_s" (i64.const 0) (i64.const -1)) (i64.const 0)) -(assert_return (invoke "div_s" (i64.const -1) (i64.const -1)) (i64.const 1)) -(assert_return (invoke "div_s" (i64.const 0x8000000000000000) (i64.const 2)) (i64.const 0xc000000000000000)) -(assert_return (invoke "div_s" (i64.const 0x8000000000000001) (i64.const 1000)) (i64.const 0xffdf3b645a1cac09)) -(assert_return (invoke "div_s" (i64.const 5) (i64.const 2)) (i64.const 2)) -(assert_return (invoke "div_s" (i64.const -5) (i64.const 2)) (i64.const -2)) -(assert_return (invoke "div_s" (i64.const 5) (i64.const -2)) (i64.const -2)) -(assert_return (invoke "div_s" (i64.const -5) (i64.const -2)) (i64.const 2)) -(assert_return (invoke "div_s" (i64.const 7) (i64.const 3)) (i64.const 2)) -(assert_return (invoke "div_s" (i64.const -7) (i64.const 3)) (i64.const -2)) -(assert_return (invoke "div_s" (i64.const 7) (i64.const -3)) (i64.const -2)) -(assert_return (invoke "div_s" (i64.const -7) (i64.const -3)) (i64.const 2)) -(assert_return (invoke "div_s" (i64.const 11) (i64.const 5)) (i64.const 2)) -(assert_return (invoke "div_s" (i64.const 17) (i64.const 7)) (i64.const 2)) - -(assert_trap (invoke "div_u" (i64.const 1) (i64.const 0)) "integer divide by zero") -(assert_trap (invoke "div_u" (i64.const 0) (i64.const 0)) "integer divide by zero") -(assert_return (invoke "div_u" (i64.const 1) (i64.const 1)) (i64.const 1)) -(assert_return (invoke "div_u" (i64.const 0) (i64.const 1)) (i64.const 0)) -(assert_return (invoke "div_u" (i64.const -1) (i64.const -1)) (i64.const 1)) -(assert_return (invoke "div_u" (i64.const 0x8000000000000000) (i64.const -1)) (i64.const 0)) -(assert_return (invoke "div_u" (i64.const 0x8000000000000000) (i64.const 2)) (i64.const 0x4000000000000000)) -(assert_return (invoke "div_u" (i64.const 0x8ff00ff00ff00ff0) (i64.const 0x100000001)) (i64.const 0x8ff00fef)) -(assert_return (invoke "div_u" (i64.const 0x8000000000000001) (i64.const 1000)) (i64.const 0x20c49ba5e353f7)) -(assert_return (invoke "div_u" (i64.const 5) (i64.const 2)) (i64.const 2)) -(assert_return (invoke "div_u" (i64.const -5) (i64.const 2)) (i64.const 0x7ffffffffffffffd)) -(assert_return (invoke "div_u" (i64.const 5) (i64.const -2)) (i64.const 0)) -(assert_return (invoke "div_u" (i64.const -5) (i64.const -2)) (i64.const 0)) -(assert_return (invoke "div_u" (i64.const 7) (i64.const 3)) (i64.const 2)) -(assert_return (invoke "div_u" (i64.const 11) (i64.const 5)) (i64.const 2)) -(assert_return (invoke "div_u" (i64.const 17) (i64.const 7)) (i64.const 2)) - -(assert_trap (invoke "rem_s" (i64.const 1) (i64.const 0)) "integer divide by zero") -(assert_trap (invoke "rem_s" (i64.const 0) (i64.const 0)) "integer divide by zero") -(assert_return (invoke "rem_s" (i64.const 0x7fffffffffffffff) (i64.const -1)) (i64.const 0)) -(assert_return (invoke "rem_s" (i64.const 1) (i64.const 1)) (i64.const 0)) -(assert_return (invoke "rem_s" (i64.const 0) (i64.const 1)) (i64.const 0)) -(assert_return (invoke "rem_s" (i64.const 0) (i64.const -1)) (i64.const 0)) -(assert_return (invoke "rem_s" (i64.const -1) (i64.const -1)) (i64.const 0)) -(assert_return (invoke "rem_s" (i64.const 0x8000000000000000) (i64.const -1)) (i64.const 0)) -(assert_return (invoke "rem_s" (i64.const 0x8000000000000000) (i64.const 2)) (i64.const 0)) -(assert_return (invoke "rem_s" (i64.const 0x8000000000000001) (i64.const 1000)) (i64.const -807)) -(assert_return (invoke "rem_s" (i64.const 5) (i64.const 2)) (i64.const 1)) -(assert_return (invoke "rem_s" (i64.const -5) (i64.const 2)) (i64.const -1)) -(assert_return (invoke "rem_s" (i64.const 5) (i64.const -2)) (i64.const 1)) -(assert_return (invoke "rem_s" (i64.const -5) (i64.const -2)) (i64.const -1)) -(assert_return (invoke "rem_s" (i64.const 7) (i64.const 3)) (i64.const 1)) -(assert_return (invoke "rem_s" (i64.const -7) (i64.const 3)) (i64.const -1)) -(assert_return (invoke "rem_s" (i64.const 7) (i64.const -3)) (i64.const 1)) -(assert_return (invoke "rem_s" (i64.const -7) (i64.const -3)) (i64.const -1)) -(assert_return (invoke "rem_s" (i64.const 11) (i64.const 5)) (i64.const 1)) -(assert_return (invoke "rem_s" (i64.const 17) (i64.const 7)) (i64.const 3)) - -(assert_trap (invoke "rem_u" (i64.const 1) (i64.const 0)) "integer divide by zero") -(assert_trap (invoke "rem_u" (i64.const 0) (i64.const 0)) "integer divide by zero") -(assert_return (invoke "rem_u" (i64.const 1) (i64.const 1)) (i64.const 0)) -(assert_return (invoke "rem_u" (i64.const 0) (i64.const 1)) (i64.const 0)) -(assert_return (invoke "rem_u" (i64.const -1) (i64.const -1)) (i64.const 0)) -(assert_return (invoke "rem_u" (i64.const 0x8000000000000000) (i64.const -1)) (i64.const 0x8000000000000000)) -(assert_return (invoke "rem_u" (i64.const 0x8000000000000000) (i64.const 2)) (i64.const 0)) -(assert_return (invoke "rem_u" (i64.const 0x8ff00ff00ff00ff0) (i64.const 0x100000001)) (i64.const 0x80000001)) -(assert_return (invoke "rem_u" (i64.const 0x8000000000000001) (i64.const 1000)) (i64.const 809)) -(assert_return (invoke "rem_u" (i64.const 5) (i64.const 2)) (i64.const 1)) -(assert_return (invoke "rem_u" (i64.const -5) (i64.const 2)) (i64.const 1)) -(assert_return (invoke "rem_u" (i64.const 5) (i64.const -2)) (i64.const 5)) -(assert_return (invoke "rem_u" (i64.const -5) (i64.const -2)) (i64.const -5)) -(assert_return (invoke "rem_u" (i64.const 7) (i64.const 3)) (i64.const 1)) -(assert_return (invoke "rem_u" (i64.const 11) (i64.const 5)) (i64.const 1)) -(assert_return (invoke "rem_u" (i64.const 17) (i64.const 7)) (i64.const 3)) - -(assert_return (invoke "and" (i64.const 1) (i64.const 0)) (i64.const 0)) -(assert_return (invoke "and" (i64.const 0) (i64.const 1)) (i64.const 0)) -(assert_return (invoke "and" (i64.const 1) (i64.const 1)) (i64.const 1)) -(assert_return (invoke "and" (i64.const 0) (i64.const 0)) (i64.const 0)) -(assert_return (invoke "and" (i64.const 0x7fffffffffffffff) (i64.const 0x8000000000000000)) (i64.const 0)) -(assert_return (invoke "and" (i64.const 0x7fffffffffffffff) (i64.const -1)) (i64.const 0x7fffffffffffffff)) -(assert_return (invoke "and" (i64.const 0xf0f0ffff) (i64.const 0xfffff0f0)) (i64.const 0xf0f0f0f0)) -(assert_return (invoke "and" (i64.const 0xffffffffffffffff) (i64.const 0xffffffffffffffff)) (i64.const 0xffffffffffffffff)) - -(assert_return (invoke "or" (i64.const 1) (i64.const 0)) (i64.const 1)) -(assert_return (invoke "or" (i64.const 0) (i64.const 1)) (i64.const 1)) -(assert_return (invoke "or" (i64.const 1) (i64.const 1)) (i64.const 1)) -(assert_return (invoke "or" (i64.const 0) (i64.const 0)) (i64.const 0)) -(assert_return (invoke "or" (i64.const 0x7fffffffffffffff) (i64.const 0x8000000000000000)) (i64.const -1)) -(assert_return (invoke "or" (i64.const 0x8000000000000000) (i64.const 0)) (i64.const 0x8000000000000000)) -(assert_return (invoke "or" (i64.const 0xf0f0ffff) (i64.const 0xfffff0f0)) (i64.const 0xffffffff)) -(assert_return (invoke "or" (i64.const 0xffffffffffffffff) (i64.const 0xffffffffffffffff)) (i64.const 0xffffffffffffffff)) - -(assert_return (invoke "xor" (i64.const 1) (i64.const 0)) (i64.const 1)) -(assert_return (invoke "xor" (i64.const 0) (i64.const 1)) (i64.const 1)) -(assert_return (invoke "xor" (i64.const 1) (i64.const 1)) (i64.const 0)) -(assert_return (invoke "xor" (i64.const 0) (i64.const 0)) (i64.const 0)) -(assert_return (invoke "xor" (i64.const 0x7fffffffffffffff) (i64.const 0x8000000000000000)) (i64.const -1)) -(assert_return (invoke "xor" (i64.const 0x8000000000000000) (i64.const 0)) (i64.const 0x8000000000000000)) -(assert_return (invoke "xor" (i64.const -1) (i64.const 0x8000000000000000)) (i64.const 0x7fffffffffffffff)) -(assert_return (invoke "xor" (i64.const -1) (i64.const 0x7fffffffffffffff)) (i64.const 0x8000000000000000)) -(assert_return (invoke "xor" (i64.const 0xf0f0ffff) (i64.const 0xfffff0f0)) (i64.const 0x0f0f0f0f)) -(assert_return (invoke "xor" (i64.const 0xffffffffffffffff) (i64.const 0xffffffffffffffff)) (i64.const 0)) - -(assert_return (invoke "shl" (i64.const 1) (i64.const 1)) (i64.const 2)) -(assert_return (invoke "shl" (i64.const 1) (i64.const 0)) (i64.const 1)) -(assert_return (invoke "shl" (i64.const 0x7fffffffffffffff) (i64.const 1)) (i64.const 0xfffffffffffffffe)) -(assert_return (invoke "shl" (i64.const 0xffffffffffffffff) (i64.const 1)) (i64.const 0xfffffffffffffffe)) -(assert_return (invoke "shl" (i64.const 0x8000000000000000) (i64.const 1)) (i64.const 0)) -(assert_return (invoke "shl" (i64.const 0x4000000000000000) (i64.const 1)) (i64.const 0x8000000000000000)) -(assert_return (invoke "shl" (i64.const 1) (i64.const 63)) (i64.const 0x8000000000000000)) -(assert_return (invoke "shl" (i64.const 1) (i64.const 64)) (i64.const 1)) -(assert_return (invoke "shl" (i64.const 1) (i64.const 65)) (i64.const 2)) -(assert_return (invoke "shl" (i64.const 1) (i64.const -1)) (i64.const 0x8000000000000000)) -(assert_return (invoke "shl" (i64.const 1) (i64.const 0x7fffffffffffffff)) (i64.const 0x8000000000000000)) - -(assert_return (invoke "shr_s" (i64.const 1) (i64.const 1)) (i64.const 0)) -(assert_return (invoke "shr_s" (i64.const 1) (i64.const 0)) (i64.const 1)) -(assert_return (invoke "shr_s" (i64.const -1) (i64.const 1)) (i64.const -1)) -(assert_return (invoke "shr_s" (i64.const 0x7fffffffffffffff) (i64.const 1)) (i64.const 0x3fffffffffffffff)) -(assert_return (invoke "shr_s" (i64.const 0x8000000000000000) (i64.const 1)) (i64.const 0xc000000000000000)) -(assert_return (invoke "shr_s" (i64.const 0x4000000000000000) (i64.const 1)) (i64.const 0x2000000000000000)) -(assert_return (invoke "shr_s" (i64.const 1) (i64.const 64)) (i64.const 1)) -(assert_return (invoke "shr_s" (i64.const 1) (i64.const 65)) (i64.const 0)) -(assert_return (invoke "shr_s" (i64.const 1) (i64.const -1)) (i64.const 0)) -(assert_return (invoke "shr_s" (i64.const 1) (i64.const 0x7fffffffffffffff)) (i64.const 0)) -(assert_return (invoke "shr_s" (i64.const 1) (i64.const 0x8000000000000000)) (i64.const 1)) -(assert_return (invoke "shr_s" (i64.const 0x8000000000000000) (i64.const 63)) (i64.const -1)) -(assert_return (invoke "shr_s" (i64.const -1) (i64.const 64)) (i64.const -1)) -(assert_return (invoke "shr_s" (i64.const -1) (i64.const 65)) (i64.const -1)) -(assert_return (invoke "shr_s" (i64.const -1) (i64.const -1)) (i64.const -1)) -(assert_return (invoke "shr_s" (i64.const -1) (i64.const 0x7fffffffffffffff)) (i64.const -1)) -(assert_return (invoke "shr_s" (i64.const -1) (i64.const 0x8000000000000000)) (i64.const -1)) - -(assert_return (invoke "shr_u" (i64.const 1) (i64.const 1)) (i64.const 0)) -(assert_return (invoke "shr_u" (i64.const 1) (i64.const 0)) (i64.const 1)) -(assert_return (invoke "shr_u" (i64.const -1) (i64.const 1)) (i64.const 0x7fffffffffffffff)) -(assert_return (invoke "shr_u" (i64.const 0x7fffffffffffffff) (i64.const 1)) (i64.const 0x3fffffffffffffff)) -(assert_return (invoke "shr_u" (i64.const 0x8000000000000000) (i64.const 1)) (i64.const 0x4000000000000000)) -(assert_return (invoke "shr_u" (i64.const 0x4000000000000000) (i64.const 1)) (i64.const 0x2000000000000000)) -(assert_return (invoke "shr_u" (i64.const 1) (i64.const 64)) (i64.const 1)) -(assert_return (invoke "shr_u" (i64.const 1) (i64.const 65)) (i64.const 0)) -(assert_return (invoke "shr_u" (i64.const 1) (i64.const -1)) (i64.const 0)) -(assert_return (invoke "shr_u" (i64.const 1) (i64.const 0x7fffffffffffffff)) (i64.const 0)) -(assert_return (invoke "shr_u" (i64.const 1) (i64.const 0x8000000000000000)) (i64.const 1)) -(assert_return (invoke "shr_u" (i64.const 0x8000000000000000) (i64.const 63)) (i64.const 1)) -(assert_return (invoke "shr_u" (i64.const -1) (i64.const 64)) (i64.const -1)) -(assert_return (invoke "shr_u" (i64.const -1) (i64.const 65)) (i64.const 0x7fffffffffffffff)) -(assert_return (invoke "shr_u" (i64.const -1) (i64.const -1)) (i64.const 1)) -(assert_return (invoke "shr_u" (i64.const -1) (i64.const 0x7fffffffffffffff)) (i64.const 1)) -(assert_return (invoke "shr_u" (i64.const -1) (i64.const 0x8000000000000000)) (i64.const -1)) - -(assert_return (invoke "rotl" (i64.const 1) (i64.const 1)) (i64.const 2)) -(assert_return (invoke "rotl" (i64.const 1) (i64.const 0)) (i64.const 1)) -(assert_return (invoke "rotl" (i64.const -1) (i64.const 1)) (i64.const -1)) -(assert_return (invoke "rotl" (i64.const 1) (i64.const 64)) (i64.const 1)) -(assert_return (invoke "rotl" (i64.const 0xabcd987602468ace) (i64.const 1)) (i64.const 0x579b30ec048d159d)) -(assert_return (invoke "rotl" (i64.const 0xfe000000dc000000) (i64.const 4)) (i64.const 0xe000000dc000000f)) -(assert_return (invoke "rotl" (i64.const 0xabcd1234ef567809) (i64.const 53)) (i64.const 0x013579a2469deacf)) -(assert_return (invoke "rotl" (i64.const 0xabd1234ef567809c) (i64.const 63)) (i64.const 0x55e891a77ab3c04e)) -(assert_return (invoke "rotl" (i64.const 0xabcd1234ef567809) (i64.const 0xf5)) (i64.const 0x013579a2469deacf)) -(assert_return (invoke "rotl" (i64.const 0xabcd7294ef567809) (i64.const 0xffffffffffffffed)) (i64.const 0xcf013579ae529dea)) -(assert_return (invoke "rotl" (i64.const 0xabd1234ef567809c) (i64.const 0x800000000000003f)) (i64.const 0x55e891a77ab3c04e)) -(assert_return (invoke "rotl" (i64.const 1) (i64.const 63)) (i64.const 0x8000000000000000)) -(assert_return (invoke "rotl" (i64.const 0x8000000000000000) (i64.const 1)) (i64.const 1)) - -(assert_return (invoke "rotr" (i64.const 1) (i64.const 1)) (i64.const 0x8000000000000000)) -(assert_return (invoke "rotr" (i64.const 1) (i64.const 0)) (i64.const 1)) -(assert_return (invoke "rotr" (i64.const -1) (i64.const 1)) (i64.const -1)) -(assert_return (invoke "rotr" (i64.const 1) (i64.const 64)) (i64.const 1)) -(assert_return (invoke "rotr" (i64.const 0xabcd987602468ace) (i64.const 1)) (i64.const 0x55e6cc3b01234567)) -(assert_return (invoke "rotr" (i64.const 0xfe000000dc000000) (i64.const 4)) (i64.const 0x0fe000000dc00000)) -(assert_return (invoke "rotr" (i64.const 0xabcd1234ef567809) (i64.const 53)) (i64.const 0x6891a77ab3c04d5e)) -(assert_return (invoke "rotr" (i64.const 0xabd1234ef567809c) (i64.const 63)) (i64.const 0x57a2469deacf0139)) -(assert_return (invoke "rotr" (i64.const 0xabcd1234ef567809) (i64.const 0xf5)) (i64.const 0x6891a77ab3c04d5e)) -(assert_return (invoke "rotr" (i64.const 0xabcd7294ef567809) (i64.const 0xffffffffffffffed)) (i64.const 0x94a77ab3c04d5e6b)) -(assert_return (invoke "rotr" (i64.const 0xabd1234ef567809c) (i64.const 0x800000000000003f)) (i64.const 0x57a2469deacf0139)) -(assert_return (invoke "rotr" (i64.const 1) (i64.const 63)) (i64.const 2)) -(assert_return (invoke "rotr" (i64.const 0x8000000000000000) (i64.const 63)) (i64.const 1)) - -(assert_return (invoke "clz" (i64.const 0xffffffffffffffff)) (i64.const 0)) -(assert_return (invoke "clz" (i64.const 0)) (i64.const 64)) -(assert_return (invoke "clz" (i64.const 0x00008000)) (i64.const 48)) -(assert_return (invoke "clz" (i64.const 0xff)) (i64.const 56)) -(assert_return (invoke "clz" (i64.const 0x8000000000000000)) (i64.const 0)) -(assert_return (invoke "clz" (i64.const 1)) (i64.const 63)) -(assert_return (invoke "clz" (i64.const 2)) (i64.const 62)) -(assert_return (invoke "clz" (i64.const 0x7fffffffffffffff)) (i64.const 1)) - -(assert_return (invoke "ctz" (i64.const -1)) (i64.const 0)) -(assert_return (invoke "ctz" (i64.const 0)) (i64.const 64)) -(assert_return (invoke "ctz" (i64.const 0x00008000)) (i64.const 15)) -(assert_return (invoke "ctz" (i64.const 0x00010000)) (i64.const 16)) -(assert_return (invoke "ctz" (i64.const 0x8000000000000000)) (i64.const 63)) -(assert_return (invoke "ctz" (i64.const 0x7fffffffffffffff)) (i64.const 0)) - -(assert_return (invoke "popcnt" (i64.const -1)) (i64.const 64)) -(assert_return (invoke "popcnt" (i64.const 0)) (i64.const 0)) -(assert_return (invoke "popcnt" (i64.const 0x00008000)) (i64.const 1)) -(assert_return (invoke "popcnt" (i64.const 0x8000800080008000)) (i64.const 4)) -(assert_return (invoke "popcnt" (i64.const 0x7fffffffffffffff)) (i64.const 63)) -(assert_return (invoke "popcnt" (i64.const 0xAAAAAAAA55555555)) (i64.const 32)) -(assert_return (invoke "popcnt" (i64.const 0x99999999AAAAAAAA)) (i64.const 32)) -(assert_return (invoke "popcnt" (i64.const 0xDEADBEEFDEADBEEF)) (i64.const 48)) - -;; (assert_return (invoke "extend8_s" (i64.const 0)) (i64.const 0)) -;; (assert_return (invoke "extend8_s" (i64.const 0x7f)) (i64.const 127)) -;; (assert_return (invoke "extend8_s" (i64.const 0x80)) (i64.const -128)) -;; (assert_return (invoke "extend8_s" (i64.const 0xff)) (i64.const -1)) -;; (assert_return (invoke "extend8_s" (i64.const 0x01234567_89abcd_00)) (i64.const 0)) -;; (assert_return (invoke "extend8_s" (i64.const 0xfedcba98_765432_80)) (i64.const -0x80)) -;; (assert_return (invoke "extend8_s" (i64.const -1)) (i64.const -1)) -;; -;; (assert_return (invoke "extend16_s" (i64.const 0)) (i64.const 0)) -;; (assert_return (invoke "extend16_s" (i64.const 0x7fff)) (i64.const 32767)) -;; (assert_return (invoke "extend16_s" (i64.const 0x8000)) (i64.const -32768)) -;; (assert_return (invoke "extend16_s" (i64.const 0xffff)) (i64.const -1)) -;; (assert_return (invoke "extend16_s" (i64.const 0x12345678_9abc_0000)) (i64.const 0)) -;; (assert_return (invoke "extend16_s" (i64.const 0xfedcba98_7654_8000)) (i64.const -0x8000)) -;; (assert_return (invoke "extend16_s" (i64.const -1)) (i64.const -1)) -;; -;; (assert_return (invoke "extend32_s" (i64.const 0)) (i64.const 0)) -;; (assert_return (invoke "extend32_s" (i64.const 0x7fff)) (i64.const 32767)) -;; (assert_return (invoke "extend32_s" (i64.const 0x8000)) (i64.const 32768)) -;; (assert_return (invoke "extend32_s" (i64.const 0xffff)) (i64.const 65535)) -;; (assert_return (invoke "extend32_s" (i64.const 0x7fffffff)) (i64.const 0x7fffffff)) -;; (assert_return (invoke "extend32_s" (i64.const 0x80000000)) (i64.const -0x80000000)) -;; (assert_return (invoke "extend32_s" (i64.const 0xffffffff)) (i64.const -1)) -;; (assert_return (invoke "extend32_s" (i64.const 0x01234567_00000000)) (i64.const 0)) -;; (assert_return (invoke "extend32_s" (i64.const 0xfedcba98_80000000)) (i64.const -0x80000000)) -;; (assert_return (invoke "extend32_s" (i64.const -1)) (i64.const -1)) - -(assert_return (invoke "eqz" (i64.const 0)) (i32.const 1)) -(assert_return (invoke "eqz" (i64.const 1)) (i32.const 0)) -(assert_return (invoke "eqz" (i64.const 0x8000000000000000)) (i32.const 0)) -(assert_return (invoke "eqz" (i64.const 0x7fffffffffffffff)) (i32.const 0)) -(assert_return (invoke "eqz" (i64.const 0xffffffffffffffff)) (i32.const 0)) - -(assert_return (invoke "eq" (i64.const 0) (i64.const 0)) (i32.const 1)) -(assert_return (invoke "eq" (i64.const 1) (i64.const 1)) (i32.const 1)) -(assert_return (invoke "eq" (i64.const -1) (i64.const 1)) (i32.const 0)) -(assert_return (invoke "eq" (i64.const 0x8000000000000000) (i64.const 0x8000000000000000)) (i32.const 1)) -(assert_return (invoke "eq" (i64.const 0x7fffffffffffffff) (i64.const 0x7fffffffffffffff)) (i32.const 1)) -(assert_return (invoke "eq" (i64.const -1) (i64.const -1)) (i32.const 1)) -(assert_return (invoke "eq" (i64.const 1) (i64.const 0)) (i32.const 0)) -(assert_return (invoke "eq" (i64.const 0) (i64.const 1)) (i32.const 0)) -(assert_return (invoke "eq" (i64.const 0x8000000000000000) (i64.const 0)) (i32.const 0)) -(assert_return (invoke "eq" (i64.const 0) (i64.const 0x8000000000000000)) (i32.const 0)) -(assert_return (invoke "eq" (i64.const 0x8000000000000000) (i64.const -1)) (i32.const 0)) -(assert_return (invoke "eq" (i64.const -1) (i64.const 0x8000000000000000)) (i32.const 0)) -(assert_return (invoke "eq" (i64.const 0x8000000000000000) (i64.const 0x7fffffffffffffff)) (i32.const 0)) -(assert_return (invoke "eq" (i64.const 0x7fffffffffffffff) (i64.const 0x8000000000000000)) (i32.const 0)) - -(assert_return (invoke "ne" (i64.const 0) (i64.const 0)) (i32.const 0)) -(assert_return (invoke "ne" (i64.const 1) (i64.const 1)) (i32.const 0)) -(assert_return (invoke "ne" (i64.const -1) (i64.const 1)) (i32.const 1)) -(assert_return (invoke "ne" (i64.const 0x8000000000000000) (i64.const 0x8000000000000000)) (i32.const 0)) -(assert_return (invoke "ne" (i64.const 0x7fffffffffffffff) (i64.const 0x7fffffffffffffff)) (i32.const 0)) -(assert_return (invoke "ne" (i64.const -1) (i64.const -1)) (i32.const 0)) -(assert_return (invoke "ne" (i64.const 1) (i64.const 0)) (i32.const 1)) -(assert_return (invoke "ne" (i64.const 0) (i64.const 1)) (i32.const 1)) -(assert_return (invoke "ne" (i64.const 0x8000000000000000) (i64.const 0)) (i32.const 1)) -(assert_return (invoke "ne" (i64.const 0) (i64.const 0x8000000000000000)) (i32.const 1)) -(assert_return (invoke "ne" (i64.const 0x8000000000000000) (i64.const -1)) (i32.const 1)) -(assert_return (invoke "ne" (i64.const -1) (i64.const 0x8000000000000000)) (i32.const 1)) -(assert_return (invoke "ne" (i64.const 0x8000000000000000) (i64.const 0x7fffffffffffffff)) (i32.const 1)) -(assert_return (invoke "ne" (i64.const 0x7fffffffffffffff) (i64.const 0x8000000000000000)) (i32.const 1)) - -(assert_return (invoke "lt_s" (i64.const 0) (i64.const 0)) (i32.const 0)) -(assert_return (invoke "lt_s" (i64.const 1) (i64.const 1)) (i32.const 0)) -(assert_return (invoke "lt_s" (i64.const -1) (i64.const 1)) (i32.const 1)) -(assert_return (invoke "lt_s" (i64.const 0x8000000000000000) (i64.const 0x8000000000000000)) (i32.const 0)) -(assert_return (invoke "lt_s" (i64.const 0x7fffffffffffffff) (i64.const 0x7fffffffffffffff)) (i32.const 0)) -(assert_return (invoke "lt_s" (i64.const -1) (i64.const -1)) (i32.const 0)) -(assert_return (invoke "lt_s" (i64.const 1) (i64.const 0)) (i32.const 0)) -(assert_return (invoke "lt_s" (i64.const 0) (i64.const 1)) (i32.const 1)) -(assert_return (invoke "lt_s" (i64.const 0x8000000000000000) (i64.const 0)) (i32.const 1)) -(assert_return (invoke "lt_s" (i64.const 0) (i64.const 0x8000000000000000)) (i32.const 0)) -(assert_return (invoke "lt_s" (i64.const 0x8000000000000000) (i64.const -1)) (i32.const 1)) -(assert_return (invoke "lt_s" (i64.const -1) (i64.const 0x8000000000000000)) (i32.const 0)) -(assert_return (invoke "lt_s" (i64.const 0x8000000000000000) (i64.const 0x7fffffffffffffff)) (i32.const 1)) -(assert_return (invoke "lt_s" (i64.const 0x7fffffffffffffff) (i64.const 0x8000000000000000)) (i32.const 0)) - -(assert_return (invoke "lt_u" (i64.const 0) (i64.const 0)) (i32.const 0)) -(assert_return (invoke "lt_u" (i64.const 1) (i64.const 1)) (i32.const 0)) -(assert_return (invoke "lt_u" (i64.const -1) (i64.const 1)) (i32.const 0)) -(assert_return (invoke "lt_u" (i64.const 0x8000000000000000) (i64.const 0x8000000000000000)) (i32.const 0)) -(assert_return (invoke "lt_u" (i64.const 0x7fffffffffffffff) (i64.const 0x7fffffffffffffff)) (i32.const 0)) -(assert_return (invoke "lt_u" (i64.const -1) (i64.const -1)) (i32.const 0)) -(assert_return (invoke "lt_u" (i64.const 1) (i64.const 0)) (i32.const 0)) -(assert_return (invoke "lt_u" (i64.const 0) (i64.const 1)) (i32.const 1)) -(assert_return (invoke "lt_u" (i64.const 0x8000000000000000) (i64.const 0)) (i32.const 0)) -(assert_return (invoke "lt_u" (i64.const 0) (i64.const 0x8000000000000000)) (i32.const 1)) -(assert_return (invoke "lt_u" (i64.const 0x8000000000000000) (i64.const -1)) (i32.const 1)) -(assert_return (invoke "lt_u" (i64.const -1) (i64.const 0x8000000000000000)) (i32.const 0)) -(assert_return (invoke "lt_u" (i64.const 0x8000000000000000) (i64.const 0x7fffffffffffffff)) (i32.const 0)) -(assert_return (invoke "lt_u" (i64.const 0x7fffffffffffffff) (i64.const 0x8000000000000000)) (i32.const 1)) - -(assert_return (invoke "le_s" (i64.const 0) (i64.const 0)) (i32.const 1)) -(assert_return (invoke "le_s" (i64.const 1) (i64.const 1)) (i32.const 1)) -(assert_return (invoke "le_s" (i64.const -1) (i64.const 1)) (i32.const 1)) -(assert_return (invoke "le_s" (i64.const 0x8000000000000000) (i64.const 0x8000000000000000)) (i32.const 1)) -(assert_return (invoke "le_s" (i64.const 0x7fffffffffffffff) (i64.const 0x7fffffffffffffff)) (i32.const 1)) -(assert_return (invoke "le_s" (i64.const -1) (i64.const -1)) (i32.const 1)) -(assert_return (invoke "le_s" (i64.const 1) (i64.const 0)) (i32.const 0)) -(assert_return (invoke "le_s" (i64.const 0) (i64.const 1)) (i32.const 1)) -(assert_return (invoke "le_s" (i64.const 0x8000000000000000) (i64.const 0)) (i32.const 1)) -(assert_return (invoke "le_s" (i64.const 0) (i64.const 0x8000000000000000)) (i32.const 0)) -(assert_return (invoke "le_s" (i64.const 0x8000000000000000) (i64.const -1)) (i32.const 1)) -(assert_return (invoke "le_s" (i64.const -1) (i64.const 0x8000000000000000)) (i32.const 0)) -(assert_return (invoke "le_s" (i64.const 0x8000000000000000) (i64.const 0x7fffffffffffffff)) (i32.const 1)) -(assert_return (invoke "le_s" (i64.const 0x7fffffffffffffff) (i64.const 0x8000000000000000)) (i32.const 0)) - -(assert_return (invoke "le_u" (i64.const 0) (i64.const 0)) (i32.const 1)) -(assert_return (invoke "le_u" (i64.const 1) (i64.const 1)) (i32.const 1)) -(assert_return (invoke "le_u" (i64.const -1) (i64.const 1)) (i32.const 0)) -(assert_return (invoke "le_u" (i64.const 0x8000000000000000) (i64.const 0x8000000000000000)) (i32.const 1)) -(assert_return (invoke "le_u" (i64.const 0x7fffffffffffffff) (i64.const 0x7fffffffffffffff)) (i32.const 1)) -(assert_return (invoke "le_u" (i64.const -1) (i64.const -1)) (i32.const 1)) -(assert_return (invoke "le_u" (i64.const 1) (i64.const 0)) (i32.const 0)) -(assert_return (invoke "le_u" (i64.const 0) (i64.const 1)) (i32.const 1)) -(assert_return (invoke "le_u" (i64.const 0x8000000000000000) (i64.const 0)) (i32.const 0)) -(assert_return (invoke "le_u" (i64.const 0) (i64.const 0x8000000000000000)) (i32.const 1)) -(assert_return (invoke "le_u" (i64.const 0x8000000000000000) (i64.const -1)) (i32.const 1)) -(assert_return (invoke "le_u" (i64.const -1) (i64.const 0x8000000000000000)) (i32.const 0)) -(assert_return (invoke "le_u" (i64.const 0x8000000000000000) (i64.const 0x7fffffffffffffff)) (i32.const 0)) -(assert_return (invoke "le_u" (i64.const 0x7fffffffffffffff) (i64.const 0x8000000000000000)) (i32.const 1)) - -(assert_return (invoke "gt_s" (i64.const 0) (i64.const 0)) (i32.const 0)) -(assert_return (invoke "gt_s" (i64.const 1) (i64.const 1)) (i32.const 0)) -(assert_return (invoke "gt_s" (i64.const -1) (i64.const 1)) (i32.const 0)) -(assert_return (invoke "gt_s" (i64.const 0x8000000000000000) (i64.const 0x8000000000000000)) (i32.const 0)) -(assert_return (invoke "gt_s" (i64.const 0x7fffffffffffffff) (i64.const 0x7fffffffffffffff)) (i32.const 0)) -(assert_return (invoke "gt_s" (i64.const -1) (i64.const -1)) (i32.const 0)) -(assert_return (invoke "gt_s" (i64.const 1) (i64.const 0)) (i32.const 1)) -(assert_return (invoke "gt_s" (i64.const 0) (i64.const 1)) (i32.const 0)) -(assert_return (invoke "gt_s" (i64.const 0x8000000000000000) (i64.const 0)) (i32.const 0)) -(assert_return (invoke "gt_s" (i64.const 0) (i64.const 0x8000000000000000)) (i32.const 1)) -(assert_return (invoke "gt_s" (i64.const 0x8000000000000000) (i64.const -1)) (i32.const 0)) -(assert_return (invoke "gt_s" (i64.const -1) (i64.const 0x8000000000000000)) (i32.const 1)) -(assert_return (invoke "gt_s" (i64.const 0x8000000000000000) (i64.const 0x7fffffffffffffff)) (i32.const 0)) -(assert_return (invoke "gt_s" (i64.const 0x7fffffffffffffff) (i64.const 0x8000000000000000)) (i32.const 1)) - -(assert_return (invoke "gt_u" (i64.const 0) (i64.const 0)) (i32.const 0)) -(assert_return (invoke "gt_u" (i64.const 1) (i64.const 1)) (i32.const 0)) -(assert_return (invoke "gt_u" (i64.const -1) (i64.const 1)) (i32.const 1)) -(assert_return (invoke "gt_u" (i64.const 0x8000000000000000) (i64.const 0x8000000000000000)) (i32.const 0)) -(assert_return (invoke "gt_u" (i64.const 0x7fffffffffffffff) (i64.const 0x7fffffffffffffff)) (i32.const 0)) -(assert_return (invoke "gt_u" (i64.const -1) (i64.const -1)) (i32.const 0)) -(assert_return (invoke "gt_u" (i64.const 1) (i64.const 0)) (i32.const 1)) -(assert_return (invoke "gt_u" (i64.const 0) (i64.const 1)) (i32.const 0)) -(assert_return (invoke "gt_u" (i64.const 0x8000000000000000) (i64.const 0)) (i32.const 1)) -(assert_return (invoke "gt_u" (i64.const 0) (i64.const 0x8000000000000000)) (i32.const 0)) -(assert_return (invoke "gt_u" (i64.const 0x8000000000000000) (i64.const -1)) (i32.const 0)) -(assert_return (invoke "gt_u" (i64.const -1) (i64.const 0x8000000000000000)) (i32.const 1)) -(assert_return (invoke "gt_u" (i64.const 0x8000000000000000) (i64.const 0x7fffffffffffffff)) (i32.const 1)) -(assert_return (invoke "gt_u" (i64.const 0x7fffffffffffffff) (i64.const 0x8000000000000000)) (i32.const 0)) - -(assert_return (invoke "ge_s" (i64.const 0) (i64.const 0)) (i32.const 1)) -(assert_return (invoke "ge_s" (i64.const 1) (i64.const 1)) (i32.const 1)) -(assert_return (invoke "ge_s" (i64.const -1) (i64.const 1)) (i32.const 0)) -(assert_return (invoke "ge_s" (i64.const 0x8000000000000000) (i64.const 0x8000000000000000)) (i32.const 1)) -(assert_return (invoke "ge_s" (i64.const 0x7fffffffffffffff) (i64.const 0x7fffffffffffffff)) (i32.const 1)) -(assert_return (invoke "ge_s" (i64.const -1) (i64.const -1)) (i32.const 1)) -(assert_return (invoke "ge_s" (i64.const 1) (i64.const 0)) (i32.const 1)) -(assert_return (invoke "ge_s" (i64.const 0) (i64.const 1)) (i32.const 0)) -(assert_return (invoke "ge_s" (i64.const 0x8000000000000000) (i64.const 0)) (i32.const 0)) -(assert_return (invoke "ge_s" (i64.const 0) (i64.const 0x8000000000000000)) (i32.const 1)) -(assert_return (invoke "ge_s" (i64.const 0x8000000000000000) (i64.const -1)) (i32.const 0)) -(assert_return (invoke "ge_s" (i64.const -1) (i64.const 0x8000000000000000)) (i32.const 1)) -(assert_return (invoke "ge_s" (i64.const 0x8000000000000000) (i64.const 0x7fffffffffffffff)) (i32.const 0)) -(assert_return (invoke "ge_s" (i64.const 0x7fffffffffffffff) (i64.const 0x8000000000000000)) (i32.const 1)) - -(assert_return (invoke "ge_u" (i64.const 0) (i64.const 0)) (i32.const 1)) -(assert_return (invoke "ge_u" (i64.const 1) (i64.const 1)) (i32.const 1)) -(assert_return (invoke "ge_u" (i64.const -1) (i64.const 1)) (i32.const 1)) -(assert_return (invoke "ge_u" (i64.const 0x8000000000000000) (i64.const 0x8000000000000000)) (i32.const 1)) -(assert_return (invoke "ge_u" (i64.const 0x7fffffffffffffff) (i64.const 0x7fffffffffffffff)) (i32.const 1)) -(assert_return (invoke "ge_u" (i64.const -1) (i64.const -1)) (i32.const 1)) -(assert_return (invoke "ge_u" (i64.const 1) (i64.const 0)) (i32.const 1)) -(assert_return (invoke "ge_u" (i64.const 0) (i64.const 1)) (i32.const 0)) -(assert_return (invoke "ge_u" (i64.const 0x8000000000000000) (i64.const 0)) (i32.const 1)) -(assert_return (invoke "ge_u" (i64.const 0) (i64.const 0x8000000000000000)) (i32.const 0)) -(assert_return (invoke "ge_u" (i64.const 0x8000000000000000) (i64.const -1)) (i32.const 0)) -(assert_return (invoke "ge_u" (i64.const -1) (i64.const 0x8000000000000000)) (i32.const 1)) -(assert_return (invoke "ge_u" (i64.const 0x8000000000000000) (i64.const 0x7fffffffffffffff)) (i32.const 1)) -(assert_return (invoke "ge_u" (i64.const 0x7fffffffffffffff) (i64.const 0x8000000000000000)) (i32.const 0)) - - -;; Type check - -(assert_invalid (module (func (result i64) (i64.add (i32.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (result i64) (i64.and (i32.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (result i64) (i64.div_s (i32.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (result i64) (i64.div_u (i32.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (result i64) (i64.mul (i32.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (result i64) (i64.or (i32.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (result i64) (i64.rem_s (i32.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (result i64) (i64.rem_u (i32.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (result i64) (i64.rotl (i32.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (result i64) (i64.rotr (i32.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (result i64) (i64.shl (i32.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (result i64) (i64.shr_s (i32.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (result i64) (i64.shr_u (i32.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (result i64) (i64.sub (i32.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (result i64) (i64.xor (i32.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (result i64) (i64.eqz (i32.const 0)))) "type mismatch") -(assert_invalid (module (func (result i64) (i64.clz (i32.const 0)))) "type mismatch") -(assert_invalid (module (func (result i64) (i64.ctz (i32.const 0)))) "type mismatch") -(assert_invalid (module (func (result i64) (i64.popcnt (i32.const 0)))) "type mismatch") -(assert_invalid (module (func (result i64) (i64.eq (i32.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (result i64) (i64.ge_s (i32.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (result i64) (i64.ge_u (i32.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (result i64) (i64.gt_s (i32.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (result i64) (i64.gt_u (i32.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (result i64) (i64.le_s (i32.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (result i64) (i64.le_u (i32.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (result i64) (i64.lt_s (i32.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (result i64) (i64.lt_u (i32.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (result i64) (i64.ne (i32.const 0) (f32.const 0)))) "type mismatch") +;;; STDIN_FILE: third_party/testsuite/i64.wast (;; STDOUT ;;; -360/360 tests passed. +384/384 tests passed. ;;; STDOUT ;;) |