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

1921 lines
112 KiB
Plaintext
Vendored

;; Test all the i32x4 comparison operators on major boundary values and all special values.
(module
(func (export "eq") (param $x v128) (param $y v128) (result v128) (i32x4.eq (local.get $x) (local.get $y)))
(func (export "ne") (param $x v128) (param $y v128) (result v128) (i32x4.ne (local.get $x) (local.get $y)))
(func (export "lt_s") (param $x v128) (param $y v128) (result v128) (i32x4.lt_s (local.get $x) (local.get $y)))
(func (export "lt_u") (param $x v128) (param $y v128) (result v128) (i32x4.lt_u (local.get $x) (local.get $y)))
(func (export "le_s") (param $x v128) (param $y v128) (result v128) (i32x4.le_s (local.get $x) (local.get $y)))
(func (export "le_u") (param $x v128) (param $y v128) (result v128) (i32x4.le_u (local.get $x) (local.get $y)))
(func (export "gt_s") (param $x v128) (param $y v128) (result v128) (i32x4.gt_s (local.get $x) (local.get $y)))
(func (export "gt_u") (param $x v128) (param $y v128) (result v128) (i32x4.gt_u (local.get $x) (local.get $y)))
(func (export "ge_s") (param $x v128) (param $y v128) (result v128) (i32x4.ge_s (local.get $x) (local.get $y)))
(func (export "ge_u") (param $x v128) (param $y v128) (result v128) (i32x4.ge_u (local.get $x) (local.get $y)))
)
;; eq
;; i32x4.eq (i32x4) (i32x4)
;; hex vs hex
(assert_return (invoke "eq" (v128.const i32x4 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF)
(v128.const i32x4 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "eq" (v128.const i32x4 0x00000000 0x00000000 0x00000000 0x00000000)
(v128.const i32x4 0x00000000 0x00000000 0x00000000 0x00000000))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "eq" (v128.const i32x4 0xF0F0F0F0 0xF0F0F0F0 0xF0F0F0F0 0xF0F0F0F0)
(v128.const i32x4 0xF0F0F0F0 0xF0F0F0F0 0xF0F0F0F0 0xF0F0F0F0))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "eq" (v128.const i32x4 0x0F0F0F0F 0x0F0F0F0F 0x0F0F0F0F 0x0F0F0F0F)
(v128.const i32x4 0x0F0F0F0F 0x0F0F0F0F 0x0F0F0F0F 0x0F0F0F0F))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "eq" (v128.const i32x4 0xFFFFFFFF 0xFFFFFFFF 0x00000000 0x00000000)
(v128.const i32x4 0xFFFFFFFF 0xFFFFFFFF 0x00000000 0x00000000))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "eq" (v128.const i32x4 0x00000000 0x00000000 0xFFFFFFFF 0xFFFFFFFF)
(v128.const i32x4 0x00000000 0x00000000 0xFFFFFFFF 0xFFFFFFFF))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "eq" (v128.const i32x4 0x03020100 0x11100904 0x1A0B0A12 0xFFABAA1B)
(v128.const i32x4 0x03020100 0x11100904 0x1A0B0A12 0xFFABAA1B))
(v128.const i32x4 -1 -1 -1 -1))
;; hex vs dec
(assert_return (invoke "eq" (v128.const i32x4 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF)
(v128.const i32x4 4294967295 4294967295 4294967295 4294967295))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "eq" (v128.const i32x4 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF)
(v128.const i32x4 -1 -1 -1 -1))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "eq" (v128.const i32x4 0x80808080 0x80808080 0x80808080 0x80808080)
(v128.const i32x4 2155905152 2155905152 2155905152 2155905152))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "eq" (v128.const i32x4 0x80808080 0x80808080 0x80808080 0x80808080)
(v128.const i32x4 -2139062144 -2139062144 -2139062144 -2139062144))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "eq" (v128.const i32x4 0x83828180 0x00FFFEFD 0x7F020100 0xFFFEFD80)
(v128.const i32x4 2206368128 16776957 2130837760 4294901120))
(v128.const i32x4 -1 -1 -1 -1))
;; dec vs dec
(assert_return (invoke "eq" (v128.const i32x4 -1 -1 -1 -1)
(v128.const i32x4 -1 -1 -1 -1))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "eq" (v128.const i32x4 0 0 0 0)
(v128.const i32x4 0 0 0 0))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "eq" (v128.const i32x4 4294967295 4294967295 4294967295 4294967295)
(v128.const i32x4 4294967295 4294967295 4294967295 4294967295))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "eq" (v128.const i32x4 4294967295 4294967295 4294967295 4294967295)
(v128.const i32x4 -1 -1 -1 -1))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "eq" (v128.const i32x4 4294967295 4294967295 0 0)
(v128.const i32x4 4294967295 4294967295 0 0))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "eq" (v128.const i32x4 0 0 4294967295 4294967295)
(v128.const i32x4 0 0 4294967295 4294967295))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "eq" (v128.const i32x4 -2147483647 4294967295 0 -1)
(v128.const i32x4 2147483649 -1 0 -1))
(v128.const i32x4 -1 -1 -1 -1))
;; hex vs float
(assert_return (invoke "eq" (v128.const i32x4 0xc3000000 0xc2fe0000 0xbf800000 0x00000000)
(v128.const f32x4 -128.0 -127.0 -1.0 0.0))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "eq" (v128.const i32x4 0x3f800000 0x42fe0000 0x43000000 0x437f0000)
(v128.const f32x4 1.0 127.0 128.0 255.0))
(v128.const i32x4 -1 -1 -1 -1))
;; not equal
(assert_return (invoke "eq" (v128.const i32x4 0x0F0F0F0F 0x0F0F0F0F 0x0F0F0F0F 0x0F0F0F0F)
(v128.const i32x4 0xF0F0F0F0 0xF0F0F0F0 0xF0F0F0F0 0xF0F0F0F0))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "eq" (v128.const i32x4 0x00000000 0x00000000 0xFFFFFFFF 0xFFFFFFFF)
(v128.const i32x4 0xFFFFFFFF 0xFFFFFFFF 0x00000000 0x00000000))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "eq" (v128.const i32x4 0x02030001 0x10110409 0x0B1A120A 0xABFF1BAA)
(v128.const i32x4 0xAA1BFFAB 0x0A121A0B 0x09041110 0x01000302))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "eq" (v128.const i32x4 0x80018000 0x80038002 0x80058004 0x80078006)
(v128.const i32x4 2147975174 2147844100 2147713026 2147581952))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "eq" (v128.const i32x4 2147483648 2147483647 0 -1)
(v128.const i32x4 -2147483648 -2147483647 -1 0))
(v128.const i32x4 -1 0 0 0))
;; i32x4.eq (i32x4) (i8x16)
(assert_return (invoke "eq" (v128.const i32x4 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF)
(v128.const i8x16 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "eq" (v128.const i32x4 4294967295 4294967295 4294967295 4294967295)
(v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "eq" (v128.const i32x4 0 0 0 0)
(v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "eq" (v128.const i32x4 0x03020100 0x07060504 0x0B0A0908 0x0F0E0D0C)
(v128.const i8x16 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0A 0x0B 0x0C 0x0D 0x0E 0x0F))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "eq" (v128.const i32x4 2206368128 16776957 2130837760 4294901120)
(v128.const i8x16 -128 -127 -126 -125 -3 -2 -1 0 0 1 2 127 128 253 254 255))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "eq" (v128.const i32x4 -8323200 0 1 4294967295)
(v128.const i8x16 -128 -128 -128 -128 0 0 0 0 1 1 1 1 255 255 255 255))
(v128.const i32x4 0 -1 0 -1))
(assert_return (invoke "eq" (v128.const i32x4 0x55555555 0x55555555 0x55555555 0x55555555)
(v128.const i8x16 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA))
(v128.const i32x4 0 0 0 0))
;; i32x4.eq (i32x4) (i16x8)
(assert_return (invoke "eq" (v128.const i32x4 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF)
(v128.const i16x8 0xFFFF 0xFFFF 0xFFFF 0xFFFF 0xFFFF 0xFFFF 0xFFFF 0xFFFF))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "eq" (v128.const i32x4 4294967295 4294967295 4294967295 4294967295)
(v128.const i16x8 65535 65535 65535 65535 65535 65535 65535 65535))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "eq" (v128.const i32x4 0 0 0 0)
(v128.const i16x8 0 0 0 0 0 0 0 0))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "eq" (v128.const i32x4 0x03020100 0x07060504 0x0B0A0908 0x0F0E0D0C)
(v128.const i16x8 0x0100 0x0302 0x0504 0x0706 0x0908 0x0B0A 0x0D0C 0x0F0E))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "eq" (v128.const i32x4 2206368128 16776957 2130837760 4294901120)
(v128.const i16x8 33152 33666 65277 255 256 32514 64896 65534))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "eq" (v128.const i32x4 4294967295 0 1 65535)
(v128.const i16x8 65535 65535 0 0 1 0 65535 65535))
(v128.const i32x4 -1 -1 -1 0))
(assert_return (invoke "eq" (v128.const i32x4 0x55555555 0x55555555 0x55555555 0x55555555)
(v128.const i16x8 0xAAAA 0xAAAA 0xAAAA 0xAAAA 0xAAAA 0xAAAA 0xAAAA 0xAAAA))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "eq" (v128.const i32x4 0_123_456_789 0_123_456_789 0_123_456_789 0_123_456_789)
(v128.const i32x4 123456789 123456789 123456789 123456789))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "eq" (v128.const i32x4 0x0_1234_5678 0x0_1234_5678 0x0_1234_5678 0x0_1234_5678)
(v128.const i32x4 0x12345678 0x12345678 0x12345678 0x12345678))
(v128.const i32x4 -1 -1 -1 -1))
;; ne
;; i32x4.ne (i32x4) (i32x4)
;; hex vs hex
(assert_return (invoke "ne" (v128.const i32x4 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF)
(v128.const i32x4 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "ne" (v128.const i32x4 0x00000000 0x00000000 0x00000000 0x00000000)
(v128.const i32x4 0x00000000 0x00000000 0x00000000 0x00000000))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "ne" (v128.const i32x4 0xF0F0F0F0 0xF0F0F0F0 0xF0F0F0F0 0xF0F0F0F0)
(v128.const i32x4 0xF0F0F0F0 0xF0F0F0F0 0xF0F0F0F0 0xF0F0F0F0))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "ne" (v128.const i32x4 0x0F0F0F0F 0x0F0F0F0F 0x0F0F0F0F 0x0F0F0F0F)
(v128.const i32x4 0x0F0F0F0F 0x0F0F0F0F 0x0F0F0F0F 0x0F0F0F0F))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "ne" (v128.const i32x4 0xFFFFFFFF 0xFFFFFFFF 0x00000000 0x00000000)
(v128.const i32x4 0xFFFFFFFF 0xFFFFFFFF 0x00000000 0x00000000))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "ne" (v128.const i32x4 0x00000000 0x00000000 0xFFFFFFFF 0xFFFFFFFF)
(v128.const i32x4 0x00000000 0x00000000 0xFFFFFFFF 0xFFFFFFFF))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "ne" (v128.const i32x4 0x03020100 0x11100904 0x1A0B0A12 0xFFABAA1B)
(v128.const i32x4 0x03020100 0x11100904 0x1A0B0A12 0xFFABAA1B))
(v128.const i32x4 0 0 0 0))
;; hex vs dec
(assert_return (invoke "ne" (v128.const i32x4 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF)
(v128.const i32x4 4294967295 4294967295 4294967295 4294967295))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "ne" (v128.const i32x4 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF)
(v128.const i32x4 -1 -1 -1 -1))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "ne" (v128.const i32x4 0x80808080 0x80808080 0x80808080 0x80808080)
(v128.const i32x4 2155905152 2155905152 2155905152 2155905152))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "ne" (v128.const i32x4 0x80808080 0x80808080 0x80808080 0x80808080)
(v128.const i32x4 -2139062144 -2139062144 -2139062144 -2139062144))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "ne" (v128.const i32x4 0x83828180 0x00FFFEFD 0x7F020100 0xFFFEFD80)
(v128.const i32x4 2206368128 16776957 2130837760 4294901120))
(v128.const i32x4 0 0 0 0))
;; dec vs dec
(assert_return (invoke "ne" (v128.const i32x4 -1 -1 -1 -1)
(v128.const i32x4 -1 -1 -1 -1))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "ne" (v128.const i32x4 0 0 0 0)
(v128.const i32x4 0 0 0 0))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "ne" (v128.const i32x4 4294967295 4294967295 4294967295 4294967295)
(v128.const i32x4 4294967295 4294967295 4294967295 4294967295))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "ne" (v128.const i32x4 4294967295 4294967295 4294967295 4294967295)
(v128.const i32x4 -1 -1 -1 -1))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "ne" (v128.const i32x4 4294967295 4294967295 0 0)
(v128.const i32x4 4294967295 4294967295 0 0))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "ne" (v128.const i32x4 0 0 4294967295 4294967295)
(v128.const i32x4 0 0 4294967295 4294967295))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "ne" (v128.const i32x4 -2147483647 4294967295 0 -1)
(v128.const i32x4 2147483649 -1 0 -1))
(v128.const i32x4 0 0 0 0))
;; hex vs float
(assert_return (invoke "ne" (v128.const i32x4 0xc3000000 0xc2fe0000 0xbf800000 0x00000000)
(v128.const f32x4 -128.0 -127.0 -1.0 0.0))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "ne" (v128.const i32x4 0x3f800000 0x42fe0000 0x43000000 0x437f0000)
(v128.const f32x4 1.0 127.0 128.0 255.0))
(v128.const i32x4 0 0 0 0))
;; not equal
(assert_return (invoke "ne" (v128.const i32x4 0x0F0F0F0F 0x0F0F0F0F 0x0F0F0F0F 0x0F0F0F0F)
(v128.const i32x4 0xF0F0F0F0 0xF0F0F0F0 0xF0F0F0F0 0xF0F0F0F0))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "ne" (v128.const i32x4 0x00000000 0x00000000 0xFFFFFFFF 0xFFFFFFFF)
(v128.const i32x4 0xFFFFFFFF 0xFFFFFFFF 0x00000000 0x00000000))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "ne" (v128.const i32x4 0x02030001 0x10110409 0x0B1A120A 0xABFF1BAA)
(v128.const i32x4 0xAA1BFFAB 0x0A121A0B 0x09041110 0x01000302))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "ne" (v128.const i32x4 0x80018000 0x80038002 0x80058004 0x80078006)
(v128.const i32x4 2147975174 2147844100 2147713026 2147581952))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "ne" (v128.const i32x4 2147483648 2147483647 0 -1)
(v128.const i32x4 -2147483648 -2147483647 -1 0))
(v128.const i32x4 0 -1 -1 -1))
;; i32x4.ne (i32x4) (i8x16)
(assert_return (invoke "ne" (v128.const i32x4 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF)
(v128.const i8x16 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "ne" (v128.const i32x4 4294967295 4294967295 4294967295 4294967295)
(v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "ne" (v128.const i32x4 0 0 0 0)
(v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "ne" (v128.const i32x4 0x03020100 0x07060504 0x0B0A0908 0x0F0E0D0C)
(v128.const i8x16 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0A 0x0B 0x0C 0x0D 0x0E 0x0F))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "ne" (v128.const i32x4 2206368128 16776957 2130837760 4294901120)
(v128.const i8x16 -128 -127 -126 -125 -3 -2 -1 0 0 1 2 127 128 253 254 255))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "ne" (v128.const i32x4 -8323200 0 1 4294967295)
(v128.const i8x16 -128 -128 -128 -128 0 0 0 0 1 1 1 1 255 255 255 255))
(v128.const i32x4 -1 0 -1 0))
(assert_return (invoke "ne" (v128.const i32x4 0x55555555 0x55555555 0x55555555 0x55555555)
(v128.const i8x16 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA))
(v128.const i32x4 -1 -1 -1 -1))
;; i32x4.ne (i32x4) (i16x8)
(assert_return (invoke "ne" (v128.const i32x4 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF)
(v128.const i16x8 0xFFFF 0xFFFF 0xFFFF 0xFFFF 0xFFFF 0xFFFF 0xFFFF 0xFFFF))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "ne" (v128.const i32x4 4294967295 4294967295 4294967295 4294967295)
(v128.const i16x8 65535 65535 65535 65535 65535 65535 65535 65535))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "ne" (v128.const i32x4 0 0 0 0)
(v128.const i16x8 0 0 0 0 0 0 0 0))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "ne" (v128.const i32x4 0x03020100 0x07060504 0x0B0A0908 0x0F0E0D0C)
(v128.const i16x8 0x0100 0x0302 0x0504 0x0706 0x0908 0x0B0A 0x0D0C 0x0F0E))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "ne" (v128.const i32x4 2206368128 16776957 2130837760 4294901120)
(v128.const i16x8 33152 33666 65277 255 256 32514 64896 65534))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "ne" (v128.const i32x4 -128 0 1 255)
(v128.const i16x8 -128 -128 0 0 1 1 255 255))
(v128.const i32x4 -1 0 -1 -1))
(assert_return (invoke "ne" (v128.const i32x4 0xAAAAAAAA 0xAAAAAAAA 0xAAAAAAAA 0xAAAAAAAA)
(v128.const i16x8 0x5555 0x5555 0x5555 0x5555 0x5555 0x5555 0x5555 0x5555))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "ne" (v128.const i32x4 0_123_456_789 0_123_456_789 0_123_456_789 0_123_456_789)
(v128.const i32x4 123456789 123456789 123456789 123456789))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "ne" (v128.const i32x4 0x0_1234_5678 0x0_1234_5678 0x0_1234_5678 0x0_1234_5678)
(v128.const i32x4 0x12345678 0x12345678 0x12345678 0x12345678))
(v128.const i32x4 0 0 0 0))
;; lt_s
;; i32x4.lt_s (i32x4) (i32x4)
;; hex vs hex
(assert_return (invoke "lt_s" (v128.const i32x4 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF)
(v128.const i32x4 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "lt_s" (v128.const i32x4 0x00000000 0x00000000 0x00000000 0x00000000)
(v128.const i32x4 0x00000000 0x00000000 0x00000000 0x00000000))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "lt_s" (v128.const i32x4 0xF0F0F0F0 0xF0F0F0F0 0xF0F0F0F0 0xF0F0F0F0)
(v128.const i32x4 0xF0F0F0F0 0xF0F0F0F0 0xF0F0F0F0 0xF0F0F0F0))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "lt_s" (v128.const i32x4 0x0F0F0F0F 0x0F0F0F0F 0x0F0F0F0F 0x0F0F0F0F)
(v128.const i32x4 0x0F0F0F0F 0x0F0F0F0F 0x0F0F0F0F 0x0F0F0F0F))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "lt_s" (v128.const i32x4 0xFFFFFFFF 0xFFFFFFFF 0x00000000 0x00000000)
(v128.const i32x4 0xFFFFFFFF 0xFFFFFFFF 0x00000000 0x00000000))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "lt_s" (v128.const i32x4 0x00000000 0x00000000 0xFFFFFFFF 0xFFFFFFFF)
(v128.const i32x4 0x00000000 0x00000000 0xFFFFFFFF 0xFFFFFFFF))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "lt_s" (v128.const i32x4 0x03020100 0x11100904 0x1A0B0A12 0xFFABAA1B)
(v128.const i32x4 0x03020100 0x11100904 0x1A0B0A12 0xFFABAA1B))
(v128.const i32x4 0 0 0 0))
;; hex vs dec
(assert_return (invoke "lt_s" (v128.const i32x4 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF)
(v128.const i32x4 4294967295 4294967295 4294967295 4294967295))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "lt_s" (v128.const i32x4 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF)
(v128.const i32x4 -1 -1 -1 -1))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "lt_s" (v128.const i32x4 0x80808080 0x80808080 0x80808080 0x80808080)
(v128.const i32x4 2155905152 2155905152 2155905152 2155905152))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "lt_s" (v128.const i32x4 0x80808080 0x80808080 0x80808080 0x80808080)
(v128.const i32x4 -2139062144 -2139062144 -2139062144 -2139062144))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "lt_s" (v128.const i32x4 0x83828180 0x00FFFEFD 0x7F020100 0xFFFEFD80)
(v128.const i32x4 2206368128 16776957 2130837760 4294901120))
(v128.const i32x4 0 0 0 0))
;; dec vs dec
(assert_return (invoke "lt_s" (v128.const i32x4 -1 -1 -1 -1)
(v128.const i32x4 -1 -1 -1 -1))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "lt_s" (v128.const i32x4 0 0 0 0)
(v128.const i32x4 0 0 0 0))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "lt_s" (v128.const i32x4 4294967295 4294967295 4294967295 4294967295)
(v128.const i32x4 4294967295 4294967295 4294967295 4294967295))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "lt_s" (v128.const i32x4 4294967295 4294967295 4294967295 4294967295)
(v128.const i32x4 -1 -1 -1 -1))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "lt_s" (v128.const i32x4 4294967295 4294967295 0 0)
(v128.const i32x4 4294967295 4294967295 0 0))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "lt_s" (v128.const i32x4 0 0 4294967295 4294967295)
(v128.const i32x4 0 0 4294967295 4294967295))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "lt_s" (v128.const i32x4 -2147483647 4294967295 0 -1)
(v128.const i32x4 2147483649 -1 0 -1))
(v128.const i32x4 0 0 0 0))
;; hex vs float
(assert_return (invoke "lt_s" (v128.const i32x4 0xc3000000 0xc2fe0000 0xbf800000 0x00000000)
(v128.const f32x4 -128.0 -127.0 -1.0 0.0))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "lt_s" (v128.const i32x4 0x3f800000 0x42fe0000 0x43000000 0x437f0000)
(v128.const f32x4 1.0 127.0 128.0 255.0))
(v128.const i32x4 0 0 0 0))
;; not equal
(assert_return (invoke "lt_s" (v128.const i32x4 0x0F0F0F0F 0x0F0F0F0F 0x0F0F0F0F 0x0F0F0F0F)
(v128.const i32x4 0xF0F0F0F0 0xF0F0F0F0 0xF0F0F0F0 0xF0F0F0F0))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "lt_s" (v128.const i32x4 0x00000000 0x00000000 0xFFFFFFFF 0xFFFFFFFF)
(v128.const i32x4 0xFFFFFFFF 0xFFFFFFFF 0x00000000 0x00000000))
(v128.const i32x4 0 0 -1 -1))
(assert_return (invoke "lt_s" (v128.const i32x4 0x02030001 0x10110409 0x0B1A120A 0xABFF1BAA)
(v128.const i32x4 0xAA1BFFAB 0x0A121A0B 0x09041110 0x01000302))
(v128.const i32x4 0 0 0 -1))
(assert_return (invoke "lt_s" (v128.const i32x4 0x80018000 0x80038002 0x80058004 0x80078006)
(v128.const i32x4 2147975174 2147844100 2147713026 2147581952))
(v128.const i32x4 -1 -1 0 0))
(assert_return (invoke "lt_s" (v128.const i32x4 2147483648 2147483647 0 -1)
(v128.const i32x4 -2147483648 -2147483647 -1 0))
(v128.const i32x4 0 0 0 -1))
;; i32x4.lt_s (i32x4) (i8x16)
(assert_return (invoke "lt_s" (v128.const i32x4 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF)
(v128.const i8x16 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "lt_s" (v128.const i32x4 4294967295 4294967295 4294967295 4294967295)
(v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "lt_s" (v128.const i32x4 0 0 0 0)
(v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "lt_s" (v128.const i32x4 0x03020100 0x07060504 0x0B0A0908 0x0F0E0D0C)
(v128.const i8x16 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0A 0x0B 0x0C 0x0D 0x0E 0x0F))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "lt_s" (v128.const i32x4 2206368128 16776957 2130837760 4294901120)
(v128.const i8x16 -128 -127 -126 -125 -3 -2 -1 0 0 1 2 127 128 253 254 255))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "lt_s" (v128.const i32x4 -8323200 0 1 4294967295)
(v128.const i8x16 -128 -128 -128 -128 0 0 0 0 1 1 1 1 255 255 255 255))
(v128.const i32x4 0 0 -1 0))
(assert_return (invoke "lt_s" (v128.const i32x4 0x55555555 0x55555555 0x55555555 0x55555555)
(v128.const i8x16 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA))
(v128.const i32x4 0 0 0 0))
;; i32x4.lt_s (i32x4) (i16x8)
(assert_return (invoke "lt_s" (v128.const i32x4 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF)
(v128.const i16x8 0xFFFF 0xFFFF 0xFFFF 0xFFFF 0xFFFF 0xFFFF 0xFFFF 0xFFFF))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "lt_s" (v128.const i32x4 4294967295 4294967295 4294967295 4294967295)
(v128.const i16x8 65535 65535 65535 65535 65535 65535 65535 65535))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "lt_s" (v128.const i32x4 0 0 0 0)
(v128.const i16x8 0 0 0 0 0 0 0 0))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "lt_s" (v128.const i32x4 0x03020100 0x07060504 0x0B0A0908 0x0F0E0D0C)
(v128.const i16x8 0x0100 0x0302 0x0504 0x0706 0x0908 0x0B0A 0x0D0C 0x0F0E))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "lt_s" (v128.const i32x4 2206368128 16776957 2130837760 4294901120)
(v128.const i16x8 33152 33666 65277 255 256 32514 64896 65534))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "lt_s" (v128.const i32x4 -128 0 1 255)
(v128.const i16x8 -128 -128 0 0 1 1 255 255))
(v128.const i32x4 0 0 -1 -1))
(assert_return (invoke "lt_s" (v128.const i32x4 0xAAAAAAAA 0xAAAAAAAA 0xAAAAAAAA 0xAAAAAAAA)
(v128.const i16x8 0x5555 0x5555 0x5555 0x5555 0x5555 0x5555 0x5555 0x5555))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "lt_s" (v128.const i32x4 0_123_456_789 0_123_456_789 0_123_456_789 0_123_456_789)
(v128.const i32x4 123456789 123456789 123456789 123456789))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "lt_s" (v128.const i32x4 0x0_90AB_cdef 0x0_90AB_cdef 0x0_90AB_cdef 0x0_90AB_cdef)
(v128.const i32x4 -0x6f543210 -0x6f543210 -0x6f543210 -0x6f543210))
(v128.const i32x4 -1 -1 -1 -1))
;; lt_u
;; i32x4.lt_u (i32x4) (i32x4)
;; hex vs hex
(assert_return (invoke "lt_u" (v128.const i32x4 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF)
(v128.const i32x4 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "lt_u" (v128.const i32x4 0x00000000 0x00000000 0x00000000 0x00000000)
(v128.const i32x4 0x00000000 0x00000000 0x00000000 0x00000000))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "lt_u" (v128.const i32x4 0xF0F0F0F0 0xF0F0F0F0 0xF0F0F0F0 0xF0F0F0F0)
(v128.const i32x4 0xF0F0F0F0 0xF0F0F0F0 0xF0F0F0F0 0xF0F0F0F0))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "lt_u" (v128.const i32x4 0x0F0F0F0F 0x0F0F0F0F 0x0F0F0F0F 0x0F0F0F0F)
(v128.const i32x4 0x0F0F0F0F 0x0F0F0F0F 0x0F0F0F0F 0x0F0F0F0F))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "lt_u" (v128.const i32x4 0xFFFFFFFF 0xFFFFFFFF 0x00000000 0x00000000)
(v128.const i32x4 0xFFFFFFFF 0xFFFFFFFF 0x00000000 0x00000000))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "lt_u" (v128.const i32x4 0x00000000 0x00000000 0xFFFFFFFF 0xFFFFFFFF)
(v128.const i32x4 0x00000000 0x00000000 0xFFFFFFFF 0xFFFFFFFF))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "lt_u" (v128.const i32x4 0x03020100 0x11100904 0x1A0B0A12 0xFFABAA1B)
(v128.const i32x4 0x03020100 0x11100904 0x1A0B0A12 0xFFABAA1B))
(v128.const i32x4 0 0 0 0))
;; hex vs dec
(assert_return (invoke "lt_u" (v128.const i32x4 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF)
(v128.const i32x4 4294967295 4294967295 4294967295 4294967295))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "lt_u" (v128.const i32x4 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF)
(v128.const i32x4 -1 -1 -1 -1))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "lt_u" (v128.const i32x4 0x80808080 0x80808080 0x80808080 0x80808080)
(v128.const i32x4 2155905152 2155905152 2155905152 2155905152))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "lt_u" (v128.const i32x4 0x80808080 0x80808080 0x80808080 0x80808080)
(v128.const i32x4 -2139062144 -2139062144 -2139062144 -2139062144))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "lt_u" (v128.const i32x4 0x83828180 0x00FFFEFD 0x7F020100 0xFFFEFD80)
(v128.const i32x4 2206368128 16776957 2130837760 4294901120))
(v128.const i32x4 0 0 0 0))
;; dec vs dec
(assert_return (invoke "lt_u" (v128.const i32x4 -1 -1 -1 -1)
(v128.const i32x4 -1 -1 -1 -1))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "lt_u" (v128.const i32x4 0 0 0 0)
(v128.const i32x4 0 0 0 0))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "lt_u" (v128.const i32x4 4294967295 4294967295 4294967295 4294967295)
(v128.const i32x4 4294967295 4294967295 4294967295 4294967295))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "lt_u" (v128.const i32x4 4294967295 4294967295 4294967295 4294967295)
(v128.const i32x4 -1 -1 -1 -1))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "lt_u" (v128.const i32x4 4294967295 4294967295 0 0)
(v128.const i32x4 4294967295 4294967295 0 0))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "lt_u" (v128.const i32x4 0 0 4294967295 4294967295)
(v128.const i32x4 0 0 4294967295 4294967295))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "lt_u" (v128.const i32x4 -2147483647 4294967295 0 -1)
(v128.const i32x4 2147483649 -1 0 -1))
(v128.const i32x4 0 0 0 0))
;; hex vs float
(assert_return (invoke "lt_u" (v128.const i32x4 0xc3000000 0xc2fe0000 0xbf800000 0x00000000)
(v128.const f32x4 -128.0 -127.0 -1.0 0.0))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "lt_u" (v128.const i32x4 0x3f800000 0x42fe0000 0x43000000 0x437f0000)
(v128.const f32x4 1.0 127.0 128.0 255.0))
(v128.const i32x4 0 0 0 0))
;; not equal
(assert_return (invoke "lt_u" (v128.const i32x4 0x0F0F0F0F 0x0F0F0F0F 0x0F0F0F0F 0x0F0F0F0F)
(v128.const i32x4 0xF0F0F0F0 0xF0F0F0F0 0xF0F0F0F0 0xF0F0F0F0))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "lt_u" (v128.const i32x4 0x00000000 0x00000000 0xFFFFFFFF 0xFFFFFFFF)
(v128.const i32x4 0xFFFFFFFF 0xFFFFFFFF 0x00000000 0x00000000))
(v128.const i32x4 -1 -1 0 0))
(assert_return (invoke "lt_u" (v128.const i32x4 0x02030001 0x10110409 0x0B1A120A 0xABFF1BAA)
(v128.const i32x4 0xAA1BFFAB 0x0A121A0B 0x09041110 0x01000302))
(v128.const i32x4 -1 0 0 0))
(assert_return (invoke "lt_u" (v128.const i32x4 0x80018000 0x80038002 0x80058004 0x80078006)
(v128.const i32x4 2147975174 2147844100 2147713026 2147581952))
(v128.const i32x4 -1 -1 0 0))
(assert_return (invoke "lt_u" (v128.const i32x4 2147483648 2147483647 0 -1)
(v128.const i32x4 -2147483648 -2147483647 -1 0))
(v128.const i32x4 0 -1 -1 0))
;; i32x4.lt_u (i32x4) (i8x16)
(assert_return (invoke "lt_u" (v128.const i32x4 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF)
(v128.const i8x16 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "lt_u" (v128.const i32x4 4294967295 4294967295 4294967295 4294967295)
(v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "lt_u" (v128.const i32x4 0 0 0 0)
(v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "lt_u" (v128.const i32x4 0x03020100 0x07060504 0x0B0A0908 0x0F0E0D0C)
(v128.const i8x16 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0A 0x0B 0x0C 0x0D 0x0E 0x0F))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "lt_u" (v128.const i32x4 2206368128 16776957 2130837760 4294901120)
(v128.const i8x16 -128 -127 -126 -125 -3 -2 -1 0 0 1 2 127 128 253 254 255))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "lt_u" (v128.const i32x4 -8323200 0 1 4294967295)
(v128.const i8x16 -128 -128 -128 -128 0 0 0 0 1 1 1 1 255 255 255 255))
(v128.const i32x4 0 0 -1 0))
(assert_return (invoke "lt_u" (v128.const i32x4 0x55555555 0x55555555 0x55555555 0x55555555)
(v128.const i8x16 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA))
(v128.const i32x4 -1 -1 -1 -1))
;; i32x4.lt_u (i32x4) (i16x8)
(assert_return (invoke "lt_u" (v128.const i32x4 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF)
(v128.const i16x8 0xFFFF 0xFFFF 0xFFFF 0xFFFF 0xFFFF 0xFFFF 0xFFFF 0xFFFF))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "lt_u" (v128.const i32x4 4294967295 4294967295 4294967295 4294967295)
(v128.const i16x8 65535 65535 65535 65535 65535 65535 65535 65535))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "lt_u" (v128.const i32x4 0 0 0 0)
(v128.const i16x8 0 0 0 0 0 0 0 0))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "lt_u" (v128.const i32x4 0x03020100 0x07060504 0x0B0A0908 0x0F0E0D0C)
(v128.const i16x8 0x0100 0x0302 0x0504 0x0706 0x0908 0x0B0A 0x0D0C 0x0F0E))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "lt_u" (v128.const i32x4 2206368128 16776957 2130837760 4294901120)
(v128.const i16x8 33152 33666 65277 255 256 32514 64896 65534))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "lt_u" (v128.const i32x4 -128 0 1 255)
(v128.const i16x8 -128 -128 0 0 1 1 255 255))
(v128.const i32x4 0 0 -1 -1))
(assert_return (invoke "lt_u" (v128.const i32x4 0xAAAAAAAA 0xAAAAAAAA 0xAAAAAAAA 0xAAAAAAAA)
(v128.const i16x8 0x5555 0x5555 0x5555 0x5555 0x5555 0x5555 0x5555 0x5555))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "lt_u" (v128.const i32x4 0_123_456_789 0_123_456_789 0_123_456_789 0_123_456_789)
(v128.const i32x4 123456789 123456789 123456789 123456789))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "lt_u" (v128.const i32x4 0x0_90AB_cdef 0x0_90AB_cdef 0x0_90AB_cdef 0x0_90AB_cdef)
(v128.const i32x4 -0x6f543210 -0x6f543210 -0x6f543210 -0x6f543210))
(v128.const i32x4 -1 -1 -1 -1))
;; le_s
;; i32x4.le_s (i32x4) (i32x4)
;; hex vs hex
(assert_return (invoke "le_s" (v128.const i32x4 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF)
(v128.const i32x4 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "le_s" (v128.const i32x4 0x00000000 0x00000000 0x00000000 0x00000000)
(v128.const i32x4 0x00000000 0x00000000 0x00000000 0x00000000))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "le_s" (v128.const i32x4 0xF0F0F0F0 0xF0F0F0F0 0xF0F0F0F0 0xF0F0F0F0)
(v128.const i32x4 0xF0F0F0F0 0xF0F0F0F0 0xF0F0F0F0 0xF0F0F0F0))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "le_s" (v128.const i32x4 0x0F0F0F0F 0x0F0F0F0F 0x0F0F0F0F 0x0F0F0F0F)
(v128.const i32x4 0x0F0F0F0F 0x0F0F0F0F 0x0F0F0F0F 0x0F0F0F0F))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "le_s" (v128.const i32x4 0xFFFFFFFF 0xFFFFFFFF 0x00000000 0x00000000)
(v128.const i32x4 0xFFFFFFFF 0xFFFFFFFF 0x00000000 0x00000000))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "le_s" (v128.const i32x4 0x00000000 0x00000000 0xFFFFFFFF 0xFFFFFFFF)
(v128.const i32x4 0x00000000 0x00000000 0xFFFFFFFF 0xFFFFFFFF))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "le_s" (v128.const i32x4 0x03020100 0x11100904 0x1A0B0A12 0xFFABAA1B)
(v128.const i32x4 0x03020100 0x11100904 0x1A0B0A12 0xFFABAA1B))
(v128.const i32x4 -1 -1 -1 -1))
;; hex vs dec
(assert_return (invoke "le_s" (v128.const i32x4 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF)
(v128.const i32x4 4294967295 4294967295 4294967295 4294967295))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "le_s" (v128.const i32x4 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF)
(v128.const i32x4 -1 -1 -1 -1))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "le_s" (v128.const i32x4 0x80808080 0x80808080 0x80808080 0x80808080)
(v128.const i32x4 2155905152 2155905152 2155905152 2155905152))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "le_s" (v128.const i32x4 0x80808080 0x80808080 0x80808080 0x80808080)
(v128.const i32x4 -2139062144 -2139062144 -2139062144 -2139062144))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "le_s" (v128.const i32x4 0x83828180 0x00FFFEFD 0x7F020100 0xFFFEFD80)
(v128.const i32x4 2206368128 16776957 2130837760 4294901120))
(v128.const i32x4 -1 -1 -1 -1))
;; dec vs dec
(assert_return (invoke "le_s" (v128.const i32x4 -1 -1 -1 -1)
(v128.const i32x4 -1 -1 -1 -1))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "le_s" (v128.const i32x4 0 0 0 0)
(v128.const i32x4 0 0 0 0))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "le_s" (v128.const i32x4 4294967295 4294967295 4294967295 4294967295)
(v128.const i32x4 4294967295 4294967295 4294967295 4294967295))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "le_s" (v128.const i32x4 4294967295 4294967295 4294967295 4294967295)
(v128.const i32x4 -1 -1 -1 -1))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "le_s" (v128.const i32x4 4294967295 4294967295 0 0)
(v128.const i32x4 4294967295 4294967295 0 0))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "le_s" (v128.const i32x4 0 0 4294967295 4294967295)
(v128.const i32x4 0 0 4294967295 4294967295))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "le_s" (v128.const i32x4 -2147483647 4294967295 0 -1)
(v128.const i32x4 2147483649 -1 0 -1))
(v128.const i32x4 -1 -1 -1 -1))
;; hex vs float
(assert_return (invoke "le_s" (v128.const i32x4 0xc3000000 0xc2fe0000 0xbf800000 0x00000000)
(v128.const f32x4 -128.0 -127.0 -1.0 0.0))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "le_s" (v128.const i32x4 0x3f800000 0x42fe0000 0x43000000 0x437f0000)
(v128.const f32x4 1.0 127.0 128.0 255.0))
(v128.const i32x4 -1 -1 -1 -1))
;; not equal
(assert_return (invoke "le_s" (v128.const i32x4 0x0F0F0F0F 0x0F0F0F0F 0x0F0F0F0F 0x0F0F0F0F)
(v128.const i32x4 0xF0F0F0F0 0xF0F0F0F0 0xF0F0F0F0 0xF0F0F0F0))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "le_s" (v128.const i32x4 0x00000000 0x00000000 0xFFFFFFFF 0xFFFFFFFF)
(v128.const i32x4 0xFFFFFFFF 0xFFFFFFFF 0x00000000 0x00000000))
(v128.const i32x4 0 0 -1 -1))
(assert_return (invoke "le_s" (v128.const i32x4 0x02030001 0x10110409 0x0B1A120A 0xABFF1BAA)
(v128.const i32x4 0xAA1BFFAB 0x0A121A0B 0x09041110 0x01000302))
(v128.const i32x4 0 0 0 -1))
(assert_return (invoke "le_s" (v128.const i32x4 0x80018000 0x80038002 0x80058004 0x80078006)
(v128.const i32x4 2147975174 2147844100 2147713026 2147581952))
(v128.const i32x4 -1 -1 0 0))
(assert_return (invoke "le_s" (v128.const i32x4 2147483648 2147483647 0 -1)
(v128.const i32x4 -2147483648 -2147483647 -1 0))
(v128.const i32x4 -1 0 0 -1))
;; i32x4.le_s (i32x4)(i8x16)
(assert_return (invoke "le_s" (v128.const i32x4 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF)
(v128.const i8x16 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "le_s" (v128.const i32x4 4294967295 4294967295 4294967295 4294967295)
(v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "le_s" (v128.const i32x4 0 0 0 0)
(v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "le_s" (v128.const i32x4 0x03020100 0x07060504 0x0B0A0908 0x0F0E0D0C)
(v128.const i8x16 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0A 0x0B 0x0C 0x0D 0x0E 0x0F))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "le_s" (v128.const i32x4 2206368128 16776957 2130837760 4294901120)
(v128.const i8x16 -128 -127 -126 -125 -3 -2 -1 0 0 1 2 127 128 253 254 255))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "le_s" (v128.const i32x4 -8323200 0 1 4294967295)
(v128.const i8x16 -128 -128 -128 -128 0 0 0 0 1 1 1 1 255 255 255 255))
(v128.const i32x4 0 -1 -1 -1))
(assert_return (invoke "le_s" (v128.const i32x4 0x55555555 0x55555555 0x55555555 0x55555555)
(v128.const i8x16 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA))
(v128.const i32x4 0 0 0 0))
;; i32x4.le_s (i32x4) (i16x8)
(assert_return (invoke "le_s" (v128.const i32x4 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF)
(v128.const i16x8 0xFFFF 0xFFFF 0xFFFF 0xFFFF 0xFFFF 0xFFFF 0xFFFF 0xFFFF))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "le_s" (v128.const i32x4 4294967295 4294967295 4294967295 4294967295)
(v128.const i16x8 65535 65535 65535 65535 65535 65535 65535 65535))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "le_s" (v128.const i32x4 0 0 0 0)
(v128.const i16x8 0 0 0 0 0 0 0 0))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "le_s" (v128.const i32x4 0x03020100 0x07060504 0x0B0A0908 0x0F0E0D0C)
(v128.const i16x8 0x0100 0x0302 0x0504 0x0706 0x0908 0x0B0A 0x0D0C 0x0F0E))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "le_s" (v128.const i32x4 2206368128 16776957 2130837760 4294901120)
(v128.const i16x8 33152 33666 65277 255 256 32514 64896 65534))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "le_s" (v128.const i32x4 -128 0 1 255)
(v128.const i16x8 -128 -128 0 0 1 1 255 255))
(v128.const i32x4 0 -1 -1 -1))
(assert_return (invoke "le_s" (v128.const i32x4 0xAAAAAAAA 0xAAAAAAAA 0xAAAAAAAA 0xAAAAAAAA)
(v128.const i16x8 0x5555 0x5555 0x5555 0x5555 0x5555 0x5555 0x5555 0x5555))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "le_s" (v128.const i32x4 0_123_456_789 0_123_456_789 0_123_456_789 0_123_456_789)
(v128.const i32x4 123456789 123456789 123456789 123456789))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "le_s" (v128.const i32x4 0x0_1234_5678 0x0_1234_5678 0x0_1234_5678 0x0_1234_5678)
(v128.const i32x4 0x12345678 0x12345678 0x12345678 0x12345678))
(v128.const i32x4 -1 -1 -1 -1))
;; le_u
;; i32x4.le_u (i32x4) (i32x4)
;; hex vs hex
(assert_return (invoke "le_u" (v128.const i32x4 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF)
(v128.const i32x4 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "le_u" (v128.const i32x4 0x00000000 0x00000000 0x00000000 0x00000000)
(v128.const i32x4 0x00000000 0x00000000 0x00000000 0x00000000))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "le_u" (v128.const i32x4 0xF0F0F0F0 0xF0F0F0F0 0xF0F0F0F0 0xF0F0F0F0)
(v128.const i32x4 0xF0F0F0F0 0xF0F0F0F0 0xF0F0F0F0 0xF0F0F0F0))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "le_u" (v128.const i32x4 0x0F0F0F0F 0x0F0F0F0F 0x0F0F0F0F 0x0F0F0F0F)
(v128.const i32x4 0x0F0F0F0F 0x0F0F0F0F 0x0F0F0F0F 0x0F0F0F0F))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "le_u" (v128.const i32x4 0xFFFFFFFF 0xFFFFFFFF 0x00000000 0x00000000)
(v128.const i32x4 0xFFFFFFFF 0xFFFFFFFF 0x00000000 0x00000000))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "le_u" (v128.const i32x4 0x00000000 0x00000000 0xFFFFFFFF 0xFFFFFFFF)
(v128.const i32x4 0x00000000 0x00000000 0xFFFFFFFF 0xFFFFFFFF))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "le_u" (v128.const i32x4 0x03020100 0x11100904 0x1A0B0A12 0xFFABAA1B)
(v128.const i32x4 0x03020100 0x11100904 0x1A0B0A12 0xFFABAA1B))
(v128.const i32x4 -1 -1 -1 -1))
;; hex vs dec
(assert_return (invoke "le_u" (v128.const i32x4 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF)
(v128.const i32x4 4294967295 4294967295 4294967295 4294967295))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "le_u" (v128.const i32x4 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF)
(v128.const i32x4 -1 -1 -1 -1))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "le_u" (v128.const i32x4 0x80808080 0x80808080 0x80808080 0x80808080)
(v128.const i32x4 2155905152 2155905152 2155905152 2155905152))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "le_u" (v128.const i32x4 0x80808080 0x80808080 0x80808080 0x80808080)
(v128.const i32x4 -2139062144 -2139062144 -2139062144 -2139062144))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "le_u" (v128.const i32x4 0x83828180 0x00FFFEFD 0x7F020100 0xFFFEFD80)
(v128.const i32x4 2206368128 16776957 2130837760 4294901120))
(v128.const i32x4 -1 -1 -1 -1))
;; dec vs dec
(assert_return (invoke "le_u" (v128.const i32x4 -1 -1 -1 -1)
(v128.const i32x4 -1 -1 -1 -1))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "le_u" (v128.const i32x4 0 0 0 0)
(v128.const i32x4 0 0 0 0))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "le_u" (v128.const i32x4 4294967295 4294967295 4294967295 4294967295)
(v128.const i32x4 4294967295 4294967295 4294967295 4294967295))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "le_u" (v128.const i32x4 4294967295 4294967295 4294967295 4294967295)
(v128.const i32x4 -1 -1 -1 -1))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "le_u" (v128.const i32x4 4294967295 4294967295 0 0)
(v128.const i32x4 4294967295 4294967295 0 0))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "le_u" (v128.const i32x4 0 0 4294967295 4294967295)
(v128.const i32x4 0 0 4294967295 4294967295))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "le_u" (v128.const i32x4 -2147483647 4294967295 0 -1)
(v128.const i32x4 2147483649 -1 0 -1))
(v128.const i32x4 -1 -1 -1 -1))
;; hex vs float
(assert_return (invoke "le_u" (v128.const i32x4 0xc3000000 0xc2fe0000 0xbf800000 0x00000000)
(v128.const f32x4 -128.0 -127.0 -1.0 0.0))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "le_u" (v128.const i32x4 0x3f800000 0x42fe0000 0x43000000 0x437f0000)
(v128.const f32x4 1.0 127.0 128.0 255.0))
(v128.const i32x4 -1 -1 -1 -1))
;; not equal
(assert_return (invoke "le_u" (v128.const i32x4 0x0F0F0F0F 0x0F0F0F0F 0x0F0F0F0F 0x0F0F0F0F)
(v128.const i32x4 0xF0F0F0F0 0xF0F0F0F0 0xF0F0F0F0 0xF0F0F0F0))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "le_u" (v128.const i32x4 0x00000000 0x00000000 0xFFFFFFFF 0xFFFFFFFF)
(v128.const i32x4 0xFFFFFFFF 0xFFFFFFFF 0x00000000 0x00000000))
(v128.const i32x4 -1 -1 0 0))
(assert_return (invoke "le_u" (v128.const i32x4 0x02030001 0x10110409 0x0B1A120A 0xABFF1BAA)
(v128.const i32x4 0xAA1BFFAB 0x0A121A0B 0x09041110 0x01000302))
(v128.const i32x4 -1 0 0 0))
(assert_return (invoke "le_u" (v128.const i32x4 0x80018000 0x80038002 0x80058004 0x80078006)
(v128.const i32x4 2147975174 2147844100 2147713026 2147581952))
(v128.const i32x4 -1 -1 0 0))
(assert_return (invoke "le_u" (v128.const i32x4 2147483648 2147483647 0 -1)
(v128.const i32x4 -2147483648 -2147483647 -1 0))
(v128.const i32x4 -1 -1 -1 0))
;; i32x4.le_u (i32x4) (i8x16)
(assert_return (invoke "le_u" (v128.const i32x4 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF)
(v128.const i8x16 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "le_u" (v128.const i32x4 4294967295 4294967295 4294967295 4294967295)
(v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "le_u" (v128.const i32x4 0 0 0 0)
(v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "le_u" (v128.const i32x4 0x03020100 0x07060504 0x0B0A0908 0x0F0E0D0C)
(v128.const i8x16 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0A 0x0B 0x0C 0x0D 0x0E 0x0F))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "le_u" (v128.const i32x4 2206368128 16776957 2130837760 4294901120)
(v128.const i8x16 -128 -127 -126 -125 -3 -2 -1 0 0 1 2 127 128 253 254 255))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "le_u" (v128.const i32x4 -8323200 0 1 4294967295)
(v128.const i8x16 -128 -128 -128 -128 0 0 0 0 1 1 1 1 255 255 255 255))
(v128.const i32x4 0 -1 -1 -1))
(assert_return (invoke "le_u" (v128.const i32x4 0x55555555 0x55555555 0x55555555 0x55555555)
(v128.const i8x16 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA))
(v128.const i32x4 -1 -1 -1 -1))
;; i32x4.le_u (i32x4) (i16x8)
(assert_return (invoke "le_u" (v128.const i32x4 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF)
(v128.const i16x8 0xFFFF 0xFFFF 0xFFFF 0xFFFF 0xFFFF 0xFFFF 0xFFFF 0xFFFF))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "le_u" (v128.const i32x4 4294967295 4294967295 4294967295 4294967295)
(v128.const i16x8 65535 65535 65535 65535 65535 65535 65535 65535))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "le_u" (v128.const i32x4 0 0 0 0)
(v128.const i16x8 0 0 0 0 0 0 0 0))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "le_u" (v128.const i32x4 0x03020100 0x07060504 0x0B0A0908 0x0F0E0D0C)
(v128.const i16x8 0x0100 0x0302 0x0504 0x0706 0x0908 0x0B0A 0x0D0C 0x0F0E))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "le_u" (v128.const i32x4 2206368128 16776957 2130837760 4294901120)
(v128.const i16x8 33152 33666 65277 255 256 32514 64896 65534))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "le_u" (v128.const i32x4 -128 0 1 255)
(v128.const i16x8 -128 -128 0 0 1 1 255 255))
(v128.const i32x4 0 -1 -1 -1))
(assert_return (invoke "le_u" (v128.const i32x4 0xAAAAAAAA 0xAAAAAAAA 0xAAAAAAAA 0xAAAAAAAA)
(v128.const i16x8 0x5555 0x5555 0x5555 0x5555 0x5555 0x5555 0x5555 0x5555))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "le_u" (v128.const i32x4 0_123_456_789 0_123_456_789 0_123_456_789 0_123_456_789)
(v128.const i32x4 123456789 123456789 123456789 123456789))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "le_u" (v128.const i32x4 0x0_90AB_cdef 0x0_90AB_cdef 0x0_90AB_cdef 0x0_90AB_cdef)
(v128.const i32x4 0x90ABcdef 0x90ABcdef 0x90ABcdef 0x90ABcdef))
(v128.const i32x4 -1 -1 -1 -1))
;; gt_s
;; i32x4.gt_s (i32x4) (i32x4)
;; hex vs hex
(assert_return (invoke "gt_s" (v128.const i32x4 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF)
(v128.const i32x4 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "gt_s" (v128.const i32x4 0x00000000 0x00000000 0x00000000 0x00000000)
(v128.const i32x4 0x00000000 0x00000000 0x00000000 0x00000000))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "gt_s" (v128.const i32x4 0xF0F0F0F0 0xF0F0F0F0 0xF0F0F0F0 0xF0F0F0F0)
(v128.const i32x4 0xF0F0F0F0 0xF0F0F0F0 0xF0F0F0F0 0xF0F0F0F0))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "gt_s" (v128.const i32x4 0x0F0F0F0F 0x0F0F0F0F 0x0F0F0F0F 0x0F0F0F0F)
(v128.const i32x4 0x0F0F0F0F 0x0F0F0F0F 0x0F0F0F0F 0x0F0F0F0F))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "gt_s" (v128.const i32x4 0xFFFFFFFF 0xFFFFFFFF 0x00000000 0x00000000)
(v128.const i32x4 0xFFFFFFFF 0xFFFFFFFF 0x00000000 0x00000000))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "gt_s" (v128.const i32x4 0x00000000 0x00000000 0xFFFFFFFF 0xFFFFFFFF)
(v128.const i32x4 0x00000000 0x00000000 0xFFFFFFFF 0xFFFFFFFF))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "gt_s" (v128.const i32x4 0x03020100 0x11100904 0x1A0B0A12 0xFFABAA1B)
(v128.const i32x4 0x03020100 0x11100904 0x1A0B0A12 0xFFABAA1B))
(v128.const i32x4 0 0 0 0))
;; hex vs dec
(assert_return (invoke "gt_s" (v128.const i32x4 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF)
(v128.const i32x4 4294967295 4294967295 4294967295 4294967295))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "gt_s" (v128.const i32x4 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF)
(v128.const i32x4 -1 -1 -1 -1))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "gt_s" (v128.const i32x4 0x80808080 0x80808080 0x80808080 0x80808080)
(v128.const i32x4 2155905152 2155905152 2155905152 2155905152))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "gt_s" (v128.const i32x4 0x80808080 0x80808080 0x80808080 0x80808080)
(v128.const i32x4 -2139062144 -2139062144 -2139062144 -2139062144))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "gt_s" (v128.const i32x4 0x83828180 0x00FFFEFD 0x7F020100 0xFFFEFD80)
(v128.const i32x4 2206368128 16776957 2130837760 4294901120))
(v128.const i32x4 0 0 0 0))
;; dec vs dec
(assert_return (invoke "gt_s" (v128.const i32x4 -1 -1 -1 -1)
(v128.const i32x4 -1 -1 -1 -1))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "gt_s" (v128.const i32x4 0 0 0 0)
(v128.const i32x4 0 0 0 0))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "gt_s" (v128.const i32x4 4294967295 4294967295 4294967295 4294967295)
(v128.const i32x4 4294967295 4294967295 4294967295 4294967295))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "gt_s" (v128.const i32x4 4294967295 4294967295 4294967295 4294967295)
(v128.const i32x4 -1 -1 -1 -1))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "gt_s" (v128.const i32x4 4294967295 4294967295 0 0)
(v128.const i32x4 4294967295 4294967295 0 0))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "gt_s" (v128.const i32x4 0 0 4294967295 4294967295)
(v128.const i32x4 0 0 4294967295 4294967295))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "gt_s" (v128.const i32x4 -2147483647 4294967295 0 -1)
(v128.const i32x4 2147483649 -1 0 -1))
(v128.const i32x4 0 0 0 0))
;; hex vs float
(assert_return (invoke "gt_s" (v128.const i32x4 0xc3000000 0xc2fe0000 0xbf800000 0x00000000)
(v128.const f32x4 -128.0 -127.0 -1.0 0.0))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "gt_s" (v128.const i32x4 0x3f800000 0x42fe0000 0x43000000 0x437f0000)
(v128.const f32x4 1.0 127.0 128.0 255.0))
(v128.const i32x4 0 0 0 0))
;; not equal
(assert_return (invoke "gt_s" (v128.const i32x4 0x0F0F0F0F 0x0F0F0F0F 0x0F0F0F0F 0x0F0F0F0F)
(v128.const i32x4 0xF0F0F0F0 0xF0F0F0F0 0xF0F0F0F0 0xF0F0F0F0))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "gt_s" (v128.const i32x4 0x00000000 0x00000000 0xFFFFFFFF 0xFFFFFFFF)
(v128.const i32x4 0xFFFFFFFF 0xFFFFFFFF 0x00000000 0x00000000))
(v128.const i32x4 -1 -1 0 0))
(assert_return (invoke "gt_s" (v128.const i32x4 0x02030001 0x10110409 0x0B1A120A 0xABFF1BAA)
(v128.const i32x4 0xAA1BFFAB 0x0A121A0B 0x09041110 0x01000302))
(v128.const i32x4 -1 -1 -1 0))
(assert_return (invoke "gt_s" (v128.const i32x4 0x80018000 0x80038002 0x80058004 0x80078006)
(v128.const i32x4 2147975174 2147844100 2147713026 2147581952))
(v128.const i32x4 0 0 -1 -1))
(assert_return (invoke "gt_s" (v128.const i32x4 2147483648 2147483647 0 -1)
(v128.const i32x4 -2147483648 -2147483647 -1 0))
(v128.const i32x4 0 -1 -1 0))
;; i32x4.gt_s (i32x4) (i8x16)
(assert_return (invoke "gt_s" (v128.const i32x4 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF)
(v128.const i8x16 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "gt_s" (v128.const i32x4 4294967295 4294967295 4294967295 4294967295)
(v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "gt_s" (v128.const i32x4 0 0 0 0)
(v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "gt_s" (v128.const i32x4 0x03020100 0x07060504 0x0B0A0908 0x0F0E0D0C)
(v128.const i8x16 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0A 0x0B 0x0C 0x0D 0x0E 0x0F))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "gt_s" (v128.const i32x4 2206368128 16776957 2130837760 4294901120)
(v128.const i8x16 -128 -127 -126 -125 -3 -2 -1 0 0 1 2 127 128 253 254 255))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "gt_s" (v128.const i32x4 -8323200 0 1 4294967295)
(v128.const i8x16 -128 -128 -128 -128 0 0 0 0 1 1 1 1 255 255 255 255))
(v128.const i32x4 -1 0 0 0))
(assert_return (invoke "gt_s" (v128.const i32x4 0x55555555 0x55555555 0x55555555 0x55555555)
(v128.const i8x16 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA))
(v128.const i32x4 -1 -1 -1 -1))
;; i32x4.gt_s (i32x4) (i16x8)
(assert_return (invoke "gt_s" (v128.const i32x4 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF)
(v128.const i16x8 0xFFFF 0xFFFF 0xFFFF 0xFFFF 0xFFFF 0xFFFF 0xFFFF 0xFFFF))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "gt_s" (v128.const i32x4 4294967295 4294967295 4294967295 4294967295)
(v128.const i16x8 65535 65535 65535 65535 65535 65535 65535 65535))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "gt_s" (v128.const i32x4 0 0 0 0)
(v128.const i16x8 0 0 0 0 0 0 0 0))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "gt_s" (v128.const i32x4 0x03020100 0x07060504 0x0B0A0908 0x0F0E0D0C)
(v128.const i16x8 0x0100 0x0302 0x0504 0x0706 0x0908 0x0B0A 0x0D0C 0x0F0E))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "gt_s" (v128.const i32x4 2206368128 16776957 2130837760 4294901120)
(v128.const i16x8 33152 33666 65277 255 256 32514 64896 65534))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "gt_s" (v128.const i32x4 65535 0 1 32768)
(v128.const i16x8 65535 65535 0 0 1 1 32768 32768))
(v128.const i32x4 -1 0 0 -1))
(assert_return (invoke "gt_s" (v128.const i32x4 0xAAAAAAAA 0xAAAAAAAA 0xAAAAAAAA 0xAAAAAAAA)
(v128.const i16x8 0x5555 0x5555 0x5555 0x5555 0x5555 0x5555 0x5555 0x5555))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "gt_s" (v128.const i32x4 0_123_456_789 0_123_456_789 0_123_456_789 0_123_456_789)
(v128.const i32x4 123456789 123456789 123456789 123456789))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "gt_s" (v128.const i32x4 0x0_90AB_cdef 0x0_90AB_cdef 0x0_90AB_cdef 0x0_90AB_cdef)
(v128.const i32x4 -0x6f543211 -0x6f543211 -0x6f543211 -0x6f543211))
(v128.const i32x4 0 0 0 0))
;; gt_u
;; i32x4.gt_u (i32x4) (i32x4)
;; hex vs hex
(assert_return (invoke "gt_u" (v128.const i32x4 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF)
(v128.const i32x4 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "gt_u" (v128.const i32x4 0x00000000 0x00000000 0x00000000 0x00000000)
(v128.const i32x4 0x00000000 0x00000000 0x00000000 0x00000000))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "gt_u" (v128.const i32x4 0xF0F0F0F0 0xF0F0F0F0 0xF0F0F0F0 0xF0F0F0F0)
(v128.const i32x4 0xF0F0F0F0 0xF0F0F0F0 0xF0F0F0F0 0xF0F0F0F0))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "gt_u" (v128.const i32x4 0x0F0F0F0F 0x0F0F0F0F 0x0F0F0F0F 0x0F0F0F0F)
(v128.const i32x4 0x0F0F0F0F 0x0F0F0F0F 0x0F0F0F0F 0x0F0F0F0F))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "gt_u" (v128.const i32x4 0xFFFFFFFF 0xFFFFFFFF 0x00000000 0x00000000)
(v128.const i32x4 0xFFFFFFFF 0xFFFFFFFF 0x00000000 0x00000000))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "gt_u" (v128.const i32x4 0x00000000 0x00000000 0xFFFFFFFF 0xFFFFFFFF)
(v128.const i32x4 0x00000000 0x00000000 0xFFFFFFFF 0xFFFFFFFF))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "gt_u" (v128.const i32x4 0x03020100 0x11100904 0x1A0B0A12 0xFFABAA1B)
(v128.const i32x4 0x03020100 0x11100904 0x1A0B0A12 0xFFABAA1B))
(v128.const i32x4 0 0 0 0))
;; hex vs dec
(assert_return (invoke "gt_u" (v128.const i32x4 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF)
(v128.const i32x4 4294967295 4294967295 4294967295 4294967295))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "gt_u" (v128.const i32x4 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF)
(v128.const i32x4 -1 -1 -1 -1))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "gt_u" (v128.const i32x4 0x80808080 0x80808080 0x80808080 0x80808080)
(v128.const i32x4 2155905152 2155905152 2155905152 2155905152))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "gt_u" (v128.const i32x4 0x80808080 0x80808080 0x80808080 0x80808080)
(v128.const i32x4 -2139062144 -2139062144 -2139062144 -2139062144))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "gt_u" (v128.const i32x4 0x83828180 0x00FFFEFD 0x7F020100 0xFFFEFD80)
(v128.const i32x4 2206368128 16776957 2130837760 4294901120))
(v128.const i32x4 0 0 0 0))
;; dec vs dec
(assert_return (invoke "gt_u" (v128.const i32x4 -1 -1 -1 -1)
(v128.const i32x4 -1 -1 -1 -1))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "gt_u" (v128.const i32x4 0 0 0 0)
(v128.const i32x4 0 0 0 0))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "gt_u" (v128.const i32x4 4294967295 4294967295 4294967295 4294967295)
(v128.const i32x4 4294967295 4294967295 4294967295 4294967295))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "gt_u" (v128.const i32x4 4294967295 4294967295 4294967295 4294967295)
(v128.const i32x4 -1 -1 -1 -1))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "gt_u" (v128.const i32x4 4294967295 4294967295 0 0)
(v128.const i32x4 4294967295 4294967295 0 0))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "gt_u" (v128.const i32x4 0 0 4294967295 4294967295)
(v128.const i32x4 0 0 4294967295 4294967295))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "gt_u" (v128.const i32x4 -2147483647 4294967295 0 -1)
(v128.const i32x4 2147483649 -1 0 -1))
(v128.const i32x4 0 0 0 0))
;; hex vs float
(assert_return (invoke "gt_u" (v128.const i32x4 0xc3000000 0xc2fe0000 0xbf800000 0x00000000)
(v128.const f32x4 -128.0 -127.0 -1.0 0.0))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "gt_u" (v128.const i32x4 0x3f800000 0x42fe0000 0x43000000 0x437f0000)
(v128.const f32x4 1.0 127.0 128.0 255.0))
(v128.const i32x4 0 0 0 0))
;; not equal
(assert_return (invoke "gt_u" (v128.const i32x4 0x0F0F0F0F 0x0F0F0F0F 0x0F0F0F0F 0x0F0F0F0F)
(v128.const i32x4 0xF0F0F0F0 0xF0F0F0F0 0xF0F0F0F0 0xF0F0F0F0))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "gt_u" (v128.const i32x4 0x00000000 0x00000000 0xFFFFFFFF 0xFFFFFFFF)
(v128.const i32x4 0xFFFFFFFF 0xFFFFFFFF 0x00000000 0x00000000))
(v128.const i32x4 0 0 -1 -1))
(assert_return (invoke "gt_u" (v128.const i32x4 0x02030001 0x10110409 0x0B1A120A 0xABFF1BAA)
(v128.const i32x4 0xAA1BFFAB 0x0A121A0B 0x09041110 0x01000302))
(v128.const i32x4 0 -1 -1 -1))
(assert_return (invoke "gt_u" (v128.const i32x4 0x80018000 0x80038002 0x80058004 0x80078006)
(v128.const i32x4 2147975174 2147844100 2147713026 2147581952))
(v128.const i32x4 0 0 -1 -1))
(assert_return (invoke "gt_u" (v128.const i32x4 2147483648 2147483647 0 -1)
(v128.const i32x4 -2147483648 -2147483647 -1 0))
(v128.const i32x4 0 0 0 -1))
;; i32x4.gt_u (i32x4) (i8x16)
(assert_return (invoke "gt_u" (v128.const i32x4 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF)
(v128.const i8x16 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "gt_u" (v128.const i32x4 4294967295 4294967295 4294967295 4294967295)
(v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "gt_u" (v128.const i32x4 0 0 0 0)
(v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "gt_u" (v128.const i32x4 0x03020100 0x07060504 0x0B0A0908 0x0F0E0D0C)
(v128.const i8x16 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0A 0x0B 0x0C 0x0D 0x0E 0x0F))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "gt_u" (v128.const i32x4 2206368128 16776957 2130837760 4294901120)
(v128.const i8x16 -128 -127 -126 -125 -3 -2 -1 0 0 1 2 127 128 253 254 255))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "gt_u" (v128.const i32x4 -8323200 0 1 4294967295)
(v128.const i8x16 -128 -128 -128 -128 0 0 0 0 1 1 1 1 255 255 255 255))
(v128.const i32x4 -1 0 0 0))
(assert_return (invoke "gt_u" (v128.const i32x4 0x55555555 0x55555555 0x55555555 0x55555555)
(v128.const i8x16 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA))
(v128.const i32x4 0 0 0 0))
;; i32x4.gt_u (i32x4) (i16x8)
(assert_return (invoke "gt_u" (v128.const i32x4 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF)
(v128.const i16x8 0xFFFF 0xFFFF 0xFFFF 0xFFFF 0xFFFF 0xFFFF 0xFFFF 0xFFFF))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "gt_u" (v128.const i32x4 4294967295 4294967295 4294967295 4294967295)
(v128.const i16x8 65535 65535 65535 65535 65535 65535 65535 65535))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "gt_u" (v128.const i32x4 0 0 0 0)
(v128.const i16x8 0 0 0 0 0 0 0 0))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "gt_u" (v128.const i32x4 0x03020100 0x07060504 0x0B0A0908 0x0F0E0D0C)
(v128.const i16x8 0x0100 0x0302 0x0504 0x0706 0x0908 0x0B0A 0x0D0C 0x0F0E))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "gt_u" (v128.const i32x4 2206368128 16776957 2130837760 4294901120)
(v128.const i16x8 33152 33666 65277 255 256 32514 64896 65534))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "gt_u" (v128.const i32x4 -128 0 1 255)
(v128.const i16x8 -128 -128 0 0 1 1 255 255))
(v128.const i32x4 -1 0 0 0))
(assert_return (invoke "gt_u" (v128.const i32x4 0xAAAAAAAA 0xAAAAAAAA 0xAAAAAAAA 0xAAAAAAAA)
(v128.const i16x8 0x5555 0x5555 0x5555 0x5555 0x5555 0x5555 0x5555 0x5555))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "gt_u" (v128.const i32x4 0_123_456_789 0_123_456_789 0_123_456_789 0_123_456_789)
(v128.const i32x4 123456789 123456789 123456789 123456789))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "gt_u" (v128.const i32x4 0x0_1234_5678 0x0_1234_5678 0x0_1234_5678 0x0_1234_5678)
(v128.const i32x4 0x12345678 0x12345678 0x12345678 0x12345678))
(v128.const i32x4 0 0 0 0))
;; ge_s
;; i32x4.ge_s (i32x4) (i32x4)
;; hex vs hex
(assert_return (invoke "ge_s" (v128.const i32x4 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF)
(v128.const i32x4 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "ge_s" (v128.const i32x4 0x00000000 0x00000000 0x00000000 0x00000000)
(v128.const i32x4 0x00000000 0x00000000 0x00000000 0x00000000))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "ge_s" (v128.const i32x4 0xF0F0F0F0 0xF0F0F0F0 0xF0F0F0F0 0xF0F0F0F0)
(v128.const i32x4 0xF0F0F0F0 0xF0F0F0F0 0xF0F0F0F0 0xF0F0F0F0))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "ge_s" (v128.const i32x4 0x0F0F0F0F 0x0F0F0F0F 0x0F0F0F0F 0x0F0F0F0F)
(v128.const i32x4 0x0F0F0F0F 0x0F0F0F0F 0x0F0F0F0F 0x0F0F0F0F))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "ge_s" (v128.const i32x4 0xFFFFFFFF 0xFFFFFFFF 0x00000000 0x00000000)
(v128.const i32x4 0xFFFFFFFF 0xFFFFFFFF 0x00000000 0x00000000))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "ge_s" (v128.const i32x4 0x00000000 0x00000000 0xFFFFFFFF 0xFFFFFFFF)
(v128.const i32x4 0x00000000 0x00000000 0xFFFFFFFF 0xFFFFFFFF))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "ge_s" (v128.const i32x4 0x03020100 0x11100904 0x1A0B0A12 0xFFABAA1B)
(v128.const i32x4 0x03020100 0x11100904 0x1A0B0A12 0xFFABAA1B))
(v128.const i32x4 -1 -1 -1 -1))
;; hex vs dec
(assert_return (invoke "ge_s" (v128.const i32x4 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF)
(v128.const i32x4 4294967295 4294967295 4294967295 4294967295))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "ge_s" (v128.const i32x4 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF)
(v128.const i32x4 -1 -1 -1 -1))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "ge_s" (v128.const i32x4 0x80808080 0x80808080 0x80808080 0x80808080)
(v128.const i32x4 2155905152 2155905152 2155905152 2155905152))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "ge_s" (v128.const i32x4 0x80808080 0x80808080 0x80808080 0x80808080)
(v128.const i32x4 -2139062144 -2139062144 -2139062144 -2139062144))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "ge_s" (v128.const i32x4 0x83828180 0x00FFFEFD 0x7F020100 0xFFFEFD80)
(v128.const i32x4 2206368128 16776957 2130837760 4294901120))
(v128.const i32x4 -1 -1 -1 -1))
;; dec vs dec
(assert_return (invoke "ge_s" (v128.const i32x4 -1 -1 -1 -1)
(v128.const i32x4 -1 -1 -1 -1))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "ge_s" (v128.const i32x4 0 0 0 0)
(v128.const i32x4 0 0 0 0))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "ge_s" (v128.const i32x4 4294967295 4294967295 4294967295 4294967295)
(v128.const i32x4 4294967295 4294967295 4294967295 4294967295))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "ge_s" (v128.const i32x4 4294967295 4294967295 4294967295 4294967295)
(v128.const i32x4 -1 -1 -1 -1))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "ge_s" (v128.const i32x4 4294967295 4294967295 0 0)
(v128.const i32x4 4294967295 4294967295 0 0))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "ge_s" (v128.const i32x4 0 0 4294967295 4294967295)
(v128.const i32x4 0 0 4294967295 4294967295))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "ge_s" (v128.const i32x4 -2147483647 4294967295 0 -1)
(v128.const i32x4 2147483649 -1 0 -1))
(v128.const i32x4 -1 -1 -1 -1))
;; hex vs float
(assert_return (invoke "ge_s" (v128.const i32x4 0xc3000000 0xc2fe0000 0xbf800000 0x00000000)
(v128.const f32x4 -128.0 -127.0 -1.0 0.0))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "ge_s" (v128.const i32x4 0x3f800000 0x42fe0000 0x43000000 0x437f0000)
(v128.const f32x4 1.0 127.0 128.0 255.0))
(v128.const i32x4 -1 -1 -1 -1))
;; not equal
(assert_return (invoke "ge_s" (v128.const i32x4 0x0F0F0F0F 0x0F0F0F0F 0x0F0F0F0F 0x0F0F0F0F)
(v128.const i32x4 0xF0F0F0F0 0xF0F0F0F0 0xF0F0F0F0 0xF0F0F0F0))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "ge_s" (v128.const i32x4 0x00000000 0x00000000 0xFFFFFFFF 0xFFFFFFFF)
(v128.const i32x4 0xFFFFFFFF 0xFFFFFFFF 0x00000000 0x00000000))
(v128.const i32x4 -1 -1 0 0))
(assert_return (invoke "ge_s" (v128.const i32x4 0x02030001 0x10110409 0x0B1A120A 0xABFF1BAA)
(v128.const i32x4 0xAA1BFFAB 0x0A121A0B 0x09041110 0x01000302))
(v128.const i32x4 -1 -1 -1 0))
(assert_return (invoke "ge_s" (v128.const i32x4 0x80018000 0x80038002 0x80058004 0x80078006)
(v128.const i32x4 2147975174 2147844100 2147713026 2147581952))
(v128.const i32x4 0 0 -1 -1))
(assert_return (invoke "ge_s" (v128.const i32x4 2147483648 2147483647 0 -1)
(v128.const i32x4 -2147483648 -2147483647 -1 0))
(v128.const i32x4 -1 -1 -1 0))
;; i32x4.ge_s (i32x4) (i8x16)
(assert_return (invoke "ge_s" (v128.const i32x4 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF)
(v128.const i8x16 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "ge_s" (v128.const i32x4 4294967295 4294967295 4294967295 4294967295)
(v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "ge_s" (v128.const i32x4 0 0 0 0)
(v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "ge_s" (v128.const i32x4 0x03020100 0x07060504 0x0B0A0908 0x0F0E0D0C)
(v128.const i8x16 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0A 0x0B 0x0C 0x0D 0x0E 0x0F))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "ge_s" (v128.const i32x4 2206368128 16776957 2130837760 4294901120)
(v128.const i8x16 -128 -127 -126 -125 -3 -2 -1 0 0 1 2 127 128 253 254 255))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "ge_s" (v128.const i32x4 -8323200 0 1 4294967295)
(v128.const i8x16 -128 -128 -128 -128 0 0 0 0 1 1 1 1 255 255 255 255))
(v128.const i32x4 -1 -1 0 -1))
(assert_return (invoke "ge_s" (v128.const i32x4 0x55555555 0x55555555 0x55555555 0x55555555)
(v128.const i8x16 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55))
(v128.const i32x4 -1 -1 -1 -1))
;; i32x4.ge_s (i32x4) (i16x8)
(assert_return (invoke "ge_s" (v128.const i32x4 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF)
(v128.const i16x8 0xFFFF 0xFFFF 0xFFFF 0xFFFF 0xFFFF 0xFFFF 0xFFFF 0xFFFF))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "ge_s" (v128.const i32x4 4294967295 4294967295 4294967295 4294967295)
(v128.const i16x8 65535 65535 65535 65535 65535 65535 65535 65535))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "ge_s" (v128.const i32x4 0 0 0 0)
(v128.const i16x8 0 0 0 0 0 0 0 0))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "ge_s" (v128.const i32x4 0x03020100 0x07060504 0x0B0A0908 0x0F0E0D0C)
(v128.const i16x8 0x0100 0x0302 0x0504 0x0706 0x0908 0x0B0A 0x0D0C 0x0F0E))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "ge_s" (v128.const i32x4 2206368128 16776957 2130837760 4294901120)
(v128.const i16x8 33152 33666 65277 255 256 32514 64896 65534))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "ge_s" (v128.const i32x4 65535 0 1 32768)
(v128.const i16x8 65535 65535 0 0 1 1 32768 32768))
(v128.const i32x4 -1 -1 0 -1))
(assert_return (invoke "ge_s" (v128.const i32x4 0xAAAAAAAA 0xAAAAAAAA 0xAAAAAAAA 0xAAAAAAAA)
(v128.const i16x8 0x5555 0x5555 0x5555 0x5555 0x5555 0x5555 0x5555 0x5555))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "ge_s" (v128.const i32x4 0_123_456_789 0_123_456_789 0_123_456_789 0_123_456_789)
(v128.const i32x4 123456789 123456789 123456789 123456789))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "ge_s" (v128.const i32x4 0x0_1234_5678 0x0_1234_5678 0x0_1234_5678 0x0_1234_5678)
(v128.const i32x4 0x12345678 0x12345678 0x12345678 0x12345678))
(v128.const i32x4 -1 -1 -1 -1))
;; ge_u
;; i32x4.ge_u (i32x4) (i32x4)
;; hex vs hex
(assert_return (invoke "ge_u" (v128.const i32x4 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF)
(v128.const i32x4 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "ge_u" (v128.const i32x4 0x00000000 0x00000000 0x00000000 0x00000000)
(v128.const i32x4 0x00000000 0x00000000 0x00000000 0x00000000))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "ge_u" (v128.const i32x4 0xF0F0F0F0 0xF0F0F0F0 0xF0F0F0F0 0xF0F0F0F0)
(v128.const i32x4 0xF0F0F0F0 0xF0F0F0F0 0xF0F0F0F0 0xF0F0F0F0))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "ge_u" (v128.const i32x4 0x0F0F0F0F 0x0F0F0F0F 0x0F0F0F0F 0x0F0F0F0F)
(v128.const i32x4 0x0F0F0F0F 0x0F0F0F0F 0x0F0F0F0F 0x0F0F0F0F))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "ge_u" (v128.const i32x4 0xFFFFFFFF 0xFFFFFFFF 0x00000000 0x00000000)
(v128.const i32x4 0xFFFFFFFF 0xFFFFFFFF 0x00000000 0x00000000))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "ge_u" (v128.const i32x4 0x00000000 0x00000000 0xFFFFFFFF 0xFFFFFFFF)
(v128.const i32x4 0x00000000 0x00000000 0xFFFFFFFF 0xFFFFFFFF))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "ge_u" (v128.const i32x4 0x03020100 0x11100904 0x1A0B0A12 0xFFABAA1B)
(v128.const i32x4 0x03020100 0x11100904 0x1A0B0A12 0xFFABAA1B))
(v128.const i32x4 -1 -1 -1 -1))
;; hex vs dec
(assert_return (invoke "ge_u" (v128.const i32x4 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF)
(v128.const i32x4 4294967295 4294967295 4294967295 4294967295))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "ge_u" (v128.const i32x4 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF)
(v128.const i32x4 -1 -1 -1 -1))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "ge_u" (v128.const i32x4 0x80808080 0x80808080 0x80808080 0x80808080)
(v128.const i32x4 2155905152 2155905152 2155905152 2155905152))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "ge_u" (v128.const i32x4 0x80808080 0x80808080 0x80808080 0x80808080)
(v128.const i32x4 -2139062144 -2139062144 -2139062144 -2139062144))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "ge_u" (v128.const i32x4 0x83828180 0x00FFFEFD 0x7F020100 0xFFFEFD80)
(v128.const i32x4 2206368128 16776957 2130837760 4294901120))
(v128.const i32x4 -1 -1 -1 -1))
;; dec vs dec
(assert_return (invoke "ge_u" (v128.const i32x4 -1 -1 -1 -1)
(v128.const i32x4 -1 -1 -1 -1))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "ge_u" (v128.const i32x4 0 0 0 0)
(v128.const i32x4 0 0 0 0))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "ge_u" (v128.const i32x4 4294967295 4294967295 4294967295 4294967295)
(v128.const i32x4 4294967295 4294967295 4294967295 4294967295))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "ge_u" (v128.const i32x4 4294967295 4294967295 4294967295 4294967295)
(v128.const i32x4 -1 -1 -1 -1))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "ge_u" (v128.const i32x4 4294967295 4294967295 0 0)
(v128.const i32x4 4294967295 4294967295 0 0))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "ge_u" (v128.const i32x4 0 0 4294967295 4294967295)
(v128.const i32x4 0 0 4294967295 4294967295))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "ge_u" (v128.const i32x4 -2147483647 4294967295 0 -1)
(v128.const i32x4 2147483649 -1 0 -1))
(v128.const i32x4 -1 -1 -1 -1))
;; hex vs float
(assert_return (invoke "ge_u" (v128.const i32x4 0xc3000000 0xc2fe0000 0xbf800000 0x00000000)
(v128.const f32x4 -128.0 -127.0 -1.0 0.0))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "ge_u" (v128.const i32x4 0x3f800000 0x42fe0000 0x43000000 0x437f0000)
(v128.const f32x4 1.0 127.0 128.0 255.0))
(v128.const i32x4 -1 -1 -1 -1))
;; not equal
(assert_return (invoke "ge_u" (v128.const i32x4 0x0F0F0F0F 0x0F0F0F0F 0x0F0F0F0F 0x0F0F0F0F)
(v128.const i32x4 0xF0F0F0F0 0xF0F0F0F0 0xF0F0F0F0 0xF0F0F0F0))
(v128.const i32x4 0 0 0 0))
(assert_return (invoke "ge_u" (v128.const i32x4 0x00000000 0x00000000 0xFFFFFFFF 0xFFFFFFFF)
(v128.const i32x4 0xFFFFFFFF 0xFFFFFFFF 0x00000000 0x00000000))
(v128.const i32x4 0 0 -1 -1))
(assert_return (invoke "ge_u" (v128.const i32x4 0x02030001 0x10110409 0x0B1A120A 0xABFF1BAA)
(v128.const i32x4 0xAA1BFFAB 0x0A121A0B 0x09041110 0x01000302))
(v128.const i32x4 0 -1 -1 -1))
(assert_return (invoke "ge_u" (v128.const i32x4 0x80018000 0x80038002 0x80058004 0x80078006)
(v128.const i32x4 2147975174 2147844100 2147713026 2147581952))
(v128.const i32x4 0 0 -1 -1))
(assert_return (invoke "ge_u" (v128.const i32x4 2147483648 2147483647 0 -1)
(v128.const i32x4 -2147483648 -2147483647 -1 0))
(v128.const i32x4 -1 0 0 -1))
;; i32x4.ge_u (i32x4) (i8x16)
(assert_return (invoke "ge_u" (v128.const i32x4 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF)
(v128.const i8x16 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "ge_u" (v128.const i32x4 4294967295 4294967295 4294967295 4294967295)
(v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "ge_u" (v128.const i32x4 0 0 0 0)
(v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "ge_u" (v128.const i32x4 0x03020100 0x07060504 0x0B0A0908 0x0F0E0D0C)
(v128.const i8x16 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0A 0x0B 0x0C 0x0D 0x0E 0x0F))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "ge_u" (v128.const i32x4 2206368128 16776957 2130837760 4294901120)
(v128.const i8x16 -128 -127 -126 -125 -3 -2 -1 0 0 1 2 127 128 253 254 255))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "ge_u" (v128.const i32x4 -8323200 0 1 4294967295)
(v128.const i8x16 -128 -128 -128 -128 0 0 0 0 1 1 1 1 255 255 255 255))
(v128.const i32x4 -1 -1 0 -1))
(assert_return (invoke "ge_u" (v128.const i32x4 0xAAAAAAAA 0xAAAAAAAA 0xAAAAAAAA 0xAAAAAAAA)
(v128.const i8x16 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55))
(v128.const i32x4 -1 -1 -1 -1))
;; i32x4.ge_u (i32x4) (i16x8)
(assert_return (invoke "ge_u" (v128.const i32x4 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF)
(v128.const i16x8 0xFFFF 0xFFFF 0xFFFF 0xFFFF 0xFFFF 0xFFFF 0xFFFF 0xFFFF))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "ge_u" (v128.const i32x4 4294967295 4294967295 4294967295 4294967295)
(v128.const i16x8 65535 65535 65535 65535 65535 65535 65535 65535))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "ge_u" (v128.const i32x4 0 0 0 0)
(v128.const i16x8 0 0 0 0 0 0 0 0))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "ge_u" (v128.const i32x4 0x03020100 0x07060504 0x0B0A0908 0x0F0E0D0C)
(v128.const i16x8 0x0100 0x0302 0x0504 0x0706 0x0908 0x0B0A 0x0D0C 0x0F0E))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "ge_u" (v128.const i32x4 2206368128 16776957 2130837760 4294901120)
(v128.const i16x8 33152 33666 65277 255 256 32514 64896 65534))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "ge_u" (v128.const i32x4 -128 0 1 255)
(v128.const i16x8 65535 65535 0 0 1 1 32768 32768))
(v128.const i32x4 0 -1 0 0))
(assert_return (invoke "ge_u" (v128.const i32x4 0xAAAAAAAA 0xAAAAAAAA 0xAAAAAAAA 0xAAAAAAAA)
(v128.const i16x8 0x5555 0x5555 0x5555 0x5555 0x5555 0x5555 0x5555 0x5555))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "ge_u" (v128.const i32x4 0_123_456_789 0_123_456_789 0_123_456_789 0_123_456_789)
(v128.const i32x4 123456789 123456789 123456789 123456789))
(v128.const i32x4 -1 -1 -1 -1))
(assert_return (invoke "ge_u" (v128.const i32x4 0x0_1234_5678 0x0_1234_5678 0x0_1234_5678 0x0_1234_5678)
(v128.const i32x4 0x12345678 0x12345678 0x12345678 0x12345678))
(v128.const i32x4 -1 -1 -1 -1))
;; Type check
(assert_invalid (module (func (result v128) (i32x4.eq (i32.const 0) (f32.const 0)))) "type mismatch")
(assert_invalid (module (func (result v128) (i32x4.ge_s (i32.const 0) (f32.const 0)))) "type mismatch")
(assert_invalid (module (func (result v128) (i32x4.ge_u (i32.const 0) (f32.const 0)))) "type mismatch")
(assert_invalid (module (func (result v128) (i32x4.gt_s (i32.const 0) (f32.const 0)))) "type mismatch")
(assert_invalid (module (func (result v128) (i32x4.gt_u (i32.const 0) (f32.const 0)))) "type mismatch")
(assert_invalid (module (func (result v128) (i32x4.le_s (i32.const 0) (f32.const 0)))) "type mismatch")
(assert_invalid (module (func (result v128) (i32x4.le_u (i32.const 0) (f32.const 0)))) "type mismatch")
(assert_invalid (module (func (result v128) (i32x4.lt_s (i32.const 0) (f32.const 0)))) "type mismatch")
(assert_invalid (module (func (result v128) (i32x4.lt_u (i32.const 0) (f32.const 0)))) "type mismatch")
(assert_invalid (module (func (result v128) (i32x4.ne (i32.const 0) (f32.const 0)))) "type mismatch")
;; combination
(module (memory 1)
(func (export "eq-in-block")
(block
(drop
(block (result v128)
(i32x4.eq
(block (result v128) (v128.load (i32.const 0)))
(block (result v128) (v128.load (i32.const 1)))
)
)
)
)
)
(func (export "ne-in-block")
(block
(drop
(block (result v128)
(i32x4.ne
(block (result v128) (v128.load (i32.const 0)))
(block (result v128) (v128.load (i32.const 1)))
)
)
)
)
)
(func (export "lt_s-in-block")
(block
(drop
(block (result v128)
(i32x4.lt_s
(block (result v128) (v128.load (i32.const 0)))
(block (result v128) (v128.load (i32.const 1)))
)
)
)
)
)
(func (export "le_u-in-block")
(block
(drop
(block (result v128)
(i32x4.le_u
(block (result v128) (v128.load (i32.const 0)))
(block (result v128) (v128.load (i32.const 1)))
)
)
)
)
)
(func (export "gt_u-in-block")
(block
(drop
(block (result v128)
(i32x4.gt_u
(block (result v128) (v128.load (i32.const 0)))
(block (result v128) (v128.load (i32.const 1)))
)
)
)
)
)
(func (export "ge_s-in-block")
(block
(drop
(block (result v128)
(i32x4.ge_s
(block (result v128) (v128.load (i32.const 0)))
(block (result v128) (v128.load (i32.const 1)))
)
)
)
)
)
(func (export "nested-eq")
(drop
(i32x4.eq
(i32x4.eq
(i32x4.eq
(v128.load (i32.const 0))
(v128.load (i32.const 1))
)
(i32x4.eq
(v128.load (i32.const 2))
(v128.load (i32.const 3))
)
)
(i32x4.eq
(i32x4.eq
(v128.load (i32.const 0))
(v128.load (i32.const 1))
)
(i32x4.eq
(v128.load (i32.const 2))
(v128.load (i32.const 3))
)
)
)
)
)
(func (export "nested-ne")
(drop
(i32x4.ne
(i32x4.ne
(i32x4.ne
(v128.load (i32.const 0))
(v128.load (i32.const 1))
)
(i32x4.ne
(v128.load (i32.const 2))
(v128.load (i32.const 3))
)
)
(i32x4.ne
(i32x4.ne
(v128.load (i32.const 0))
(v128.load (i32.const 1))
)
(i32x4.ne
(v128.load (i32.const 2))
(v128.load (i32.const 3))
)
)
)
)
)
(func (export "nested-lt_s")
(drop
(i32x4.lt_s
(i32x4.lt_s
(i32x4.lt_s
(v128.load (i32.const 0))
(v128.load (i32.const 1))
)
(i32x4.lt_s
(v128.load (i32.const 2))
(v128.load (i32.const 3))
)
)
(i32x4.lt_s
(i32x4.lt_s
(v128.load (i32.const 0))
(v128.load (i32.const 1))
)
(i32x4.lt_s
(v128.load (i32.const 2))
(v128.load (i32.const 3))
)
)
)
)
)
(func (export "nested-le_u")
(drop
(i32x4.le_u
(i32x4.le_u
(i32x4.le_u
(v128.load (i32.const 0))
(v128.load (i32.const 1))
)
(i32x4.le_u
(v128.load (i32.const 2))
(v128.load (i32.const 3))
)
)
(i32x4.le_u
(i32x4.le_u
(v128.load (i32.const 0))
(v128.load (i32.const 1))
)
(i32x4.le_u
(v128.load (i32.const 2))
(v128.load (i32.const 3))
)
)
)
)
)
(func (export "nested-gt_u")
(drop
(i32x4.gt_u
(i32x4.gt_u
(i32x4.gt_u
(v128.load (i32.const 0))
(v128.load (i32.const 1))
)
(i32x4.gt_u
(v128.load (i32.const 2))
(v128.load (i32.const 3))
)
)
(i32x4.gt_u
(i32x4.gt_u
(v128.load (i32.const 0))
(v128.load (i32.const 1))
)
(i32x4.gt_u
(v128.load (i32.const 2))
(v128.load (i32.const 3))
)
)
)
)
)
(func (export "nested-ge_s")
(drop
(i32x4.ge_s
(i32x4.ge_s
(i32x4.ge_s
(v128.load (i32.const 0))
(v128.load (i32.const 1))
)
(i32x4.ge_s
(v128.load (i32.const 2))
(v128.load (i32.const 3))
)
)
(i32x4.ge_s
(i32x4.ge_s
(v128.load (i32.const 0))
(v128.load (i32.const 1))
)
(i32x4.ge_s
(v128.load (i32.const 2))
(v128.load (i32.const 3))
)
)
)
)
)
(func (export "as-param")
(drop
(i32x4.ge_u
(i32x4.eq
(i32x4.lt_s
(v128.load (i32.const 0))
(v128.load (i32.const 1))
)
(i32x4.le_u
(v128.load (i32.const 2))
(v128.load (i32.const 3))
)
)
(i32x4.ne
(i32x4.gt_s
(v128.load (i32.const 0))
(v128.load (i32.const 1))
)
(i32x4.lt_u
(v128.load (i32.const 2))
(v128.load (i32.const 3))
)
)
)
)
)
)
(assert_return (invoke "eq-in-block"))
(assert_return (invoke "ne-in-block"))
(assert_return (invoke "lt_s-in-block"))
(assert_return (invoke "le_u-in-block"))
(assert_return (invoke "gt_u-in-block"))
(assert_return (invoke "ge_s-in-block"))
(assert_return (invoke "nested-eq"))
(assert_return (invoke "nested-ne"))
(assert_return (invoke "nested-lt_s"))
(assert_return (invoke "nested-le_u"))
(assert_return (invoke "nested-gt_u"))
(assert_return (invoke "nested-ge_s"))
(assert_return (invoke "as-param"))
;; Test operation with empty argument
(assert_invalid
(module
(func $i32x4.eq-1st-arg-empty (result v128)
(i32x4.eq (v128.const i32x4 0 0 0 0))
)
)
"type mismatch"
)
(assert_invalid
(module
(func $i32x4.eq-arg-empty (result v128)
(i32x4.eq)
)
)
"type mismatch"
)
(assert_invalid
(module
(func $i32x4.ne-1st-arg-empty (result v128)
(i32x4.ne (v128.const i32x4 0 0 0 0))
)
)
"type mismatch"
)
(assert_invalid
(module
(func $i32x4.ne-arg-empty (result v128)
(i32x4.ne)
)
)
"type mismatch"
)
(assert_invalid
(module
(func $i32x4.lt_s-1st-arg-empty (result v128)
(i32x4.lt_s (v128.const i32x4 0 0 0 0))
)
)
"type mismatch"
)
(assert_invalid
(module
(func $i32x4.lt_s-arg-empty (result v128)
(i32x4.lt_s)
)
)
"type mismatch"
)
(assert_invalid
(module
(func $i32x4.lt_u-1st-arg-empty (result v128)
(i32x4.lt_u (v128.const i32x4 0 0 0 0))
)
)
"type mismatch"
)
(assert_invalid
(module
(func $i32x4.lt_u-arg-empty (result v128)
(i32x4.lt_u)
)
)
"type mismatch"
)
(assert_invalid
(module
(func $i32x4.le_s-1st-arg-empty (result v128)
(i32x4.le_s (v128.const i32x4 0 0 0 0))
)
)
"type mismatch"
)
(assert_invalid
(module
(func $i32x4.le_s-arg-empty (result v128)
(i32x4.le_s)
)
)
"type mismatch"
)
(assert_invalid
(module
(func $i32x4.le_u-1st-arg-empty (result v128)
(i32x4.le_u (v128.const i32x4 0 0 0 0))
)
)
"type mismatch"
)
(assert_invalid
(module
(func $i32x4.le_u-arg-empty (result v128)
(i32x4.le_u)
)
)
"type mismatch"
)
(assert_invalid
(module
(func $i32x4.gt_s-1st-arg-empty (result v128)
(i32x4.gt_s (v128.const i32x4 0 0 0 0))
)
)
"type mismatch"
)
(assert_invalid
(module
(func $i32x4.gt_s-arg-empty (result v128)
(i32x4.gt_s)
)
)
"type mismatch"
)
(assert_invalid
(module
(func $i32x4.gt_u-1st-arg-empty (result v128)
(i32x4.gt_u (v128.const i32x4 0 0 0 0))
)
)
"type mismatch"
)
(assert_invalid
(module
(func $i32x4.gt_u-arg-empty (result v128)
(i32x4.gt_u)
)
)
"type mismatch"
)
(assert_invalid
(module
(func $i32x4.ge_s-1st-arg-empty (result v128)
(i32x4.ge_s (v128.const i32x4 0 0 0 0))
)
)
"type mismatch"
)
(assert_invalid
(module
(func $i32x4.ge_s-arg-empty (result v128)
(i32x4.ge_s)
)
)
"type mismatch"
)
(assert_invalid
(module
(func $i32x4.ge_u-1st-arg-empty (result v128)
(i32x4.ge_u (v128.const i32x4 0 0 0 0))
)
)
"type mismatch"
)
(assert_invalid
(module
(func $i32x4.ge_u-arg-empty (result v128)
(i32x4.ge_u)
)
)
"type mismatch"
)
;; Unknown operators
(assert_malformed (module quote "(memory 1) (func (param $x v128) (param $y v128) (result v128) (i4x32.eq (local.get $x) (local.get $y)))") "unknown operator")
(assert_malformed (module quote "(memory 1) (func (param $x v128) (param $y v128) (result v128) (i4x32.ne (local.get $x) (local.get $y)))") "unknown operator")
(assert_malformed (module quote "(memory 1) (func (param $x v128) (param $y v128) (result v128) (i4x32.lt_s (local.get $x) (local.get $y)))") "unknown operator")
(assert_malformed (module quote "(memory 1) (func (param $x v128) (param $y v128) (result v128) (i4x32.lt_u (local.get $x) (local.get $y)))") "unknown operator")
(assert_malformed (module quote "(memory 1) (func (param $x v128) (param $y v128) (result v128) (i4x32.le_s (local.get $x) (local.get $y)))") "unknown operator")
(assert_malformed (module quote "(memory 1) (func (param $x v128) (param $y v128) (result v128) (i4x32.le_u (local.get $x) (local.get $y)))") "unknown operator")
(assert_malformed (module quote "(memory 1) (func (param $x v128) (param $y v128) (result v128) (i4x32.gt_s (local.get $x) (local.get $y)))") "unknown operator")
(assert_malformed (module quote "(memory 1) (func (param $x v128) (param $y v128) (result v128) (i4x32.gt_u (local.get $x) (local.get $y)))") "unknown operator")
(assert_malformed (module quote "(memory 1) (func (param $x v128) (param $y v128) (result v128) (i4x32.ge_s (local.get $x) (local.get $y)))") "unknown operator")
(assert_malformed (module quote "(memory 1) (func (param $x v128) (param $y v128) (result v128) (i4x32.ge_u (local.get $x) (local.get $y)))") "unknown operator")