Files
wasmer/tests/wast/spec/proposals/simd/simd_i64x2_cmp.wast

420 lines
24 KiB
Plaintext
Vendored

;; Test all the i64x2 comparison operators on major boundary values and all special values.
(module
(func (export "eq") (param $x v128) (param $y v128) (result v128) (i64x2.eq (local.get $x) (local.get $y)))
(func (export "ne") (param $x v128) (param $y v128) (result v128) (i64x2.ne (local.get $x) (local.get $y)))
(func (export "lt_s") (param $x v128) (param $y v128) (result v128) (i64x2.lt_s (local.get $x) (local.get $y)))
(func (export "le_s") (param $x v128) (param $y v128) (result v128) (i64x2.le_s (local.get $x) (local.get $y)))
(func (export "gt_s") (param $x v128) (param $y v128) (result v128) (i64x2.gt_s (local.get $x) (local.get $y)))
(func (export "ge_s") (param $x v128) (param $y v128) (result v128) (i64x2.ge_s (local.get $x) (local.get $y)))
)
;; eq
;; i64x2.eq (i64x2) (i64x2)
(assert_return (invoke "eq" (v128.const i64x2 0xFFFFFFFFFFFFFFFF 0xFFFFFFFFFFFFFFFF)
(v128.const i64x2 0xFFFFFFFFFFFFFFFF 0xFFFFFFFFFFFFFFFF))
(v128.const i64x2 -1 -1))
(assert_return (invoke "eq" (v128.const i64x2 0x0000000000000000 0x0000000000000000)
(v128.const i64x2 0x0000000000000000 0x0000000000000000))
(v128.const i64x2 -1 -1))
(assert_return (invoke "eq" (v128.const i64x2 0xF0F0F0F0F0F0F0F0 0xF0F0F0F0F0F0F0F0)
(v128.const i64x2 0xF0F0F0F0F0F0F0F0 0xF0F0F0F0F0F0F0F0))
(v128.const i64x2 -1 -1))
(assert_return (invoke "eq" (v128.const i64x2 0x0F0F0F0F0F0F0F0F 0x0F0F0F0F0F0F0F0F)
(v128.const i64x2 0x0F0F0F0F0F0F0F0F 0x0F0F0F0F0F0F0F0F))
(v128.const i64x2 -1 -1))
(assert_return (invoke "eq" (v128.const i64x2 0xFFFFFFFFFFFFFFFF 0x0000000000000000)
(v128.const i64x2 0xFFFFFFFFFFFFFFFF 0x0000000000000000))
(v128.const i64x2 -1 -1))
(assert_return (invoke "eq" (v128.const i64x2 0x0000000000000000 0xFFFFFFFFFFFFFFFF)
(v128.const i64x2 0x0000000000000000 0xFFFFFFFFFFFFFFFF))
(v128.const i64x2 -1 -1))
(assert_return (invoke "eq" (v128.const i64x2 0x03020100 0x11100904)
(v128.const i64x2 0x03020100 0x11100904))
(v128.const i64x2 -1 -1))
(assert_return (invoke "eq" (v128.const i64x2 0xFFFFFFFFFFFFFFFF 0xFFFFFFFFFFFFFFFF)
(v128.const i64x2 0x0FFFFFFFFFFFFFFF 0x0FFFFFFFFFFFFFFF))
(v128.const i64x2 0 0))
(assert_return (invoke "eq" (v128.const i64x2 0x1 0x1)
(v128.const i64x2 0x2 0x2))
(v128.const i64x2 0 0))
;; ne
;; i64x2.ne (i64x2) (i64x2)
;; hex vs hex
(assert_return (invoke "ne" (v128.const i64x2 0xFFFFFFFFFFFFFFFF 0xFFFFFFFFFFFFFFFF)
(v128.const i64x2 0xFFFFFFFFFFFFFFFF 0xFFFFFFFFFFFFFFFF))
(v128.const i64x2 0 0))
(assert_return (invoke "ne" (v128.const i64x2 0x0000000000000000 0x0000000000000000)
(v128.const i64x2 0x0000000000000000 0x0000000000000000))
(v128.const i64x2 0 0))
(assert_return (invoke "ne" (v128.const i64x2 0xF0F0F0F0F0F0F0F0 0xF0F0F0F0F0F0F0F0)
(v128.const i64x2 0xF0F0F0F0F0F0F0F0 0xF0F0F0F0F0F0F0F0))
(v128.const i64x2 0 0))
(assert_return (invoke "ne" (v128.const i64x2 0x0F0F0F0F0F0F0F0F 0x0F0F0F0F0F0F0F0F)
(v128.const i64x2 0x0F0F0F0F0F0F0F0F 0x0F0F0F0F0F0F0F0F))
(v128.const i64x2 0 0))
(assert_return (invoke "ne" (v128.const i64x2 0xFFFFFFFFFFFFFFFF 0x0000000000000000)
(v128.const i64x2 0xFFFFFFFFFFFFFFFF 0x0000000000000000))
(v128.const i64x2 0 0))
(assert_return (invoke "ne" (v128.const i64x2 0x0000000000000000 0xFFFFFFFFFFFFFFFF)
(v128.const i64x2 0x0000000000000000 0xFFFFFFFFFFFFFFFF))
(v128.const i64x2 0 0))
(assert_return (invoke "ne" (v128.const i64x2 0x03020100 0x11100904)
(v128.const i64x2 0x03020100 0x11100904))
(v128.const i64x2 0 0))
;; lt_s
;; i64x2.lt_s (i64x2) (i64x2)
;; hex vs hex
(assert_return (invoke "lt_s" (v128.const i64x2 0xFFFFFFFFFFFFFFFF 0xFFFFFFFFFFFFFFFF)
(v128.const i64x2 0xFFFFFFFFFFFFFFFF 0xFFFFFFFFFFFFFFFF))
(v128.const i64x2 0 0))
(assert_return (invoke "lt_s" (v128.const i64x2 0x0000000000000000 0x0000000000000000)
(v128.const i64x2 0x0000000000000000 0x0000000000000000))
(v128.const i64x2 0 0))
(assert_return (invoke "lt_s" (v128.const i64x2 0xF0F0F0F0F0F0F0F0 0xF0F0F0F0F0F0F0F0)
(v128.const i64x2 0xF0F0F0F0F0F0F0F0 0xF0F0F0F0F0F0F0F0))
(v128.const i64x2 0 0))
(assert_return (invoke "lt_s" (v128.const i64x2 0x0F0F0F0F0F0F0F0F 0x0F0F0F0F0F0F0F0F)
(v128.const i64x2 0x0F0F0F0F0F0F0F0F 0x0F0F0F0F0F0F0F0F))
(v128.const i64x2 0 0))
(assert_return (invoke "lt_s" (v128.const i64x2 0xFFFFFFFFFFFFFFFF 0x0000000000000000)
(v128.const i64x2 0xFFFFFFFFFFFFFFFF 0x0000000000000000))
(v128.const i64x2 0 0))
(assert_return (invoke "lt_s" (v128.const i64x2 0x0000000000000000 0xFFFFFFFFFFFFFFFF)
(v128.const i64x2 0x0000000000000000 0xFFFFFFFFFFFFFFFF))
(v128.const i64x2 0 0))
(assert_return (invoke "lt_s" (v128.const i64x2 0x0302010011100904 0x1A0B0A12FFABAA1B)
(v128.const i64x2 0x0302010011100904 0x1A0B0A12FFABAA1B))
(v128.const i64x2 0 0))
;; hex vs dec
(assert_return (invoke "lt_s" (v128.const i64x2 0xFFFFFFFFFFFFFFFF 0xFFFFFFFFFFFFFFFF)
(v128.const i64x2 18446744073709551615 18446744073709551615))
(v128.const i64x2 0 0))
(assert_return (invoke "lt_s" (v128.const i64x2 0xFFFFFFFFFFFFFFFF 0xFFFFFFFFFFFFFFFF)
(v128.const i64x2 -1 -1))
(v128.const i64x2 0 0))
(assert_return (invoke "lt_s" (v128.const i64x2 0x8080808080808080 0x8080808080808080)
(v128.const i64x2 9259542123273814144 9259542123273814144))
(v128.const i64x2 0 0))
(assert_return (invoke "lt_s" (v128.const i64x2 0x8080808080808080 0x8080808080808080)
(v128.const i64x2 -9187201950435737472 -9187201950435737472))
(v128.const i64x2 0 0))
(assert_return (invoke "lt_s" (v128.const i64x2 0x8382818000FFFEFD 0x7F020100FFFEFD80)
(v128.const i64x2 -8970465120996032771 9151878496576798080))
(v128.const i64x2 0 0))
;; dec vs dec
(assert_return (invoke "lt_s" (v128.const i64x2 -1 -1)
(v128.const i64x2 -1 -1))
(v128.const i64x2 0 0))
(assert_return (invoke "lt_s" (v128.const i64x2 0 0)
(v128.const i64x2 0 0))
(v128.const i64x2 0 0))
(assert_return (invoke "lt_s" (v128.const i64x2 18446744073709551615 18446744073709551615)
(v128.const i64x2 18446744073709551615 18446744073709551615))
(v128.const i64x2 0 0))
(assert_return (invoke "lt_s" (v128.const i64x2 18446744073709551615 18446744073709551615)
(v128.const i64x2 -1 -1))
(v128.const i64x2 0 0))
(assert_return (invoke "lt_s" (v128.const i64x2 18446744073709551615 0)
(v128.const i64x2 18446744073709551615 0))
(v128.const i64x2 0 0))
(assert_return (invoke "lt_s" (v128.const i64x2 0 18446744073709551615)
(v128.const i64x2 0 18446744073709551615))
(v128.const i64x2 0 0))
(assert_return (invoke "lt_s" (v128.const i64x2 -9223372036854775807 18446744073709551615)
(v128.const i64x2 9223372036854775809 -1))
(v128.const i64x2 0 0))
;; hex vs float
(assert_return (invoke "lt_s" (v128.const i64x2 0xc060000000000000 0xc05fc00000000000)
(v128.const f64x2 -128.0 -127.0))
(v128.const i64x2 0 0))
(assert_return (invoke "lt_s" (v128.const i64x2 0x3ff0000000000000 0x405fc00000000000)
(v128.const f64x2 1.0 127.0))
(v128.const i64x2 0 0))
;; le_s
;; i64x2.le_s (i64x2) (i64x2)
;; hex vs hex
(assert_return (invoke "le_s" (v128.const i64x2 0xFFFFFFFFFFFFFFFF 0xFFFFFFFFFFFFFFFF)
(v128.const i64x2 0xFFFFFFFFFFFFFFFF 0xFFFFFFFFFFFFFFFF))
(v128.const i64x2 -1 -1))
(assert_return (invoke "le_s" (v128.const i64x2 0x0000000000000000 0x0000000000000000)
(v128.const i64x2 0x0000000000000000 0x0000000000000000))
(v128.const i64x2 -1 -1))
(assert_return (invoke "le_s" (v128.const i64x2 0xF0F0F0F0F0F0F0F0 0xF0F0F0F0F0F0F0F0)
(v128.const i64x2 0xF0F0F0F0F0F0F0F0 0xF0F0F0F0F0F0F0F0))
(v128.const i64x2 -1 -1))
(assert_return (invoke "le_s" (v128.const i64x2 0x0F0F0F0F0F0F0F0F 0x0F0F0F0F0F0F0F0F)
(v128.const i64x2 0x0F0F0F0F0F0F0F0F 0x0F0F0F0F0F0F0F0F))
(v128.const i64x2 -1 -1))
(assert_return (invoke "le_s" (v128.const i64x2 0xFFFFFFFFFFFFFFFF 0x0000000000000000)
(v128.const i64x2 0xFFFFFFFFFFFFFFFF 0x0000000000000000))
(v128.const i64x2 -1 -1))
(assert_return (invoke "le_s" (v128.const i64x2 0x0000000000000000 0xFFFFFFFFFFFFFFFF)
(v128.const i64x2 0x0000000000000000 0xFFFFFFFFFFFFFFFF))
(v128.const i64x2 -1 -1))
(assert_return (invoke "le_s" (v128.const i64x2 0x0302010011100904 0x1A0B0A12FFABAA1B)
(v128.const i64x2 0x0302010011100904 0x1A0B0A12FFABAA1B))
(v128.const i64x2 -1 -1))
;; hex vs dec
(assert_return (invoke "le_s" (v128.const i64x2 0xFFFFFFFFFFFFFFFF 0xFFFFFFFFFFFFFFFF)
(v128.const i64x2 18446744073709551615 18446744073709551615))
(v128.const i64x2 -1 -1))
(assert_return (invoke "le_s" (v128.const i64x2 0xFFFFFFFFFFFFFFFF 0xFFFFFFFFFFFFFFFF)
(v128.const i64x2 -1 -1))
(v128.const i64x2 -1 -1))
(assert_return (invoke "le_s" (v128.const i64x2 0x8080808080808080 0x8080808080808080)
(v128.const i64x2 9259542123273814144 9259542123273814144))
(v128.const i64x2 -1 -1))
(assert_return (invoke "le_s" (v128.const i64x2 0x8080808080808080 0x8080808080808080)
(v128.const i64x2 -9187201950435737472 -9187201950435737472))
(v128.const i64x2 -1 -1))
(assert_return (invoke "le_s" (v128.const i64x2 0x8382818000FFFEFD 0x7F020100FFFEFD80)
(v128.const i64x2 -8970465120996032771 9151878496576798080))
(v128.const i64x2 -1 -1))
;; dec vs dec
(assert_return (invoke "le_s" (v128.const i64x2 -1 -1)
(v128.const i64x2 -1 -1))
(v128.const i64x2 -1 -1))
(assert_return (invoke "le_s" (v128.const i64x2 0 0)
(v128.const i64x2 0 -1))
(v128.const i64x2 -1 0))
(assert_return (invoke "le_s" (v128.const i64x2 0 0)
(v128.const i64x2 0 0))
(v128.const i64x2 -1 -1))
(assert_return (invoke "le_s" (v128.const i64x2 18446744073709551615 18446744073709551615)
(v128.const i64x2 18446744073709551615 18446744073709551615))
(v128.const i64x2 -1 -1))
(assert_return (invoke "le_s" (v128.const i64x2 18446744073709551615 18446744073709551615)
(v128.const i64x2 -1 -1))
(v128.const i64x2 -1 -1))
(assert_return (invoke "le_s" (v128.const i64x2 18446744073709551615 0)
(v128.const i64x2 18446744073709551615 0))
(v128.const i64x2 -1 -1))
(assert_return (invoke "le_s" (v128.const i64x2 0 18446744073709551615)
(v128.const i64x2 0 18446744073709551615))
(v128.const i64x2 -1 -1))
(assert_return (invoke "le_s" (v128.const i64x2 -9223372036854775807 18446744073709551615)
(v128.const i64x2 9223372036854775809 -1))
(v128.const i64x2 -1 -1))
;; hex vs float
(assert_return (invoke "le_s" (v128.const i64x2 0xc060000000000000 0xc05fc00000000000)
(v128.const f64x2 -128.0 -127.0))
(v128.const i64x2 -1 -1))
(assert_return (invoke "le_s" (v128.const i64x2 0x3ff0000000000000 0x405fc00000000000)
(v128.const f64x2 1.0 127.0))
(v128.const i64x2 -1 -1))
;; gt_s
;; i64x2.gt_s (i64x2) (i64x2)
;; hex vs hex
(assert_return (invoke "gt_s" (v128.const i64x2 0xFFFFFFFFFFFFFFFF 0xFFFFFFFFFFFFFFFF)
(v128.const i64x2 0xFFFFFFFFFFFFFFFF 0xFFFFFFFFFFFFFFFF))
(v128.const i64x2 0 0))
(assert_return (invoke "gt_s" (v128.const i64x2 0x0000000000000000 0x0000000000000000)
(v128.const i64x2 0x0000000000000000 0x0000000000000000))
(v128.const i64x2 0 0))
(assert_return (invoke "gt_s" (v128.const i64x2 0xF0F0F0F0F0F0F0F0 0xF0F0F0F0F0F0F0F0)
(v128.const i64x2 0xF0F0F0F0F0F0F0F0 0xF0F0F0F0F0F0F0F0))
(v128.const i64x2 0 0))
(assert_return (invoke "gt_s" (v128.const i64x2 0x0F0F0F0F0F0F0F0F 0x0F0F0F0F0F0F0F0F)
(v128.const i64x2 0x0F0F0F0F0F0F0F0F 0x0F0F0F0F0F0F0F0F))
(v128.const i64x2 0 0))
(assert_return (invoke "gt_s" (v128.const i64x2 0xFFFFFFFFFFFFFFFF 0x0000000000000000)
(v128.const i64x2 0xFFFFFFFFFFFFFFFF 0x0000000000000000))
(v128.const i64x2 0 0))
(assert_return (invoke "gt_s" (v128.const i64x2 0x0000000000000000 0xFFFFFFFFFFFFFFFF)
(v128.const i64x2 0x0000000000000000 0xFFFFFFFFFFFFFFFF))
(v128.const i64x2 0 0))
(assert_return (invoke "gt_s" (v128.const i64x2 0x0302010011100904 0x1A0B0A12FFABAA1B)
(v128.const i64x2 0x0302010011100904 0x1A0B0A12FFABAA1B))
(v128.const i64x2 0 0))
;; hex vs dec
(assert_return (invoke "gt_s" (v128.const i64x2 0xFFFFFFFFFFFFFFFF 0xFFFFFFFFFFFFFFFF)
(v128.const i64x2 18446744073709551615 18446744073709551615))
(v128.const i64x2 0 0))
(assert_return (invoke "gt_s" (v128.const i64x2 0xFFFFFFFFFFFFFFFF 0xFFFFFFFFFFFFFFFF)
(v128.const i64x2 -1 -1))
(v128.const i64x2 0 0))
(assert_return (invoke "gt_s" (v128.const i64x2 0x8080808080808080 0x8080808080808080)
(v128.const i64x2 9259542123273814144 9259542123273814144))
(v128.const i64x2 0 0))
(assert_return (invoke "gt_s" (v128.const i64x2 0x8080808080808080 0x8080808080808080)
(v128.const i64x2 -9187201950435737472 -9187201950435737472))
(v128.const i64x2 0 0))
(assert_return (invoke "gt_s" (v128.const i64x2 0x8382818000FFFEFD 0x7F020100FFFEFD80)
(v128.const i64x2 -8970465120996032771 9151878496576798080))
(v128.const i64x2 0 0))
;; dec vs dec
(assert_return (invoke "gt_s" (v128.const i64x2 -1 -1)
(v128.const i64x2 -1 -1))
(v128.const i64x2 0 0))
(assert_return (invoke "gt_s" (v128.const i64x2 0 0)
(v128.const i64x2 0 0))
(v128.const i64x2 0 0))
(assert_return (invoke "gt_s" (v128.const i64x2 18446744073709551615 18446744073709551615)
(v128.const i64x2 18446744073709551615 18446744073709551615))
(v128.const i64x2 0 0))
(assert_return (invoke "gt_s" (v128.const i64x2 18446744073709551615 18446744073709551615)
(v128.const i64x2 -1 -1))
(v128.const i64x2 0 0))
(assert_return (invoke "gt_s" (v128.const i64x2 18446744073709551615 0)
(v128.const i64x2 18446744073709551615 0))
(v128.const i64x2 0 0))
(assert_return (invoke "gt_s" (v128.const i64x2 0 18446744073709551615)
(v128.const i64x2 0 18446744073709551615))
(v128.const i64x2 0 0))
(assert_return (invoke "gt_s" (v128.const i64x2 -9223372036854775807 18446744073709551615)
(v128.const i64x2 9223372036854775809 -1))
(v128.const i64x2 0 0))
;; hex vs float
(assert_return (invoke "gt_s" (v128.const i64x2 0xc060000000000000 0xc05fc00000000000)
(v128.const f64x2 -128.0 -127.0))
(v128.const i64x2 0 0))
(assert_return (invoke "gt_s" (v128.const i64x2 0x3ff0000000000000 0x405fc00000000000)
(v128.const f64x2 1.0 127.0))
(v128.const i64x2 0 0))
;; ge_s
;; i64x2.ge_s (i64x2) (i64x2)
;; hex vs hex
(assert_return (invoke "ge_s" (v128.const i64x2 0xFFFFFFFFFFFFFFFF 0xFFFFFFFFFFFFFFFF)
(v128.const i64x2 0xFFFFFFFFFFFFFFFF 0xFFFFFFFFFFFFFFFF))
(v128.const i64x2 -1 -1))
(assert_return (invoke "ge_s" (v128.const i64x2 0x0000000000000000 0x0000000000000000)
(v128.const i64x2 0x0000000000000000 0x0000000000000000))
(v128.const i64x2 -1 -1))
(assert_return (invoke "ge_s" (v128.const i64x2 0xF0F0F0F0F0F0F0F0 0xF0F0F0F0F0F0F0F0)
(v128.const i64x2 0xF0F0F0F0F0F0F0F0 0xF0F0F0F0F0F0F0F0))
(v128.const i64x2 -1 -1))
(assert_return (invoke "ge_s" (v128.const i64x2 0x0F0F0F0F0F0F0F0F 0x0F0F0F0F0F0F0F0F)
(v128.const i64x2 0x0F0F0F0F0F0F0F0F 0x0F0F0F0F0F0F0F0F))
(v128.const i64x2 -1 -1))
(assert_return (invoke "ge_s" (v128.const i64x2 0xFFFFFFFFFFFFFFFF 0x0000000000000000)
(v128.const i64x2 0xFFFFFFFFFFFFFFFF 0x0000000000000000))
(v128.const i64x2 -1 -1))
(assert_return (invoke "ge_s" (v128.const i64x2 0x0000000000000000 0xFFFFFFFFFFFFFFFF)
(v128.const i64x2 0x0000000000000000 0xFFFFFFFFFFFFFFFF))
(v128.const i64x2 -1 -1))
(assert_return (invoke "ge_s" (v128.const i64x2 0x0302010011100904 0x1A0B0A12FFABAA1B)
(v128.const i64x2 0x0302010011100904 0x1A0B0A12FFABAA1B))
(v128.const i64x2 -1 -1))
;; hex vs dec
(assert_return (invoke "ge_s" (v128.const i64x2 0xFFFFFFFFFFFFFFFF 0xFFFFFFFFFFFFFFFF)
(v128.const i64x2 18446744073709551615 18446744073709551615))
(v128.const i64x2 -1 -1))
(assert_return (invoke "ge_s" (v128.const i64x2 0xFFFFFFFFFFFFFFFF 0xFFFFFFFFFFFFFFFF)
(v128.const i64x2 -1 -1))
(v128.const i64x2 -1 -1))
(assert_return (invoke "ge_s" (v128.const i64x2 0x8080808080808080 0x8080808080808080)
(v128.const i64x2 9259542123273814144 9259542123273814144))
(v128.const i64x2 -1 -1))
(assert_return (invoke "ge_s" (v128.const i64x2 0x8080808080808080 0x8080808080808080)
(v128.const i64x2 -9187201950435737472 -9187201950435737472))
(v128.const i64x2 -1 -1))
(assert_return (invoke "ge_s" (v128.const i64x2 0x8382818000FFFEFD 0x7F020100FFFEFD80)
(v128.const i64x2 -8970465120996032771 9151878496576798080))
(v128.const i64x2 -1 -1))
;; dec vs dec
(assert_return (invoke "ge_s" (v128.const i64x2 -1 -1)
(v128.const i64x2 -1 -1))
(v128.const i64x2 -1 -1))
(assert_return (invoke "ge_s" (v128.const i64x2 -1 -1)
(v128.const i64x2 0 -1))
(v128.const i64x2 0 -1))
(assert_return (invoke "ge_s" (v128.const i64x2 0 0)
(v128.const i64x2 0 0))
(v128.const i64x2 -1 -1))
(assert_return (invoke "ge_s" (v128.const i64x2 18446744073709551615 18446744073709551615)
(v128.const i64x2 18446744073709551615 18446744073709551615))
(v128.const i64x2 -1 -1))
(assert_return (invoke "ge_s" (v128.const i64x2 18446744073709551615 18446744073709551615)
(v128.const i64x2 -1 -1))
(v128.const i64x2 -1 -1))
(assert_return (invoke "ge_s" (v128.const i64x2 18446744073709551615 0)
(v128.const i64x2 18446744073709551615 0))
(v128.const i64x2 -1 -1))
(assert_return (invoke "ge_s" (v128.const i64x2 0 18446744073709551615)
(v128.const i64x2 0 18446744073709551615))
(v128.const i64x2 -1 -1))
(assert_return (invoke "ge_s" (v128.const i64x2 -9223372036854775807 18446744073709551615)
(v128.const i64x2 9223372036854775809 -1))
(v128.const i64x2 -1 -1))
;; hex vs float
(assert_return (invoke "ge_s" (v128.const i64x2 0xc060000000000000 0xc05fc00000000000)
(v128.const f64x2 -128.0 -127.0))
(v128.const i64x2 -1 -1))
(assert_return (invoke "ge_s" (v128.const i64x2 0x3ff0000000000000 0x405fc00000000000)
(v128.const f64x2 1.0 127.0))
(v128.const i64x2 -1 -1))
;; Type check
(assert_invalid (module (func (result v128) (i64x2.eq (i32.const 0) (f32.const 0)))) "type mismatch")
(assert_invalid (module (func (result v128) (i64x2.ne (i32.const 0) (f32.const 0)))) "type mismatch")
(assert_invalid (module (func (result v128) (i64x2.ge_s (i32.const 0) (f32.const 0)))) "type mismatch")
(assert_invalid (module (func (result v128) (i64x2.gt_s (i32.const 0) (f32.const 0)))) "type mismatch")
(assert_invalid (module (func (result v128) (i64x2.le_s (i32.const 0) (f32.const 0)))) "type mismatch")
(assert_invalid (module (func (result v128) (i64x2.lt_s (i32.const 0) (f32.const 0)))) "type mismatch")
;; Test operation with empty argument
(assert_invalid
(module
(func $i64x2.eq-1st-arg-empty (result v128)
(i64x2.eq (v128.const i64x2 0 0))
)
)
"type mismatch"
)
(assert_invalid
(module
(func $i64x2.eq-arg-empty (result v128)
(i64x2.eq)
)
)
"type mismatch"
)
(assert_invalid
(module
(func $i64x2.ne-1st-arg-empty (result v128)
(i64x2.ne (v128.const i64x2 0 0))
)
)
"type mismatch"
)
(assert_invalid
(module
(func $i64x2.ne-arg-empty (result v128)
(i64x2.ne)
)
)
"type mismatch"
)