...

Text file src/github.com/tetratelabs/wazero/internal/integration_test/spectest/v2/testdata/simd_i64x2_cmp.wast

Documentation: github.com/tetratelabs/wazero/internal/integration_test/spectest/v2/testdata

     1
     2;; Test all the i64x2 comparison operators on major boundary values and all special values.
     3
     4(module
     5  (func (export "eq") (param $x v128) (param $y v128) (result v128) (i64x2.eq (local.get $x) (local.get $y)))
     6  (func (export "ne") (param $x v128) (param $y v128) (result v128) (i64x2.ne (local.get $x) (local.get $y)))
     7  (func (export "lt_s") (param $x v128) (param $y v128) (result v128) (i64x2.lt_s (local.get $x) (local.get $y)))
     8  (func (export "le_s") (param $x v128) (param $y v128) (result v128) (i64x2.le_s (local.get $x) (local.get $y)))
     9  (func (export "gt_s") (param $x v128) (param $y v128) (result v128) (i64x2.gt_s (local.get $x) (local.get $y)))
    10  (func (export "ge_s") (param $x v128) (param $y v128) (result v128) (i64x2.ge_s (local.get $x) (local.get $y)))
    11)
    12
    13
    14;; eq
    15
    16;; i64x2.eq  (i64x2) (i64x2)
    17(assert_return (invoke "eq" (v128.const i64x2 0xFFFFFFFFFFFFFFFF 0xFFFFFFFFFFFFFFFF)
    18                            (v128.const i64x2 0xFFFFFFFFFFFFFFFF 0xFFFFFFFFFFFFFFFF))
    19                            (v128.const i64x2 -1 -1))
    20(assert_return (invoke "eq" (v128.const i64x2 0x0000000000000000 0x0000000000000000)
    21                            (v128.const i64x2 0x0000000000000000 0x0000000000000000))
    22                            (v128.const i64x2 -1 -1))
    23(assert_return (invoke "eq" (v128.const i64x2 0xF0F0F0F0F0F0F0F0 0xF0F0F0F0F0F0F0F0)
    24                            (v128.const i64x2 0xF0F0F0F0F0F0F0F0 0xF0F0F0F0F0F0F0F0))
    25                            (v128.const i64x2 -1 -1))
    26(assert_return (invoke "eq" (v128.const i64x2 0x0F0F0F0F0F0F0F0F 0x0F0F0F0F0F0F0F0F)
    27                            (v128.const i64x2 0x0F0F0F0F0F0F0F0F 0x0F0F0F0F0F0F0F0F))
    28                            (v128.const i64x2 -1 -1))
    29(assert_return (invoke "eq" (v128.const i64x2 0xFFFFFFFFFFFFFFFF 0x0000000000000000)
    30                            (v128.const i64x2 0xFFFFFFFFFFFFFFFF 0x0000000000000000))
    31                            (v128.const i64x2 -1 -1))
    32(assert_return (invoke "eq" (v128.const i64x2 0x0000000000000000 0xFFFFFFFFFFFFFFFF)
    33                            (v128.const i64x2 0x0000000000000000 0xFFFFFFFFFFFFFFFF))
    34                            (v128.const i64x2 -1 -1))
    35(assert_return (invoke "eq" (v128.const i64x2 0x03020100 0x11100904)
    36                            (v128.const i64x2 0x03020100 0x11100904))
    37                            (v128.const i64x2 -1 -1))
    38(assert_return (invoke "eq" (v128.const i64x2 0xFFFFFFFFFFFFFFFF 0xFFFFFFFFFFFFFFFF)
    39                            (v128.const i64x2 0x0FFFFFFFFFFFFFFF 0x0FFFFFFFFFFFFFFF))
    40                            (v128.const i64x2 0 0))
    41(assert_return (invoke "eq" (v128.const i64x2 0x1 0x1)
    42                            (v128.const i64x2 0x2 0x2))
    43                            (v128.const i64x2 0 0))
    44
    45;; ne
    46
    47;; i64x2.ne  (i64x2) (i64x2)
    48
    49;; hex vs hex
    50(assert_return (invoke "ne" (v128.const i64x2 0xFFFFFFFFFFFFFFFF 0xFFFFFFFFFFFFFFFF)
    51                            (v128.const i64x2 0xFFFFFFFFFFFFFFFF 0xFFFFFFFFFFFFFFFF))
    52                            (v128.const i64x2 0 0))
    53(assert_return (invoke "ne" (v128.const i64x2 0x0000000000000000 0x0000000000000000)
    54                            (v128.const i64x2 0x0000000000000000 0x0000000000000000))
    55                            (v128.const i64x2 0 0))
    56(assert_return (invoke "ne" (v128.const i64x2 0xF0F0F0F0F0F0F0F0 0xF0F0F0F0F0F0F0F0)
    57                            (v128.const i64x2 0xF0F0F0F0F0F0F0F0 0xF0F0F0F0F0F0F0F0))
    58                            (v128.const i64x2 0 0))
    59(assert_return (invoke "ne" (v128.const i64x2 0x0F0F0F0F0F0F0F0F 0x0F0F0F0F0F0F0F0F)
    60                            (v128.const i64x2 0x0F0F0F0F0F0F0F0F 0x0F0F0F0F0F0F0F0F))
    61                            (v128.const i64x2 0 0))
    62(assert_return (invoke "ne" (v128.const i64x2 0xFFFFFFFFFFFFFFFF 0x0000000000000000)
    63                            (v128.const i64x2 0xFFFFFFFFFFFFFFFF 0x0000000000000000))
    64                            (v128.const i64x2 0 0))
    65(assert_return (invoke "ne" (v128.const i64x2 0x0000000000000000 0xFFFFFFFFFFFFFFFF)
    66                            (v128.const i64x2 0x0000000000000000 0xFFFFFFFFFFFFFFFF))
    67                            (v128.const i64x2 0 0))
    68(assert_return (invoke "ne" (v128.const i64x2 0x03020100 0x11100904)
    69                            (v128.const i64x2 0x03020100 0x11100904))
    70                            (v128.const i64x2 0 0))
    71
    72;; lt_s
    73
    74;; i64x2.lt_s  (i64x2) (i64x2)
    75
    76;; hex vs hex
    77(assert_return (invoke "lt_s" (v128.const i64x2 0xFFFFFFFFFFFFFFFF 0xFFFFFFFFFFFFFFFF)
    78                              (v128.const i64x2 0xFFFFFFFFFFFFFFFF 0xFFFFFFFFFFFFFFFF))
    79                              (v128.const i64x2 0 0))
    80(assert_return (invoke "lt_s" (v128.const i64x2 0x0000000000000000 0x0000000000000000)
    81                              (v128.const i64x2 0x0000000000000000 0x0000000000000000))
    82                              (v128.const i64x2 0 0))
    83(assert_return (invoke "lt_s" (v128.const i64x2 0xF0F0F0F0F0F0F0F0 0xF0F0F0F0F0F0F0F0)
    84                              (v128.const i64x2 0xF0F0F0F0F0F0F0F0 0xF0F0F0F0F0F0F0F0))
    85                              (v128.const i64x2 0 0))
    86(assert_return (invoke "lt_s" (v128.const i64x2 0x0F0F0F0F0F0F0F0F 0x0F0F0F0F0F0F0F0F)
    87                              (v128.const i64x2 0x0F0F0F0F0F0F0F0F 0x0F0F0F0F0F0F0F0F))
    88                              (v128.const i64x2 0 0))
    89(assert_return (invoke "lt_s" (v128.const i64x2 0xFFFFFFFFFFFFFFFF 0x0000000000000000)
    90                              (v128.const i64x2 0xFFFFFFFFFFFFFFFF 0x0000000000000000))
    91                              (v128.const i64x2 0 0))
    92(assert_return (invoke "lt_s" (v128.const i64x2 0x0000000000000000 0xFFFFFFFFFFFFFFFF)
    93                              (v128.const i64x2 0x0000000000000000 0xFFFFFFFFFFFFFFFF))
    94                              (v128.const i64x2 0 0))
    95(assert_return (invoke "lt_s" (v128.const i64x2 0x0302010011100904 0x1A0B0A12FFABAA1B)
    96                              (v128.const i64x2 0x0302010011100904 0x1A0B0A12FFABAA1B))
    97                              (v128.const i64x2 0 0))
    98
    99;; hex vs dec
   100(assert_return (invoke "lt_s" (v128.const i64x2 0xFFFFFFFFFFFFFFFF 0xFFFFFFFFFFFFFFFF)
   101                              (v128.const i64x2 18446744073709551615 18446744073709551615))
   102                              (v128.const i64x2 0 0))
   103(assert_return (invoke "lt_s" (v128.const i64x2 0xFFFFFFFFFFFFFFFF 0xFFFFFFFFFFFFFFFF)
   104                              (v128.const i64x2 -1 -1))
   105                              (v128.const i64x2 0 0))
   106(assert_return (invoke "lt_s" (v128.const i64x2 0x8080808080808080 0x8080808080808080)
   107                              (v128.const i64x2 9259542123273814144 9259542123273814144))
   108                              (v128.const i64x2 0 0))
   109(assert_return (invoke "lt_s" (v128.const i64x2 0x8080808080808080 0x8080808080808080)
   110                              (v128.const i64x2 -9187201950435737472 -9187201950435737472))
   111                              (v128.const i64x2 0 0))
   112(assert_return (invoke "lt_s" (v128.const i64x2 0x8382818000FFFEFD 0x7F020100FFFEFD80)
   113                              (v128.const i64x2 -8970465120996032771 9151878496576798080))
   114                              (v128.const i64x2 0 0))
   115
   116;; dec vs dec
   117(assert_return (invoke "lt_s" (v128.const i64x2 -1 -1)
   118                              (v128.const i64x2 -1 -1))
   119                              (v128.const i64x2 0 0))
   120(assert_return (invoke "lt_s" (v128.const i64x2 0 0)
   121                              (v128.const i64x2 0 0))
   122                              (v128.const i64x2 0 0))
   123(assert_return (invoke "lt_s" (v128.const i64x2 18446744073709551615 18446744073709551615)
   124                              (v128.const i64x2 18446744073709551615 18446744073709551615))
   125                              (v128.const i64x2 0 0))
   126(assert_return (invoke "lt_s" (v128.const i64x2 18446744073709551615 18446744073709551615)
   127                              (v128.const i64x2 -1 -1))
   128                              (v128.const i64x2 0 0))
   129(assert_return (invoke "lt_s" (v128.const i64x2 18446744073709551615 0)
   130                              (v128.const i64x2 18446744073709551615 0))
   131                              (v128.const i64x2 0 0))
   132(assert_return (invoke "lt_s" (v128.const i64x2 0 18446744073709551615)
   133                              (v128.const i64x2 0 18446744073709551615))
   134                              (v128.const i64x2 0 0))
   135(assert_return (invoke "lt_s" (v128.const i64x2 -9223372036854775807 18446744073709551615)
   136                              (v128.const i64x2 9223372036854775809 -1))
   137                              (v128.const i64x2 0 0))
   138
   139;; hex vs float
   140(assert_return (invoke "lt_s" (v128.const i64x2 0xc060000000000000 0xc05fc00000000000)
   141                              (v128.const f64x2 -128.0 -127.0))
   142                              (v128.const i64x2 0 0))
   143(assert_return (invoke "lt_s" (v128.const i64x2 0x3ff0000000000000 0x405fc00000000000)
   144                              (v128.const f64x2 1.0 127.0))
   145                              (v128.const i64x2 0 0))
   146
   147;; le_s
   148
   149;; i64x2.le_s  (i64x2) (i64x2)
   150
   151;; hex vs hex
   152(assert_return (invoke "le_s" (v128.const i64x2 0xFFFFFFFFFFFFFFFF 0xFFFFFFFFFFFFFFFF)
   153                              (v128.const i64x2 0xFFFFFFFFFFFFFFFF 0xFFFFFFFFFFFFFFFF))
   154                              (v128.const i64x2 -1 -1))
   155(assert_return (invoke "le_s" (v128.const i64x2 0x0000000000000000 0x0000000000000000)
   156                              (v128.const i64x2 0x0000000000000000 0x0000000000000000))
   157                              (v128.const i64x2 -1 -1))
   158(assert_return (invoke "le_s" (v128.const i64x2 0xF0F0F0F0F0F0F0F0 0xF0F0F0F0F0F0F0F0)
   159                              (v128.const i64x2 0xF0F0F0F0F0F0F0F0 0xF0F0F0F0F0F0F0F0))
   160                              (v128.const i64x2 -1 -1))
   161(assert_return (invoke "le_s" (v128.const i64x2 0x0F0F0F0F0F0F0F0F 0x0F0F0F0F0F0F0F0F)
   162                              (v128.const i64x2 0x0F0F0F0F0F0F0F0F 0x0F0F0F0F0F0F0F0F))
   163                              (v128.const i64x2 -1 -1))
   164(assert_return (invoke "le_s" (v128.const i64x2 0xFFFFFFFFFFFFFFFF 0x0000000000000000)
   165                              (v128.const i64x2 0xFFFFFFFFFFFFFFFF 0x0000000000000000))
   166                              (v128.const i64x2 -1 -1))
   167(assert_return (invoke "le_s" (v128.const i64x2 0x0000000000000000 0xFFFFFFFFFFFFFFFF)
   168                              (v128.const i64x2 0x0000000000000000 0xFFFFFFFFFFFFFFFF))
   169                              (v128.const i64x2 -1 -1))
   170(assert_return (invoke "le_s" (v128.const i64x2 0x0302010011100904 0x1A0B0A12FFABAA1B)
   171                              (v128.const i64x2 0x0302010011100904 0x1A0B0A12FFABAA1B))
   172                              (v128.const i64x2 -1 -1))
   173
   174;; hex vs dec
   175(assert_return (invoke "le_s" (v128.const i64x2 0xFFFFFFFFFFFFFFFF 0xFFFFFFFFFFFFFFFF)
   176                              (v128.const i64x2 18446744073709551615 18446744073709551615))
   177                              (v128.const i64x2 -1 -1))
   178(assert_return (invoke "le_s" (v128.const i64x2 0xFFFFFFFFFFFFFFFF 0xFFFFFFFFFFFFFFFF)
   179                              (v128.const i64x2 -1 -1))
   180                              (v128.const i64x2 -1 -1))
   181(assert_return (invoke "le_s" (v128.const i64x2 0x8080808080808080 0x8080808080808080)
   182                              (v128.const i64x2 9259542123273814144 9259542123273814144))
   183                              (v128.const i64x2 -1 -1))
   184(assert_return (invoke "le_s" (v128.const i64x2 0x8080808080808080 0x8080808080808080)
   185                              (v128.const i64x2 -9187201950435737472 -9187201950435737472))
   186                              (v128.const i64x2 -1 -1))
   187(assert_return (invoke "le_s" (v128.const i64x2 0x8382818000FFFEFD 0x7F020100FFFEFD80)
   188                              (v128.const i64x2 -8970465120996032771 9151878496576798080))
   189                              (v128.const i64x2 -1 -1))
   190
   191;; dec vs dec
   192(assert_return (invoke "le_s" (v128.const i64x2 -1 -1)
   193                              (v128.const i64x2 -1 -1))
   194                              (v128.const i64x2 -1 -1))
   195(assert_return (invoke "le_s" (v128.const i64x2 0 0)
   196                              (v128.const i64x2 0 -1))
   197                              (v128.const i64x2 -1 0))
   198(assert_return (invoke "le_s" (v128.const i64x2 0 0)
   199                              (v128.const i64x2 0 0))
   200                              (v128.const i64x2 -1 -1))
   201(assert_return (invoke "le_s" (v128.const i64x2 18446744073709551615 18446744073709551615)
   202                              (v128.const i64x2 18446744073709551615 18446744073709551615))
   203                              (v128.const i64x2 -1 -1))
   204(assert_return (invoke "le_s" (v128.const i64x2 18446744073709551615 18446744073709551615)
   205                              (v128.const i64x2 -1 -1))
   206                              (v128.const i64x2 -1 -1))
   207(assert_return (invoke "le_s" (v128.const i64x2 18446744073709551615 0)
   208                              (v128.const i64x2 18446744073709551615 0))
   209                              (v128.const i64x2 -1 -1))
   210(assert_return (invoke "le_s" (v128.const i64x2 0 18446744073709551615)
   211                              (v128.const i64x2 0 18446744073709551615))
   212                              (v128.const i64x2 -1 -1))
   213(assert_return (invoke "le_s" (v128.const i64x2 -9223372036854775807 18446744073709551615)
   214                              (v128.const i64x2 9223372036854775809 -1))
   215                              (v128.const i64x2 -1 -1))
   216
   217;; hex vs float
   218(assert_return (invoke "le_s" (v128.const i64x2 0xc060000000000000 0xc05fc00000000000)
   219                              (v128.const f64x2 -128.0 -127.0))
   220                              (v128.const i64x2 -1 -1))
   221(assert_return (invoke "le_s" (v128.const i64x2 0x3ff0000000000000 0x405fc00000000000)
   222                              (v128.const f64x2 1.0 127.0))
   223                              (v128.const i64x2 -1 -1))
   224
   225;; gt_s
   226
   227;; i64x2.gt_s  (i64x2) (i64x2)
   228
   229;; hex vs hex
   230(assert_return (invoke "gt_s" (v128.const i64x2 0xFFFFFFFFFFFFFFFF 0xFFFFFFFFFFFFFFFF)
   231                              (v128.const i64x2 0xFFFFFFFFFFFFFFFF 0xFFFFFFFFFFFFFFFF))
   232                              (v128.const i64x2 0 0))
   233(assert_return (invoke "gt_s" (v128.const i64x2 0x0000000000000000 0x0000000000000000)
   234                              (v128.const i64x2 0x0000000000000000 0x0000000000000000))
   235                              (v128.const i64x2 0 0))
   236(assert_return (invoke "gt_s" (v128.const i64x2 0xF0F0F0F0F0F0F0F0 0xF0F0F0F0F0F0F0F0)
   237                              (v128.const i64x2 0xF0F0F0F0F0F0F0F0 0xF0F0F0F0F0F0F0F0))
   238                              (v128.const i64x2 0 0))
   239(assert_return (invoke "gt_s" (v128.const i64x2 0x0F0F0F0F0F0F0F0F 0x0F0F0F0F0F0F0F0F)
   240                              (v128.const i64x2 0x0F0F0F0F0F0F0F0F 0x0F0F0F0F0F0F0F0F))
   241                              (v128.const i64x2 0 0))
   242(assert_return (invoke "gt_s" (v128.const i64x2 0xFFFFFFFFFFFFFFFF 0x0000000000000000)
   243                              (v128.const i64x2 0xFFFFFFFFFFFFFFFF 0x0000000000000000))
   244                              (v128.const i64x2 0 0))
   245(assert_return (invoke "gt_s" (v128.const i64x2 0x0000000000000000 0xFFFFFFFFFFFFFFFF)
   246                              (v128.const i64x2 0x0000000000000000 0xFFFFFFFFFFFFFFFF))
   247                              (v128.const i64x2 0 0))
   248(assert_return (invoke "gt_s" (v128.const i64x2 0x0302010011100904 0x1A0B0A12FFABAA1B)
   249                              (v128.const i64x2 0x0302010011100904 0x1A0B0A12FFABAA1B))
   250                              (v128.const i64x2 0 0))
   251
   252;; hex vs dec
   253(assert_return (invoke "gt_s" (v128.const i64x2 0xFFFFFFFFFFFFFFFF 0xFFFFFFFFFFFFFFFF)
   254                              (v128.const i64x2 18446744073709551615 18446744073709551615))
   255                              (v128.const i64x2 0 0))
   256(assert_return (invoke "gt_s" (v128.const i64x2 0xFFFFFFFFFFFFFFFF 0xFFFFFFFFFFFFFFFF)
   257                              (v128.const i64x2 -1 -1))
   258                              (v128.const i64x2 0 0))
   259(assert_return (invoke "gt_s" (v128.const i64x2 0x8080808080808080 0x8080808080808080)
   260                              (v128.const i64x2 9259542123273814144 9259542123273814144))
   261                              (v128.const i64x2 0 0))
   262(assert_return (invoke "gt_s" (v128.const i64x2 0x8080808080808080 0x8080808080808080)
   263                              (v128.const i64x2 -9187201950435737472 -9187201950435737472))
   264                              (v128.const i64x2 0 0))
   265(assert_return (invoke "gt_s" (v128.const i64x2 0x8382818000FFFEFD 0x7F020100FFFEFD80)
   266                              (v128.const i64x2 -8970465120996032771 9151878496576798080))
   267                              (v128.const i64x2 0 0))
   268
   269;; dec vs dec
   270(assert_return (invoke "gt_s" (v128.const i64x2 -1 -1)
   271                              (v128.const i64x2 -1 -1))
   272                              (v128.const i64x2 0 0))
   273(assert_return (invoke "gt_s" (v128.const i64x2 0 0)
   274                              (v128.const i64x2 0 0))
   275                              (v128.const i64x2 0 0))
   276(assert_return (invoke "gt_s" (v128.const i64x2 18446744073709551615 18446744073709551615)
   277                              (v128.const i64x2 18446744073709551615 18446744073709551615))
   278                              (v128.const i64x2 0 0))
   279(assert_return (invoke "gt_s" (v128.const i64x2 18446744073709551615 18446744073709551615)
   280                              (v128.const i64x2 -1 -1))
   281                              (v128.const i64x2 0 0))
   282(assert_return (invoke "gt_s" (v128.const i64x2 18446744073709551615 0)
   283                              (v128.const i64x2 18446744073709551615 0))
   284                              (v128.const i64x2 0 0))
   285(assert_return (invoke "gt_s" (v128.const i64x2 0 18446744073709551615)
   286                              (v128.const i64x2 0 18446744073709551615))
   287                              (v128.const i64x2 0 0))
   288(assert_return (invoke "gt_s" (v128.const i64x2 -9223372036854775807 18446744073709551615)
   289                              (v128.const i64x2 9223372036854775809 -1))
   290                              (v128.const i64x2 0 0))
   291
   292;; hex vs float
   293(assert_return (invoke "gt_s" (v128.const i64x2 0xc060000000000000 0xc05fc00000000000)
   294                              (v128.const f64x2 -128.0 -127.0))
   295                              (v128.const i64x2 0 0))
   296(assert_return (invoke "gt_s" (v128.const i64x2 0x3ff0000000000000 0x405fc00000000000)
   297                              (v128.const f64x2 1.0 127.0))
   298                              (v128.const i64x2 0 0))
   299
   300;; ge_s
   301
   302;; i64x2.ge_s  (i64x2) (i64x2)
   303
   304;; hex vs hex
   305(assert_return (invoke "ge_s" (v128.const i64x2 0xFFFFFFFFFFFFFFFF 0xFFFFFFFFFFFFFFFF)
   306                              (v128.const i64x2 0xFFFFFFFFFFFFFFFF 0xFFFFFFFFFFFFFFFF))
   307                              (v128.const i64x2 -1 -1))
   308(assert_return (invoke "ge_s" (v128.const i64x2 0x0000000000000000 0x0000000000000000)
   309                              (v128.const i64x2 0x0000000000000000 0x0000000000000000))
   310                              (v128.const i64x2 -1 -1))
   311(assert_return (invoke "ge_s" (v128.const i64x2 0xF0F0F0F0F0F0F0F0 0xF0F0F0F0F0F0F0F0)
   312                              (v128.const i64x2 0xF0F0F0F0F0F0F0F0 0xF0F0F0F0F0F0F0F0))
   313                              (v128.const i64x2 -1 -1))
   314(assert_return (invoke "ge_s" (v128.const i64x2 0x0F0F0F0F0F0F0F0F 0x0F0F0F0F0F0F0F0F)
   315                              (v128.const i64x2 0x0F0F0F0F0F0F0F0F 0x0F0F0F0F0F0F0F0F))
   316                              (v128.const i64x2 -1 -1))
   317(assert_return (invoke "ge_s" (v128.const i64x2 0xFFFFFFFFFFFFFFFF 0x0000000000000000)
   318                              (v128.const i64x2 0xFFFFFFFFFFFFFFFF 0x0000000000000000))
   319                              (v128.const i64x2 -1 -1))
   320(assert_return (invoke "ge_s" (v128.const i64x2 0x0000000000000000 0xFFFFFFFFFFFFFFFF)
   321                              (v128.const i64x2 0x0000000000000000 0xFFFFFFFFFFFFFFFF))
   322                              (v128.const i64x2 -1 -1))
   323(assert_return (invoke "ge_s" (v128.const i64x2 0x0302010011100904 0x1A0B0A12FFABAA1B)
   324                              (v128.const i64x2 0x0302010011100904 0x1A0B0A12FFABAA1B))
   325                              (v128.const i64x2 -1 -1))
   326
   327;; hex vs dec
   328(assert_return (invoke "ge_s" (v128.const i64x2 0xFFFFFFFFFFFFFFFF 0xFFFFFFFFFFFFFFFF)
   329                              (v128.const i64x2 18446744073709551615 18446744073709551615))
   330                              (v128.const i64x2 -1 -1))
   331(assert_return (invoke "ge_s" (v128.const i64x2 0xFFFFFFFFFFFFFFFF 0xFFFFFFFFFFFFFFFF)
   332                              (v128.const i64x2 -1 -1))
   333                              (v128.const i64x2 -1 -1))
   334(assert_return (invoke "ge_s" (v128.const i64x2 0x8080808080808080 0x8080808080808080)
   335                              (v128.const i64x2 9259542123273814144 9259542123273814144))
   336                              (v128.const i64x2 -1 -1))
   337(assert_return (invoke "ge_s" (v128.const i64x2 0x8080808080808080 0x8080808080808080)
   338                              (v128.const i64x2 -9187201950435737472 -9187201950435737472))
   339                              (v128.const i64x2 -1 -1))
   340(assert_return (invoke "ge_s" (v128.const i64x2 0x8382818000FFFEFD 0x7F020100FFFEFD80)
   341                              (v128.const i64x2 -8970465120996032771 9151878496576798080))
   342                              (v128.const i64x2 -1 -1))
   343
   344;; dec vs dec
   345(assert_return (invoke "ge_s" (v128.const i64x2 -1 -1)
   346                              (v128.const i64x2 -1 -1))
   347                              (v128.const i64x2 -1 -1))
   348(assert_return (invoke "ge_s" (v128.const i64x2 -1 -1)
   349                              (v128.const i64x2 0 -1))
   350                              (v128.const i64x2 0 -1))
   351(assert_return (invoke "ge_s" (v128.const i64x2 0 0)
   352                              (v128.const i64x2 0 0))
   353                              (v128.const i64x2 -1 -1))
   354(assert_return (invoke "ge_s" (v128.const i64x2 18446744073709551615 18446744073709551615)
   355                              (v128.const i64x2 18446744073709551615 18446744073709551615))
   356                              (v128.const i64x2 -1 -1))
   357(assert_return (invoke "ge_s" (v128.const i64x2 18446744073709551615 18446744073709551615)
   358                              (v128.const i64x2 -1 -1))
   359                              (v128.const i64x2 -1 -1))
   360(assert_return (invoke "ge_s" (v128.const i64x2 18446744073709551615 0)
   361                              (v128.const i64x2 18446744073709551615 0))
   362                              (v128.const i64x2 -1 -1))
   363(assert_return (invoke "ge_s" (v128.const i64x2 0 18446744073709551615)
   364                              (v128.const i64x2 0 18446744073709551615))
   365                              (v128.const i64x2 -1 -1))
   366(assert_return (invoke "ge_s" (v128.const i64x2 -9223372036854775807 18446744073709551615)
   367                              (v128.const i64x2 9223372036854775809 -1))
   368                              (v128.const i64x2 -1 -1))
   369
   370;; hex vs float
   371(assert_return (invoke "ge_s" (v128.const i64x2 0xc060000000000000 0xc05fc00000000000)
   372                              (v128.const f64x2 -128.0 -127.0))
   373                              (v128.const i64x2 -1 -1))
   374(assert_return (invoke "ge_s" (v128.const i64x2 0x3ff0000000000000 0x405fc00000000000)
   375                              (v128.const f64x2 1.0 127.0))
   376                              (v128.const i64x2 -1 -1))
   377
   378;; Type check
   379
   380(assert_invalid (module (func (result v128) (i64x2.eq (i32.const 0) (f32.const 0)))) "type mismatch")
   381(assert_invalid (module (func (result v128) (i64x2.ne (i32.const 0) (f32.const 0)))) "type mismatch")
   382(assert_invalid (module (func (result v128) (i64x2.ge_s (i32.const 0) (f32.const 0)))) "type mismatch")
   383(assert_invalid (module (func (result v128) (i64x2.gt_s (i32.const 0) (f32.const 0)))) "type mismatch")
   384(assert_invalid (module (func (result v128) (i64x2.le_s (i32.const 0) (f32.const 0)))) "type mismatch")
   385(assert_invalid (module (func (result v128) (i64x2.lt_s (i32.const 0) (f32.const 0)))) "type mismatch")
   386
   387;; Test operation with empty argument
   388
   389(assert_invalid
   390  (module
   391    (func $i64x2.eq-1st-arg-empty (result v128)
   392      (i64x2.eq (v128.const i64x2 0 0))
   393    )
   394  )
   395  "type mismatch"
   396)
   397(assert_invalid
   398  (module
   399    (func $i64x2.eq-arg-empty (result v128)
   400      (i64x2.eq)
   401    )
   402  )
   403  "type mismatch"
   404)
   405(assert_invalid
   406  (module
   407    (func $i64x2.ne-1st-arg-empty (result v128)
   408      (i64x2.ne (v128.const i64x2 0 0))
   409    )
   410  )
   411  "type mismatch"
   412)
   413(assert_invalid
   414  (module
   415    (func $i64x2.ne-arg-empty (result v128)
   416      (i64x2.ne)
   417    )
   418  )
   419  "type mismatch"
   420)

View as plain text