github.com/tetratelabs/wazero@v1.7.3-0.20240513003603-48f702e154b5/internal/integration_test/spectest/v2/testdata/i64.wast (about)

     1  ;; i64 operations
     2  
     3  (module
     4    (func (export "add") (param $x i64) (param $y i64) (result i64) (i64.add (local.get $x) (local.get $y)))
     5    (func (export "sub") (param $x i64) (param $y i64) (result i64) (i64.sub (local.get $x) (local.get $y)))
     6    (func (export "mul") (param $x i64) (param $y i64) (result i64) (i64.mul (local.get $x) (local.get $y)))
     7    (func (export "div_s") (param $x i64) (param $y i64) (result i64) (i64.div_s (local.get $x) (local.get $y)))
     8    (func (export "div_u") (param $x i64) (param $y i64) (result i64) (i64.div_u (local.get $x) (local.get $y)))
     9    (func (export "rem_s") (param $x i64) (param $y i64) (result i64) (i64.rem_s (local.get $x) (local.get $y)))
    10    (func (export "rem_u") (param $x i64) (param $y i64) (result i64) (i64.rem_u (local.get $x) (local.get $y)))
    11    (func (export "and") (param $x i64) (param $y i64) (result i64) (i64.and (local.get $x) (local.get $y)))
    12    (func (export "or") (param $x i64) (param $y i64) (result i64) (i64.or (local.get $x) (local.get $y)))
    13    (func (export "xor") (param $x i64) (param $y i64) (result i64) (i64.xor (local.get $x) (local.get $y)))
    14    (func (export "shl") (param $x i64) (param $y i64) (result i64) (i64.shl (local.get $x) (local.get $y)))
    15    (func (export "shr_s") (param $x i64) (param $y i64) (result i64) (i64.shr_s (local.get $x) (local.get $y)))
    16    (func (export "shr_u") (param $x i64) (param $y i64) (result i64) (i64.shr_u (local.get $x) (local.get $y)))
    17    (func (export "rotl") (param $x i64) (param $y i64) (result i64) (i64.rotl (local.get $x) (local.get $y)))
    18    (func (export "rotr") (param $x i64) (param $y i64) (result i64) (i64.rotr (local.get $x) (local.get $y)))
    19    (func (export "clz") (param $x i64) (result i64) (i64.clz (local.get $x)))
    20    (func (export "ctz") (param $x i64) (result i64) (i64.ctz (local.get $x)))
    21    (func (export "popcnt") (param $x i64) (result i64) (i64.popcnt (local.get $x)))
    22    (func (export "extend8_s") (param $x i64) (result i64) (i64.extend8_s (local.get $x)))
    23    (func (export "extend16_s") (param $x i64) (result i64) (i64.extend16_s (local.get $x)))
    24    (func (export "extend32_s") (param $x i64) (result i64) (i64.extend32_s (local.get $x)))
    25    (func (export "eqz") (param $x i64) (result i32) (i64.eqz (local.get $x)))
    26    (func (export "eq") (param $x i64) (param $y i64) (result i32) (i64.eq (local.get $x) (local.get $y)))
    27    (func (export "ne") (param $x i64) (param $y i64) (result i32) (i64.ne (local.get $x) (local.get $y)))
    28    (func (export "lt_s") (param $x i64) (param $y i64) (result i32) (i64.lt_s (local.get $x) (local.get $y)))
    29    (func (export "lt_u") (param $x i64) (param $y i64) (result i32) (i64.lt_u (local.get $x) (local.get $y)))
    30    (func (export "le_s") (param $x i64) (param $y i64) (result i32) (i64.le_s (local.get $x) (local.get $y)))
    31    (func (export "le_u") (param $x i64) (param $y i64) (result i32) (i64.le_u (local.get $x) (local.get $y)))
    32    (func (export "gt_s") (param $x i64) (param $y i64) (result i32) (i64.gt_s (local.get $x) (local.get $y)))
    33    (func (export "gt_u") (param $x i64) (param $y i64) (result i32) (i64.gt_u (local.get $x) (local.get $y)))
    34    (func (export "ge_s") (param $x i64) (param $y i64) (result i32) (i64.ge_s (local.get $x) (local.get $y)))
    35    (func (export "ge_u") (param $x i64) (param $y i64) (result i32) (i64.ge_u (local.get $x) (local.get $y)))
    36  )
    37  
    38  (assert_return (invoke "add" (i64.const 1) (i64.const 1)) (i64.const 2))
    39  (assert_return (invoke "add" (i64.const 1) (i64.const 0)) (i64.const 1))
    40  (assert_return (invoke "add" (i64.const -1) (i64.const -1)) (i64.const -2))
    41  (assert_return (invoke "add" (i64.const -1) (i64.const 1)) (i64.const 0))
    42  (assert_return (invoke "add" (i64.const 0x7fffffffffffffff) (i64.const 1)) (i64.const 0x8000000000000000))
    43  (assert_return (invoke "add" (i64.const 0x8000000000000000) (i64.const -1)) (i64.const 0x7fffffffffffffff))
    44  (assert_return (invoke "add" (i64.const 0x8000000000000000) (i64.const 0x8000000000000000)) (i64.const 0))
    45  (assert_return (invoke "add" (i64.const 0x3fffffff) (i64.const 1)) (i64.const 0x40000000))
    46  
    47  (assert_return (invoke "sub" (i64.const 1) (i64.const 1)) (i64.const 0))
    48  (assert_return (invoke "sub" (i64.const 1) (i64.const 0)) (i64.const 1))
    49  (assert_return (invoke "sub" (i64.const -1) (i64.const -1)) (i64.const 0))
    50  (assert_return (invoke "sub" (i64.const 0x7fffffffffffffff) (i64.const -1)) (i64.const 0x8000000000000000))
    51  (assert_return (invoke "sub" (i64.const 0x8000000000000000) (i64.const 1)) (i64.const 0x7fffffffffffffff))
    52  (assert_return (invoke "sub" (i64.const 0x8000000000000000) (i64.const 0x8000000000000000)) (i64.const 0))
    53  (assert_return (invoke "sub" (i64.const 0x3fffffff) (i64.const -1)) (i64.const 0x40000000))
    54  
    55  (assert_return (invoke "mul" (i64.const 1) (i64.const 1)) (i64.const 1))
    56  (assert_return (invoke "mul" (i64.const 1) (i64.const 0)) (i64.const 0))
    57  (assert_return (invoke "mul" (i64.const -1) (i64.const -1)) (i64.const 1))
    58  (assert_return (invoke "mul" (i64.const 0x1000000000000000) (i64.const 4096)) (i64.const 0))
    59  (assert_return (invoke "mul" (i64.const 0x8000000000000000) (i64.const 0)) (i64.const 0))
    60  (assert_return (invoke "mul" (i64.const 0x8000000000000000) (i64.const -1)) (i64.const 0x8000000000000000))
    61  (assert_return (invoke "mul" (i64.const 0x7fffffffffffffff) (i64.const -1)) (i64.const 0x8000000000000001))
    62  (assert_return (invoke "mul" (i64.const 0x0123456789abcdef) (i64.const 0xfedcba9876543210)) (i64.const 0x2236d88fe5618cf0))
    63  (assert_return (invoke "mul" (i64.const 0x7fffffffffffffff) (i64.const 0x7fffffffffffffff)) (i64.const 1))
    64  
    65  (assert_trap (invoke "div_s" (i64.const 1) (i64.const 0)) "integer divide by zero")
    66  (assert_trap (invoke "div_s" (i64.const 0) (i64.const 0)) "integer divide by zero")
    67  (assert_trap (invoke "div_s" (i64.const 0x8000000000000000) (i64.const -1)) "integer overflow")
    68  (assert_trap (invoke "div_s" (i64.const 0x8000000000000000) (i64.const 0)) "integer divide by zero")
    69  (assert_return (invoke "div_s" (i64.const 1) (i64.const 1)) (i64.const 1))
    70  (assert_return (invoke "div_s" (i64.const 0) (i64.const 1)) (i64.const 0))
    71  (assert_return (invoke "div_s" (i64.const 0) (i64.const -1)) (i64.const 0))
    72  (assert_return (invoke "div_s" (i64.const -1) (i64.const -1)) (i64.const 1))
    73  (assert_return (invoke "div_s" (i64.const 0x8000000000000000) (i64.const 2)) (i64.const 0xc000000000000000))
    74  (assert_return (invoke "div_s" (i64.const 0x8000000000000001) (i64.const 1000)) (i64.const 0xffdf3b645a1cac09))
    75  (assert_return (invoke "div_s" (i64.const 5) (i64.const 2)) (i64.const 2))
    76  (assert_return (invoke "div_s" (i64.const -5) (i64.const 2)) (i64.const -2))
    77  (assert_return (invoke "div_s" (i64.const 5) (i64.const -2)) (i64.const -2))
    78  (assert_return (invoke "div_s" (i64.const -5) (i64.const -2)) (i64.const 2))
    79  (assert_return (invoke "div_s" (i64.const 7) (i64.const 3)) (i64.const 2))
    80  (assert_return (invoke "div_s" (i64.const -7) (i64.const 3)) (i64.const -2))
    81  (assert_return (invoke "div_s" (i64.const 7) (i64.const -3)) (i64.const -2))
    82  (assert_return (invoke "div_s" (i64.const -7) (i64.const -3)) (i64.const 2))
    83  (assert_return (invoke "div_s" (i64.const 11) (i64.const 5)) (i64.const 2))
    84  (assert_return (invoke "div_s" (i64.const 17) (i64.const 7)) (i64.const 2))
    85  
    86  (assert_trap (invoke "div_u" (i64.const 1) (i64.const 0)) "integer divide by zero")
    87  (assert_trap (invoke "div_u" (i64.const 0) (i64.const 0)) "integer divide by zero")
    88  (assert_return (invoke "div_u" (i64.const 1) (i64.const 1)) (i64.const 1))
    89  (assert_return (invoke "div_u" (i64.const 0) (i64.const 1)) (i64.const 0))
    90  (assert_return (invoke "div_u" (i64.const -1) (i64.const -1)) (i64.const 1))
    91  (assert_return (invoke "div_u" (i64.const 0x8000000000000000) (i64.const -1)) (i64.const 0))
    92  (assert_return (invoke "div_u" (i64.const 0x8000000000000000) (i64.const 2)) (i64.const 0x4000000000000000))
    93  (assert_return (invoke "div_u" (i64.const 0x8ff00ff00ff00ff0) (i64.const 0x100000001)) (i64.const 0x8ff00fef))
    94  (assert_return (invoke "div_u" (i64.const 0x8000000000000001) (i64.const 1000)) (i64.const 0x20c49ba5e353f7))
    95  (assert_return (invoke "div_u" (i64.const 5) (i64.const 2)) (i64.const 2))
    96  (assert_return (invoke "div_u" (i64.const -5) (i64.const 2)) (i64.const 0x7ffffffffffffffd))
    97  (assert_return (invoke "div_u" (i64.const 5) (i64.const -2)) (i64.const 0))
    98  (assert_return (invoke "div_u" (i64.const -5) (i64.const -2)) (i64.const 0))
    99  (assert_return (invoke "div_u" (i64.const 7) (i64.const 3)) (i64.const 2))
   100  (assert_return (invoke "div_u" (i64.const 11) (i64.const 5)) (i64.const 2))
   101  (assert_return (invoke "div_u" (i64.const 17) (i64.const 7)) (i64.const 2))
   102  
   103  (assert_trap (invoke "rem_s" (i64.const 1) (i64.const 0)) "integer divide by zero")
   104  (assert_trap (invoke "rem_s" (i64.const 0) (i64.const 0)) "integer divide by zero")
   105  (assert_return (invoke "rem_s" (i64.const 0x7fffffffffffffff) (i64.const -1)) (i64.const 0))
   106  (assert_return (invoke "rem_s" (i64.const 1) (i64.const 1)) (i64.const 0))
   107  (assert_return (invoke "rem_s" (i64.const 0) (i64.const 1)) (i64.const 0))
   108  (assert_return (invoke "rem_s" (i64.const 0) (i64.const -1)) (i64.const 0))
   109  (assert_return (invoke "rem_s" (i64.const -1) (i64.const -1)) (i64.const 0))
   110  (assert_return (invoke "rem_s" (i64.const 0x8000000000000000) (i64.const -1)) (i64.const 0))
   111  (assert_return (invoke "rem_s" (i64.const 0x8000000000000000) (i64.const 2)) (i64.const 0))
   112  (assert_return (invoke "rem_s" (i64.const 0x8000000000000001) (i64.const 1000)) (i64.const -807))
   113  (assert_return (invoke "rem_s" (i64.const 5) (i64.const 2)) (i64.const 1))
   114  (assert_return (invoke "rem_s" (i64.const -5) (i64.const 2)) (i64.const -1))
   115  (assert_return (invoke "rem_s" (i64.const 5) (i64.const -2)) (i64.const 1))
   116  (assert_return (invoke "rem_s" (i64.const -5) (i64.const -2)) (i64.const -1))
   117  (assert_return (invoke "rem_s" (i64.const 7) (i64.const 3)) (i64.const 1))
   118  (assert_return (invoke "rem_s" (i64.const -7) (i64.const 3)) (i64.const -1))
   119  (assert_return (invoke "rem_s" (i64.const 7) (i64.const -3)) (i64.const 1))
   120  (assert_return (invoke "rem_s" (i64.const -7) (i64.const -3)) (i64.const -1))
   121  (assert_return (invoke "rem_s" (i64.const 11) (i64.const 5)) (i64.const 1))
   122  (assert_return (invoke "rem_s" (i64.const 17) (i64.const 7)) (i64.const 3))
   123  
   124  (assert_trap (invoke "rem_u" (i64.const 1) (i64.const 0)) "integer divide by zero")
   125  (assert_trap (invoke "rem_u" (i64.const 0) (i64.const 0)) "integer divide by zero")
   126  (assert_return (invoke "rem_u" (i64.const 1) (i64.const 1)) (i64.const 0))
   127  (assert_return (invoke "rem_u" (i64.const 0) (i64.const 1)) (i64.const 0))
   128  (assert_return (invoke "rem_u" (i64.const -1) (i64.const -1)) (i64.const 0))
   129  (assert_return (invoke "rem_u" (i64.const 0x8000000000000000) (i64.const -1)) (i64.const 0x8000000000000000))
   130  (assert_return (invoke "rem_u" (i64.const 0x8000000000000000) (i64.const 2)) (i64.const 0))
   131  (assert_return (invoke "rem_u" (i64.const 0x8ff00ff00ff00ff0) (i64.const 0x100000001)) (i64.const 0x80000001))
   132  (assert_return (invoke "rem_u" (i64.const 0x8000000000000001) (i64.const 1000)) (i64.const 809))
   133  (assert_return (invoke "rem_u" (i64.const 5) (i64.const 2)) (i64.const 1))
   134  (assert_return (invoke "rem_u" (i64.const -5) (i64.const 2)) (i64.const 1))
   135  (assert_return (invoke "rem_u" (i64.const 5) (i64.const -2)) (i64.const 5))
   136  (assert_return (invoke "rem_u" (i64.const -5) (i64.const -2)) (i64.const -5))
   137  (assert_return (invoke "rem_u" (i64.const 7) (i64.const 3)) (i64.const 1))
   138  (assert_return (invoke "rem_u" (i64.const 11) (i64.const 5)) (i64.const 1))
   139  (assert_return (invoke "rem_u" (i64.const 17) (i64.const 7)) (i64.const 3))
   140  
   141  (assert_return (invoke "and" (i64.const 1) (i64.const 0)) (i64.const 0))
   142  (assert_return (invoke "and" (i64.const 0) (i64.const 1)) (i64.const 0))
   143  (assert_return (invoke "and" (i64.const 1) (i64.const 1)) (i64.const 1))
   144  (assert_return (invoke "and" (i64.const 0) (i64.const 0)) (i64.const 0))
   145  (assert_return (invoke "and" (i64.const 0x7fffffffffffffff) (i64.const 0x8000000000000000)) (i64.const 0))
   146  (assert_return (invoke "and" (i64.const 0x7fffffffffffffff) (i64.const -1)) (i64.const 0x7fffffffffffffff))
   147  (assert_return (invoke "and" (i64.const 0xf0f0ffff) (i64.const 0xfffff0f0)) (i64.const 0xf0f0f0f0))
   148  (assert_return (invoke "and" (i64.const 0xffffffffffffffff) (i64.const 0xffffffffffffffff)) (i64.const 0xffffffffffffffff))
   149  
   150  (assert_return (invoke "or" (i64.const 1) (i64.const 0)) (i64.const 1))
   151  (assert_return (invoke "or" (i64.const 0) (i64.const 1)) (i64.const 1))
   152  (assert_return (invoke "or" (i64.const 1) (i64.const 1)) (i64.const 1))
   153  (assert_return (invoke "or" (i64.const 0) (i64.const 0)) (i64.const 0))
   154  (assert_return (invoke "or" (i64.const 0x7fffffffffffffff) (i64.const 0x8000000000000000)) (i64.const -1))
   155  (assert_return (invoke "or" (i64.const 0x8000000000000000) (i64.const 0)) (i64.const 0x8000000000000000))
   156  (assert_return (invoke "or" (i64.const 0xf0f0ffff) (i64.const 0xfffff0f0)) (i64.const 0xffffffff))
   157  (assert_return (invoke "or" (i64.const 0xffffffffffffffff) (i64.const 0xffffffffffffffff)) (i64.const 0xffffffffffffffff))
   158  
   159  (assert_return (invoke "xor" (i64.const 1) (i64.const 0)) (i64.const 1))
   160  (assert_return (invoke "xor" (i64.const 0) (i64.const 1)) (i64.const 1))
   161  (assert_return (invoke "xor" (i64.const 1) (i64.const 1)) (i64.const 0))
   162  (assert_return (invoke "xor" (i64.const 0) (i64.const 0)) (i64.const 0))
   163  (assert_return (invoke "xor" (i64.const 0x7fffffffffffffff) (i64.const 0x8000000000000000)) (i64.const -1))
   164  (assert_return (invoke "xor" (i64.const 0x8000000000000000) (i64.const 0)) (i64.const 0x8000000000000000))
   165  (assert_return (invoke "xor" (i64.const -1) (i64.const 0x8000000000000000)) (i64.const 0x7fffffffffffffff))
   166  (assert_return (invoke "xor" (i64.const -1) (i64.const 0x7fffffffffffffff)) (i64.const 0x8000000000000000))
   167  (assert_return (invoke "xor" (i64.const 0xf0f0ffff) (i64.const 0xfffff0f0)) (i64.const 0x0f0f0f0f))
   168  (assert_return (invoke "xor" (i64.const 0xffffffffffffffff) (i64.const 0xffffffffffffffff)) (i64.const 0))
   169  
   170  (assert_return (invoke "shl" (i64.const 1) (i64.const 1)) (i64.const 2))
   171  (assert_return (invoke "shl" (i64.const 1) (i64.const 0)) (i64.const 1))
   172  (assert_return (invoke "shl" (i64.const 0x7fffffffffffffff) (i64.const 1)) (i64.const 0xfffffffffffffffe))
   173  (assert_return (invoke "shl" (i64.const 0xffffffffffffffff) (i64.const 1)) (i64.const 0xfffffffffffffffe))
   174  (assert_return (invoke "shl" (i64.const 0x8000000000000000) (i64.const 1)) (i64.const 0))
   175  (assert_return (invoke "shl" (i64.const 0x4000000000000000) (i64.const 1)) (i64.const 0x8000000000000000))
   176  (assert_return (invoke "shl" (i64.const 1) (i64.const 63)) (i64.const 0x8000000000000000))
   177  (assert_return (invoke "shl" (i64.const 1) (i64.const 64)) (i64.const 1))
   178  (assert_return (invoke "shl" (i64.const 1) (i64.const 65)) (i64.const 2))
   179  (assert_return (invoke "shl" (i64.const 1) (i64.const -1)) (i64.const 0x8000000000000000))
   180  (assert_return (invoke "shl" (i64.const 1) (i64.const 0x7fffffffffffffff)) (i64.const 0x8000000000000000))
   181  
   182  (assert_return (invoke "shr_s" (i64.const 1) (i64.const 1)) (i64.const 0))
   183  (assert_return (invoke "shr_s" (i64.const 1) (i64.const 0)) (i64.const 1))
   184  (assert_return (invoke "shr_s" (i64.const -1) (i64.const 1)) (i64.const -1))
   185  (assert_return (invoke "shr_s" (i64.const 0x7fffffffffffffff) (i64.const 1)) (i64.const 0x3fffffffffffffff))
   186  (assert_return (invoke "shr_s" (i64.const 0x8000000000000000) (i64.const 1)) (i64.const 0xc000000000000000))
   187  (assert_return (invoke "shr_s" (i64.const 0x4000000000000000) (i64.const 1)) (i64.const 0x2000000000000000))
   188  (assert_return (invoke "shr_s" (i64.const 1) (i64.const 64)) (i64.const 1))
   189  (assert_return (invoke "shr_s" (i64.const 1) (i64.const 65)) (i64.const 0))
   190  (assert_return (invoke "shr_s" (i64.const 1) (i64.const -1)) (i64.const 0))
   191  (assert_return (invoke "shr_s" (i64.const 1) (i64.const 0x7fffffffffffffff)) (i64.const 0))
   192  (assert_return (invoke "shr_s" (i64.const 1) (i64.const 0x8000000000000000)) (i64.const 1))
   193  (assert_return (invoke "shr_s" (i64.const 0x8000000000000000) (i64.const 63)) (i64.const -1))
   194  (assert_return (invoke "shr_s" (i64.const -1) (i64.const 64)) (i64.const -1))
   195  (assert_return (invoke "shr_s" (i64.const -1) (i64.const 65)) (i64.const -1))
   196  (assert_return (invoke "shr_s" (i64.const -1) (i64.const -1)) (i64.const -1))
   197  (assert_return (invoke "shr_s" (i64.const -1) (i64.const 0x7fffffffffffffff)) (i64.const -1))
   198  (assert_return (invoke "shr_s" (i64.const -1) (i64.const 0x8000000000000000)) (i64.const -1))
   199  
   200  (assert_return (invoke "shr_u" (i64.const 1) (i64.const 1)) (i64.const 0))
   201  (assert_return (invoke "shr_u" (i64.const 1) (i64.const 0)) (i64.const 1))
   202  (assert_return (invoke "shr_u" (i64.const -1) (i64.const 1)) (i64.const 0x7fffffffffffffff))
   203  (assert_return (invoke "shr_u" (i64.const 0x7fffffffffffffff) (i64.const 1)) (i64.const 0x3fffffffffffffff))
   204  (assert_return (invoke "shr_u" (i64.const 0x8000000000000000) (i64.const 1)) (i64.const 0x4000000000000000))
   205  (assert_return (invoke "shr_u" (i64.const 0x4000000000000000) (i64.const 1)) (i64.const 0x2000000000000000))
   206  (assert_return (invoke "shr_u" (i64.const 1) (i64.const 64)) (i64.const 1))
   207  (assert_return (invoke "shr_u" (i64.const 1) (i64.const 65)) (i64.const 0))
   208  (assert_return (invoke "shr_u" (i64.const 1) (i64.const -1)) (i64.const 0))
   209  (assert_return (invoke "shr_u" (i64.const 1) (i64.const 0x7fffffffffffffff)) (i64.const 0))
   210  (assert_return (invoke "shr_u" (i64.const 1) (i64.const 0x8000000000000000)) (i64.const 1))
   211  (assert_return (invoke "shr_u" (i64.const 0x8000000000000000) (i64.const 63)) (i64.const 1))
   212  (assert_return (invoke "shr_u" (i64.const -1) (i64.const 64)) (i64.const -1))
   213  (assert_return (invoke "shr_u" (i64.const -1) (i64.const 65)) (i64.const 0x7fffffffffffffff))
   214  (assert_return (invoke "shr_u" (i64.const -1) (i64.const -1)) (i64.const 1))
   215  (assert_return (invoke "shr_u" (i64.const -1) (i64.const 0x7fffffffffffffff)) (i64.const 1))
   216  (assert_return (invoke "shr_u" (i64.const -1) (i64.const 0x8000000000000000)) (i64.const -1))
   217  
   218  (assert_return (invoke "rotl" (i64.const 1) (i64.const 1)) (i64.const 2))
   219  (assert_return (invoke "rotl" (i64.const 1) (i64.const 0)) (i64.const 1))
   220  (assert_return (invoke "rotl" (i64.const -1) (i64.const 1)) (i64.const -1))
   221  (assert_return (invoke "rotl" (i64.const 1) (i64.const 64)) (i64.const 1))
   222  (assert_return (invoke "rotl" (i64.const 0xabcd987602468ace) (i64.const 1)) (i64.const 0x579b30ec048d159d))
   223  (assert_return (invoke "rotl" (i64.const 0xfe000000dc000000) (i64.const 4)) (i64.const 0xe000000dc000000f))
   224  (assert_return (invoke "rotl" (i64.const 0xabcd1234ef567809) (i64.const 53)) (i64.const 0x013579a2469deacf))
   225  (assert_return (invoke "rotl" (i64.const 0xabd1234ef567809c) (i64.const 63)) (i64.const 0x55e891a77ab3c04e))
   226  (assert_return (invoke "rotl" (i64.const 0xabcd1234ef567809) (i64.const 0xf5)) (i64.const 0x013579a2469deacf))
   227  (assert_return (invoke "rotl" (i64.const 0xabcd7294ef567809) (i64.const 0xffffffffffffffed)) (i64.const 0xcf013579ae529dea))
   228  (assert_return (invoke "rotl" (i64.const 0xabd1234ef567809c) (i64.const 0x800000000000003f)) (i64.const 0x55e891a77ab3c04e))
   229  (assert_return (invoke "rotl" (i64.const 1) (i64.const 63)) (i64.const 0x8000000000000000))
   230  (assert_return (invoke "rotl" (i64.const 0x8000000000000000) (i64.const 1)) (i64.const 1))
   231  
   232  (assert_return (invoke "rotr" (i64.const 1) (i64.const 1)) (i64.const 0x8000000000000000))
   233  (assert_return (invoke "rotr" (i64.const 1) (i64.const 0)) (i64.const 1))
   234  (assert_return (invoke "rotr" (i64.const -1) (i64.const 1)) (i64.const -1))
   235  (assert_return (invoke "rotr" (i64.const 1) (i64.const 64)) (i64.const 1))
   236  (assert_return (invoke "rotr" (i64.const 0xabcd987602468ace) (i64.const 1)) (i64.const 0x55e6cc3b01234567))
   237  (assert_return (invoke "rotr" (i64.const 0xfe000000dc000000) (i64.const 4)) (i64.const 0x0fe000000dc00000))
   238  (assert_return (invoke "rotr" (i64.const 0xabcd1234ef567809) (i64.const 53)) (i64.const 0x6891a77ab3c04d5e))
   239  (assert_return (invoke "rotr" (i64.const 0xabd1234ef567809c) (i64.const 63)) (i64.const 0x57a2469deacf0139))
   240  (assert_return (invoke "rotr" (i64.const 0xabcd1234ef567809) (i64.const 0xf5)) (i64.const 0x6891a77ab3c04d5e))
   241  (assert_return (invoke "rotr" (i64.const 0xabcd7294ef567809) (i64.const 0xffffffffffffffed)) (i64.const 0x94a77ab3c04d5e6b))
   242  (assert_return (invoke "rotr" (i64.const 0xabd1234ef567809c) (i64.const 0x800000000000003f)) (i64.const 0x57a2469deacf0139))
   243  (assert_return (invoke "rotr" (i64.const 1) (i64.const 63)) (i64.const 2))
   244  (assert_return (invoke "rotr" (i64.const 0x8000000000000000) (i64.const 63)) (i64.const 1))
   245  
   246  (assert_return (invoke "clz" (i64.const 0xffffffffffffffff)) (i64.const 0))
   247  (assert_return (invoke "clz" (i64.const 0)) (i64.const 64))
   248  (assert_return (invoke "clz" (i64.const 0x00008000)) (i64.const 48))
   249  (assert_return (invoke "clz" (i64.const 0xff)) (i64.const 56))
   250  (assert_return (invoke "clz" (i64.const 0x8000000000000000)) (i64.const 0))
   251  (assert_return (invoke "clz" (i64.const 1)) (i64.const 63))
   252  (assert_return (invoke "clz" (i64.const 2)) (i64.const 62))
   253  (assert_return (invoke "clz" (i64.const 0x7fffffffffffffff)) (i64.const 1))
   254  
   255  (assert_return (invoke "ctz" (i64.const -1)) (i64.const 0))
   256  (assert_return (invoke "ctz" (i64.const 0)) (i64.const 64))
   257  (assert_return (invoke "ctz" (i64.const 0x00008000)) (i64.const 15))
   258  (assert_return (invoke "ctz" (i64.const 0x00010000)) (i64.const 16))
   259  (assert_return (invoke "ctz" (i64.const 0x8000000000000000)) (i64.const 63))
   260  (assert_return (invoke "ctz" (i64.const 0x7fffffffffffffff)) (i64.const 0))
   261  
   262  (assert_return (invoke "popcnt" (i64.const -1)) (i64.const 64))
   263  (assert_return (invoke "popcnt" (i64.const 0)) (i64.const 0))
   264  (assert_return (invoke "popcnt" (i64.const 0x00008000)) (i64.const 1))
   265  (assert_return (invoke "popcnt" (i64.const 0x8000800080008000)) (i64.const 4))
   266  (assert_return (invoke "popcnt" (i64.const 0x7fffffffffffffff)) (i64.const 63))
   267  (assert_return (invoke "popcnt" (i64.const 0xAAAAAAAA55555555)) (i64.const 32))
   268  (assert_return (invoke "popcnt" (i64.const 0x99999999AAAAAAAA)) (i64.const 32))
   269  (assert_return (invoke "popcnt" (i64.const 0xDEADBEEFDEADBEEF)) (i64.const 48))
   270  
   271  (assert_return (invoke "extend8_s" (i64.const 0)) (i64.const 0))
   272  (assert_return (invoke "extend8_s" (i64.const 0x7f)) (i64.const 127))
   273  (assert_return (invoke "extend8_s" (i64.const 0x80)) (i64.const -128))
   274  (assert_return (invoke "extend8_s" (i64.const 0xff)) (i64.const -1))
   275  (assert_return (invoke "extend8_s" (i64.const 0x01234567_89abcd_00)) (i64.const 0))
   276  (assert_return (invoke "extend8_s" (i64.const 0xfedcba98_765432_80)) (i64.const -0x80))
   277  (assert_return (invoke "extend8_s" (i64.const -1)) (i64.const -1))
   278  
   279  (assert_return (invoke "extend16_s" (i64.const 0)) (i64.const 0))
   280  (assert_return (invoke "extend16_s" (i64.const 0x7fff)) (i64.const 32767))
   281  (assert_return (invoke "extend16_s" (i64.const 0x8000)) (i64.const -32768))
   282  (assert_return (invoke "extend16_s" (i64.const 0xffff)) (i64.const -1))
   283  (assert_return (invoke "extend16_s" (i64.const 0x12345678_9abc_0000)) (i64.const 0))
   284  (assert_return (invoke "extend16_s" (i64.const 0xfedcba98_7654_8000)) (i64.const -0x8000))
   285  (assert_return (invoke "extend16_s" (i64.const -1)) (i64.const -1))
   286  
   287  (assert_return (invoke "extend32_s" (i64.const 0)) (i64.const 0))
   288  (assert_return (invoke "extend32_s" (i64.const 0x7fff)) (i64.const 32767))
   289  (assert_return (invoke "extend32_s" (i64.const 0x8000)) (i64.const 32768))
   290  (assert_return (invoke "extend32_s" (i64.const 0xffff)) (i64.const 65535))
   291  (assert_return (invoke "extend32_s" (i64.const 0x7fffffff)) (i64.const 0x7fffffff))
   292  (assert_return (invoke "extend32_s" (i64.const 0x80000000)) (i64.const -0x80000000))
   293  (assert_return (invoke "extend32_s" (i64.const 0xffffffff)) (i64.const -1))
   294  (assert_return (invoke "extend32_s" (i64.const 0x01234567_00000000)) (i64.const 0))
   295  (assert_return (invoke "extend32_s" (i64.const 0xfedcba98_80000000)) (i64.const -0x80000000))
   296  (assert_return (invoke "extend32_s" (i64.const -1)) (i64.const -1))
   297  
   298  (assert_return (invoke "eqz" (i64.const 0)) (i32.const 1))
   299  (assert_return (invoke "eqz" (i64.const 1)) (i32.const 0))
   300  (assert_return (invoke "eqz" (i64.const 0x8000000000000000)) (i32.const 0))
   301  (assert_return (invoke "eqz" (i64.const 0x7fffffffffffffff)) (i32.const 0))
   302  (assert_return (invoke "eqz" (i64.const 0xffffffffffffffff)) (i32.const 0))
   303  
   304  (assert_return (invoke "eq" (i64.const 0) (i64.const 0)) (i32.const 1))
   305  (assert_return (invoke "eq" (i64.const 1) (i64.const 1)) (i32.const 1))
   306  (assert_return (invoke "eq" (i64.const -1) (i64.const 1)) (i32.const 0))
   307  (assert_return (invoke "eq" (i64.const 0x8000000000000000) (i64.const 0x8000000000000000)) (i32.const 1))
   308  (assert_return (invoke "eq" (i64.const 0x7fffffffffffffff) (i64.const 0x7fffffffffffffff)) (i32.const 1))
   309  (assert_return (invoke "eq" (i64.const -1) (i64.const -1)) (i32.const 1))
   310  (assert_return (invoke "eq" (i64.const 1) (i64.const 0)) (i32.const 0))
   311  (assert_return (invoke "eq" (i64.const 0) (i64.const 1)) (i32.const 0))
   312  (assert_return (invoke "eq" (i64.const 0x8000000000000000) (i64.const 0)) (i32.const 0))
   313  (assert_return (invoke "eq" (i64.const 0) (i64.const 0x8000000000000000)) (i32.const 0))
   314  (assert_return (invoke "eq" (i64.const 0x8000000000000000) (i64.const -1)) (i32.const 0))
   315  (assert_return (invoke "eq" (i64.const -1) (i64.const 0x8000000000000000)) (i32.const 0))
   316  (assert_return (invoke "eq" (i64.const 0x8000000000000000) (i64.const 0x7fffffffffffffff)) (i32.const 0))
   317  (assert_return (invoke "eq" (i64.const 0x7fffffffffffffff) (i64.const 0x8000000000000000)) (i32.const 0))
   318  
   319  (assert_return (invoke "ne" (i64.const 0) (i64.const 0)) (i32.const 0))
   320  (assert_return (invoke "ne" (i64.const 1) (i64.const 1)) (i32.const 0))
   321  (assert_return (invoke "ne" (i64.const -1) (i64.const 1)) (i32.const 1))
   322  (assert_return (invoke "ne" (i64.const 0x8000000000000000) (i64.const 0x8000000000000000)) (i32.const 0))
   323  (assert_return (invoke "ne" (i64.const 0x7fffffffffffffff) (i64.const 0x7fffffffffffffff)) (i32.const 0))
   324  (assert_return (invoke "ne" (i64.const -1) (i64.const -1)) (i32.const 0))
   325  (assert_return (invoke "ne" (i64.const 1) (i64.const 0)) (i32.const 1))
   326  (assert_return (invoke "ne" (i64.const 0) (i64.const 1)) (i32.const 1))
   327  (assert_return (invoke "ne" (i64.const 0x8000000000000000) (i64.const 0)) (i32.const 1))
   328  (assert_return (invoke "ne" (i64.const 0) (i64.const 0x8000000000000000)) (i32.const 1))
   329  (assert_return (invoke "ne" (i64.const 0x8000000000000000) (i64.const -1)) (i32.const 1))
   330  (assert_return (invoke "ne" (i64.const -1) (i64.const 0x8000000000000000)) (i32.const 1))
   331  (assert_return (invoke "ne" (i64.const 0x8000000000000000) (i64.const 0x7fffffffffffffff)) (i32.const 1))
   332  (assert_return (invoke "ne" (i64.const 0x7fffffffffffffff) (i64.const 0x8000000000000000)) (i32.const 1))
   333  
   334  (assert_return (invoke "lt_s" (i64.const 0) (i64.const 0)) (i32.const 0))
   335  (assert_return (invoke "lt_s" (i64.const 1) (i64.const 1)) (i32.const 0))
   336  (assert_return (invoke "lt_s" (i64.const -1) (i64.const 1)) (i32.const 1))
   337  (assert_return (invoke "lt_s" (i64.const 0x8000000000000000) (i64.const 0x8000000000000000)) (i32.const 0))
   338  (assert_return (invoke "lt_s" (i64.const 0x7fffffffffffffff) (i64.const 0x7fffffffffffffff)) (i32.const 0))
   339  (assert_return (invoke "lt_s" (i64.const -1) (i64.const -1)) (i32.const 0))
   340  (assert_return (invoke "lt_s" (i64.const 1) (i64.const 0)) (i32.const 0))
   341  (assert_return (invoke "lt_s" (i64.const 0) (i64.const 1)) (i32.const 1))
   342  (assert_return (invoke "lt_s" (i64.const 0x8000000000000000) (i64.const 0)) (i32.const 1))
   343  (assert_return (invoke "lt_s" (i64.const 0) (i64.const 0x8000000000000000)) (i32.const 0))
   344  (assert_return (invoke "lt_s" (i64.const 0x8000000000000000) (i64.const -1)) (i32.const 1))
   345  (assert_return (invoke "lt_s" (i64.const -1) (i64.const 0x8000000000000000)) (i32.const 0))
   346  (assert_return (invoke "lt_s" (i64.const 0x8000000000000000) (i64.const 0x7fffffffffffffff)) (i32.const 1))
   347  (assert_return (invoke "lt_s" (i64.const 0x7fffffffffffffff) (i64.const 0x8000000000000000)) (i32.const 0))
   348  
   349  (assert_return (invoke "lt_u" (i64.const 0) (i64.const 0)) (i32.const 0))
   350  (assert_return (invoke "lt_u" (i64.const 1) (i64.const 1)) (i32.const 0))
   351  (assert_return (invoke "lt_u" (i64.const -1) (i64.const 1)) (i32.const 0))
   352  (assert_return (invoke "lt_u" (i64.const 0x8000000000000000) (i64.const 0x8000000000000000)) (i32.const 0))
   353  (assert_return (invoke "lt_u" (i64.const 0x7fffffffffffffff) (i64.const 0x7fffffffffffffff)) (i32.const 0))
   354  (assert_return (invoke "lt_u" (i64.const -1) (i64.const -1)) (i32.const 0))
   355  (assert_return (invoke "lt_u" (i64.const 1) (i64.const 0)) (i32.const 0))
   356  (assert_return (invoke "lt_u" (i64.const 0) (i64.const 1)) (i32.const 1))
   357  (assert_return (invoke "lt_u" (i64.const 0x8000000000000000) (i64.const 0)) (i32.const 0))
   358  (assert_return (invoke "lt_u" (i64.const 0) (i64.const 0x8000000000000000)) (i32.const 1))
   359  (assert_return (invoke "lt_u" (i64.const 0x8000000000000000) (i64.const -1)) (i32.const 1))
   360  (assert_return (invoke "lt_u" (i64.const -1) (i64.const 0x8000000000000000)) (i32.const 0))
   361  (assert_return (invoke "lt_u" (i64.const 0x8000000000000000) (i64.const 0x7fffffffffffffff)) (i32.const 0))
   362  (assert_return (invoke "lt_u" (i64.const 0x7fffffffffffffff) (i64.const 0x8000000000000000)) (i32.const 1))
   363  
   364  (assert_return (invoke "le_s" (i64.const 0) (i64.const 0)) (i32.const 1))
   365  (assert_return (invoke "le_s" (i64.const 1) (i64.const 1)) (i32.const 1))
   366  (assert_return (invoke "le_s" (i64.const -1) (i64.const 1)) (i32.const 1))
   367  (assert_return (invoke "le_s" (i64.const 0x8000000000000000) (i64.const 0x8000000000000000)) (i32.const 1))
   368  (assert_return (invoke "le_s" (i64.const 0x7fffffffffffffff) (i64.const 0x7fffffffffffffff)) (i32.const 1))
   369  (assert_return (invoke "le_s" (i64.const -1) (i64.const -1)) (i32.const 1))
   370  (assert_return (invoke "le_s" (i64.const 1) (i64.const 0)) (i32.const 0))
   371  (assert_return (invoke "le_s" (i64.const 0) (i64.const 1)) (i32.const 1))
   372  (assert_return (invoke "le_s" (i64.const 0x8000000000000000) (i64.const 0)) (i32.const 1))
   373  (assert_return (invoke "le_s" (i64.const 0) (i64.const 0x8000000000000000)) (i32.const 0))
   374  (assert_return (invoke "le_s" (i64.const 0x8000000000000000) (i64.const -1)) (i32.const 1))
   375  (assert_return (invoke "le_s" (i64.const -1) (i64.const 0x8000000000000000)) (i32.const 0))
   376  (assert_return (invoke "le_s" (i64.const 0x8000000000000000) (i64.const 0x7fffffffffffffff)) (i32.const 1))
   377  (assert_return (invoke "le_s" (i64.const 0x7fffffffffffffff) (i64.const 0x8000000000000000)) (i32.const 0))
   378  
   379  (assert_return (invoke "le_u" (i64.const 0) (i64.const 0)) (i32.const 1))
   380  (assert_return (invoke "le_u" (i64.const 1) (i64.const 1)) (i32.const 1))
   381  (assert_return (invoke "le_u" (i64.const -1) (i64.const 1)) (i32.const 0))
   382  (assert_return (invoke "le_u" (i64.const 0x8000000000000000) (i64.const 0x8000000000000000)) (i32.const 1))
   383  (assert_return (invoke "le_u" (i64.const 0x7fffffffffffffff) (i64.const 0x7fffffffffffffff)) (i32.const 1))
   384  (assert_return (invoke "le_u" (i64.const -1) (i64.const -1)) (i32.const 1))
   385  (assert_return (invoke "le_u" (i64.const 1) (i64.const 0)) (i32.const 0))
   386  (assert_return (invoke "le_u" (i64.const 0) (i64.const 1)) (i32.const 1))
   387  (assert_return (invoke "le_u" (i64.const 0x8000000000000000) (i64.const 0)) (i32.const 0))
   388  (assert_return (invoke "le_u" (i64.const 0) (i64.const 0x8000000000000000)) (i32.const 1))
   389  (assert_return (invoke "le_u" (i64.const 0x8000000000000000) (i64.const -1)) (i32.const 1))
   390  (assert_return (invoke "le_u" (i64.const -1) (i64.const 0x8000000000000000)) (i32.const 0))
   391  (assert_return (invoke "le_u" (i64.const 0x8000000000000000) (i64.const 0x7fffffffffffffff)) (i32.const 0))
   392  (assert_return (invoke "le_u" (i64.const 0x7fffffffffffffff) (i64.const 0x8000000000000000)) (i32.const 1))
   393  
   394  (assert_return (invoke "gt_s" (i64.const 0) (i64.const 0)) (i32.const 0))
   395  (assert_return (invoke "gt_s" (i64.const 1) (i64.const 1)) (i32.const 0))
   396  (assert_return (invoke "gt_s" (i64.const -1) (i64.const 1)) (i32.const 0))
   397  (assert_return (invoke "gt_s" (i64.const 0x8000000000000000) (i64.const 0x8000000000000000)) (i32.const 0))
   398  (assert_return (invoke "gt_s" (i64.const 0x7fffffffffffffff) (i64.const 0x7fffffffffffffff)) (i32.const 0))
   399  (assert_return (invoke "gt_s" (i64.const -1) (i64.const -1)) (i32.const 0))
   400  (assert_return (invoke "gt_s" (i64.const 1) (i64.const 0)) (i32.const 1))
   401  (assert_return (invoke "gt_s" (i64.const 0) (i64.const 1)) (i32.const 0))
   402  (assert_return (invoke "gt_s" (i64.const 0x8000000000000000) (i64.const 0)) (i32.const 0))
   403  (assert_return (invoke "gt_s" (i64.const 0) (i64.const 0x8000000000000000)) (i32.const 1))
   404  (assert_return (invoke "gt_s" (i64.const 0x8000000000000000) (i64.const -1)) (i32.const 0))
   405  (assert_return (invoke "gt_s" (i64.const -1) (i64.const 0x8000000000000000)) (i32.const 1))
   406  (assert_return (invoke "gt_s" (i64.const 0x8000000000000000) (i64.const 0x7fffffffffffffff)) (i32.const 0))
   407  (assert_return (invoke "gt_s" (i64.const 0x7fffffffffffffff) (i64.const 0x8000000000000000)) (i32.const 1))
   408  
   409  (assert_return (invoke "gt_u" (i64.const 0) (i64.const 0)) (i32.const 0))
   410  (assert_return (invoke "gt_u" (i64.const 1) (i64.const 1)) (i32.const 0))
   411  (assert_return (invoke "gt_u" (i64.const -1) (i64.const 1)) (i32.const 1))
   412  (assert_return (invoke "gt_u" (i64.const 0x8000000000000000) (i64.const 0x8000000000000000)) (i32.const 0))
   413  (assert_return (invoke "gt_u" (i64.const 0x7fffffffffffffff) (i64.const 0x7fffffffffffffff)) (i32.const 0))
   414  (assert_return (invoke "gt_u" (i64.const -1) (i64.const -1)) (i32.const 0))
   415  (assert_return (invoke "gt_u" (i64.const 1) (i64.const 0)) (i32.const 1))
   416  (assert_return (invoke "gt_u" (i64.const 0) (i64.const 1)) (i32.const 0))
   417  (assert_return (invoke "gt_u" (i64.const 0x8000000000000000) (i64.const 0)) (i32.const 1))
   418  (assert_return (invoke "gt_u" (i64.const 0) (i64.const 0x8000000000000000)) (i32.const 0))
   419  (assert_return (invoke "gt_u" (i64.const 0x8000000000000000) (i64.const -1)) (i32.const 0))
   420  (assert_return (invoke "gt_u" (i64.const -1) (i64.const 0x8000000000000000)) (i32.const 1))
   421  (assert_return (invoke "gt_u" (i64.const 0x8000000000000000) (i64.const 0x7fffffffffffffff)) (i32.const 1))
   422  (assert_return (invoke "gt_u" (i64.const 0x7fffffffffffffff) (i64.const 0x8000000000000000)) (i32.const 0))
   423  
   424  (assert_return (invoke "ge_s" (i64.const 0) (i64.const 0)) (i32.const 1))
   425  (assert_return (invoke "ge_s" (i64.const 1) (i64.const 1)) (i32.const 1))
   426  (assert_return (invoke "ge_s" (i64.const -1) (i64.const 1)) (i32.const 0))
   427  (assert_return (invoke "ge_s" (i64.const 0x8000000000000000) (i64.const 0x8000000000000000)) (i32.const 1))
   428  (assert_return (invoke "ge_s" (i64.const 0x7fffffffffffffff) (i64.const 0x7fffffffffffffff)) (i32.const 1))
   429  (assert_return (invoke "ge_s" (i64.const -1) (i64.const -1)) (i32.const 1))
   430  (assert_return (invoke "ge_s" (i64.const 1) (i64.const 0)) (i32.const 1))
   431  (assert_return (invoke "ge_s" (i64.const 0) (i64.const 1)) (i32.const 0))
   432  (assert_return (invoke "ge_s" (i64.const 0x8000000000000000) (i64.const 0)) (i32.const 0))
   433  (assert_return (invoke "ge_s" (i64.const 0) (i64.const 0x8000000000000000)) (i32.const 1))
   434  (assert_return (invoke "ge_s" (i64.const 0x8000000000000000) (i64.const -1)) (i32.const 0))
   435  (assert_return (invoke "ge_s" (i64.const -1) (i64.const 0x8000000000000000)) (i32.const 1))
   436  (assert_return (invoke "ge_s" (i64.const 0x8000000000000000) (i64.const 0x7fffffffffffffff)) (i32.const 0))
   437  (assert_return (invoke "ge_s" (i64.const 0x7fffffffffffffff) (i64.const 0x8000000000000000)) (i32.const 1))
   438  
   439  (assert_return (invoke "ge_u" (i64.const 0) (i64.const 0)) (i32.const 1))
   440  (assert_return (invoke "ge_u" (i64.const 1) (i64.const 1)) (i32.const 1))
   441  (assert_return (invoke "ge_u" (i64.const -1) (i64.const 1)) (i32.const 1))
   442  (assert_return (invoke "ge_u" (i64.const 0x8000000000000000) (i64.const 0x8000000000000000)) (i32.const 1))
   443  (assert_return (invoke "ge_u" (i64.const 0x7fffffffffffffff) (i64.const 0x7fffffffffffffff)) (i32.const 1))
   444  (assert_return (invoke "ge_u" (i64.const -1) (i64.const -1)) (i32.const 1))
   445  (assert_return (invoke "ge_u" (i64.const 1) (i64.const 0)) (i32.const 1))
   446  (assert_return (invoke "ge_u" (i64.const 0) (i64.const 1)) (i32.const 0))
   447  (assert_return (invoke "ge_u" (i64.const 0x8000000000000000) (i64.const 0)) (i32.const 1))
   448  (assert_return (invoke "ge_u" (i64.const 0) (i64.const 0x8000000000000000)) (i32.const 0))
   449  (assert_return (invoke "ge_u" (i64.const 0x8000000000000000) (i64.const -1)) (i32.const 0))
   450  (assert_return (invoke "ge_u" (i64.const -1) (i64.const 0x8000000000000000)) (i32.const 1))
   451  (assert_return (invoke "ge_u" (i64.const 0x8000000000000000) (i64.const 0x7fffffffffffffff)) (i32.const 1))
   452  (assert_return (invoke "ge_u" (i64.const 0x7fffffffffffffff) (i64.const 0x8000000000000000)) (i32.const 0))
   453  
   454  
   455  ;; Type check
   456  
   457  (assert_invalid (module (func (result i64) (i64.add (i32.const 0) (f32.const 0)))) "type mismatch")
   458  (assert_invalid (module (func (result i64) (i64.and (i32.const 0) (f32.const 0)))) "type mismatch")
   459  (assert_invalid (module (func (result i64) (i64.div_s (i32.const 0) (f32.const 0)))) "type mismatch")
   460  (assert_invalid (module (func (result i64) (i64.div_u (i32.const 0) (f32.const 0)))) "type mismatch")
   461  (assert_invalid (module (func (result i64) (i64.mul (i32.const 0) (f32.const 0)))) "type mismatch")
   462  (assert_invalid (module (func (result i64) (i64.or (i32.const 0) (f32.const 0)))) "type mismatch")
   463  (assert_invalid (module (func (result i64) (i64.rem_s (i32.const 0) (f32.const 0)))) "type mismatch")
   464  (assert_invalid (module (func (result i64) (i64.rem_u (i32.const 0) (f32.const 0)))) "type mismatch")
   465  (assert_invalid (module (func (result i64) (i64.rotl (i32.const 0) (f32.const 0)))) "type mismatch")
   466  (assert_invalid (module (func (result i64) (i64.rotr (i32.const 0) (f32.const 0)))) "type mismatch")
   467  (assert_invalid (module (func (result i64) (i64.shl (i32.const 0) (f32.const 0)))) "type mismatch")
   468  (assert_invalid (module (func (result i64) (i64.shr_s (i32.const 0) (f32.const 0)))) "type mismatch")
   469  (assert_invalid (module (func (result i64) (i64.shr_u (i32.const 0) (f32.const 0)))) "type mismatch")
   470  (assert_invalid (module (func (result i64) (i64.sub (i32.const 0) (f32.const 0)))) "type mismatch")
   471  (assert_invalid (module (func (result i64) (i64.xor (i32.const 0) (f32.const 0)))) "type mismatch")
   472  (assert_invalid (module (func (result i64) (i64.eqz (i32.const 0)))) "type mismatch")
   473  (assert_invalid (module (func (result i64) (i64.clz (i32.const 0)))) "type mismatch")
   474  (assert_invalid (module (func (result i64) (i64.ctz (i32.const 0)))) "type mismatch")
   475  (assert_invalid (module (func (result i64) (i64.popcnt (i32.const 0)))) "type mismatch")
   476  (assert_invalid (module (func (result i64) (i64.eq (i32.const 0) (f32.const 0)))) "type mismatch")
   477  (assert_invalid (module (func (result i64) (i64.ge_s (i32.const 0) (f32.const 0)))) "type mismatch")
   478  (assert_invalid (module (func (result i64) (i64.ge_u (i32.const 0) (f32.const 0)))) "type mismatch")
   479  (assert_invalid (module (func (result i64) (i64.gt_s (i32.const 0) (f32.const 0)))) "type mismatch")
   480  (assert_invalid (module (func (result i64) (i64.gt_u (i32.const 0) (f32.const 0)))) "type mismatch")
   481  (assert_invalid (module (func (result i64) (i64.le_s (i32.const 0) (f32.const 0)))) "type mismatch")
   482  (assert_invalid (module (func (result i64) (i64.le_u (i32.const 0) (f32.const 0)))) "type mismatch")
   483  (assert_invalid (module (func (result i64) (i64.lt_s (i32.const 0) (f32.const 0)))) "type mismatch")
   484  (assert_invalid (module (func (result i64) (i64.lt_u (i32.const 0) (f32.const 0)))) "type mismatch")
   485  (assert_invalid (module (func (result i64) (i64.ne (i32.const 0) (f32.const 0)))) "type mismatch")
   486  
   487  (assert_malformed
   488    (module quote "(func (result i64) (i64.const nan:arithmetic))")
   489    "unexpected token"
   490  )
   491  (assert_malformed
   492    (module quote "(func (result i64) (i64.const nan:canonical))")
   493    "unexpected token"
   494  )