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 )