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

     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  )