404 lines
33 KiB
WebAssembly Text Format
404 lines
33 KiB
WebAssembly Text Format
;; Tests for i64x2 arithmetic operations on major boundary values and all special values.
|
|
|
|
|
|
(module
|
|
(func (export "i64x2.extmul_low_i32x4_s") (param v128 v128) (result v128) (i64x2.extmul_low_i32x4_s (local.get 0) (local.get 1)))
|
|
(func (export "i64x2.extmul_high_i32x4_s") (param v128 v128) (result v128) (i64x2.extmul_high_i32x4_s (local.get 0) (local.get 1)))
|
|
(func (export "i64x2.extmul_low_i32x4_u") (param v128 v128) (result v128) (i64x2.extmul_low_i32x4_u (local.get 0) (local.get 1)))
|
|
(func (export "i64x2.extmul_high_i32x4_u") (param v128 v128) (result v128) (i64x2.extmul_high_i32x4_u (local.get 0) (local.get 1)))
|
|
)
|
|
|
|
|
|
;; i64x2.extmul_low_i32x4_s
|
|
(assert_return (invoke "i64x2.extmul_low_i32x4_s" (v128.const i32x4 0 0 0 0)
|
|
(v128.const i32x4 0 0 0 0))
|
|
(v128.const i64x2 0 0))
|
|
(assert_return (invoke "i64x2.extmul_low_i32x4_s" (v128.const i32x4 0 0 0 0)
|
|
(v128.const i32x4 1 1 1 1))
|
|
(v128.const i64x2 0 0))
|
|
(assert_return (invoke "i64x2.extmul_low_i32x4_s" (v128.const i32x4 1 1 1 1)
|
|
(v128.const i32x4 1 1 1 1))
|
|
(v128.const i64x2 1 1))
|
|
(assert_return (invoke "i64x2.extmul_low_i32x4_s" (v128.const i32x4 0 0 0 0)
|
|
(v128.const i32x4 -1 -1 -1 -1))
|
|
(v128.const i64x2 0 0))
|
|
(assert_return (invoke "i64x2.extmul_low_i32x4_s" (v128.const i32x4 1 1 1 1)
|
|
(v128.const i32x4 -1 -1 -1 -1))
|
|
(v128.const i64x2 -1 -1))
|
|
(assert_return (invoke "i64x2.extmul_low_i32x4_s" (v128.const i32x4 -1 -1 -1 -1)
|
|
(v128.const i32x4 -1 -1 -1 -1))
|
|
(v128.const i64x2 1 1))
|
|
(assert_return (invoke "i64x2.extmul_low_i32x4_s" (v128.const i32x4 1073741823 1073741823 1073741823 1073741823)
|
|
(v128.const i32x4 1073741824 1073741824 1073741824 1073741824))
|
|
(v128.const i64x2 1152921503533105152 1152921503533105152))
|
|
(assert_return (invoke "i64x2.extmul_low_i32x4_s" (v128.const i32x4 1073741824 1073741824 1073741824 1073741824)
|
|
(v128.const i32x4 1073741824 1073741824 1073741824 1073741824))
|
|
(v128.const i64x2 1152921504606846976 1152921504606846976))
|
|
(assert_return (invoke "i64x2.extmul_low_i32x4_s" (v128.const i32x4 -1073741823 -1073741823 -1073741823 -1073741823)
|
|
(v128.const i32x4 -1073741824 -1073741824 -1073741824 -1073741824))
|
|
(v128.const i64x2 1152921503533105152 1152921503533105152))
|
|
(assert_return (invoke "i64x2.extmul_low_i32x4_s" (v128.const i32x4 -1073741824 -1073741824 -1073741824 -1073741824)
|
|
(v128.const i32x4 -1073741824 -1073741824 -1073741824 -1073741824))
|
|
(v128.const i64x2 1152921504606846976 1152921504606846976))
|
|
(assert_return (invoke "i64x2.extmul_low_i32x4_s" (v128.const i32x4 -1073741825 -1073741825 -1073741825 -1073741825)
|
|
(v128.const i32x4 -1073741824 -1073741824 -1073741824 -1073741824))
|
|
(v128.const i64x2 1152921505680588800 1152921505680588800))
|
|
(assert_return (invoke "i64x2.extmul_low_i32x4_s" (v128.const i32x4 2147483645 2147483645 2147483645 2147483645)
|
|
(v128.const i32x4 1 1 1 1))
|
|
(v128.const i64x2 2147483645 2147483645))
|
|
(assert_return (invoke "i64x2.extmul_low_i32x4_s" (v128.const i32x4 2147483646 2147483646 2147483646 2147483646)
|
|
(v128.const i32x4 1 1 1 1))
|
|
(v128.const i64x2 2147483646 2147483646))
|
|
(assert_return (invoke "i64x2.extmul_low_i32x4_s" (v128.const i32x4 2147483648 2147483648 2147483648 2147483648)
|
|
(v128.const i32x4 1 1 1 1))
|
|
(v128.const i64x2 -2147483648 -2147483648))
|
|
(assert_return (invoke "i64x2.extmul_low_i32x4_s" (v128.const i32x4 -2147483646 -2147483646 -2147483646 -2147483646)
|
|
(v128.const i32x4 -1 -1 -1 -1))
|
|
(v128.const i64x2 2147483646 2147483646))
|
|
(assert_return (invoke "i64x2.extmul_low_i32x4_s" (v128.const i32x4 -2147483647 -2147483647 -2147483647 -2147483647)
|
|
(v128.const i32x4 -1 -1 -1 -1))
|
|
(v128.const i64x2 2147483647 2147483647))
|
|
(assert_return (invoke "i64x2.extmul_low_i32x4_s" (v128.const i32x4 -2147483648 -2147483648 -2147483648 -2147483648)
|
|
(v128.const i32x4 -1 -1 -1 -1))
|
|
(v128.const i64x2 2147483648 2147483648))
|
|
(assert_return (invoke "i64x2.extmul_low_i32x4_s" (v128.const i32x4 2147483647 2147483647 2147483647 2147483647)
|
|
(v128.const i32x4 2147483647 2147483647 2147483647 2147483647))
|
|
(v128.const i64x2 4611686014132420609 4611686014132420609))
|
|
(assert_return (invoke "i64x2.extmul_low_i32x4_s" (v128.const i32x4 -2147483648 -2147483648 -2147483648 -2147483648)
|
|
(v128.const i32x4 -2147483648 -2147483648 -2147483648 -2147483648))
|
|
(v128.const i64x2 4611686018427387904 4611686018427387904))
|
|
(assert_return (invoke "i64x2.extmul_low_i32x4_s" (v128.const i32x4 -2147483648 -2147483648 -2147483648 -2147483648)
|
|
(v128.const i32x4 -2147483647 -2147483647 -2147483647 -2147483647))
|
|
(v128.const i64x2 4611686016279904256 4611686016279904256))
|
|
(assert_return (invoke "i64x2.extmul_low_i32x4_s" (v128.const i32x4 4294967295 4294967295 4294967295 4294967295)
|
|
(v128.const i32x4 0 0 0 0))
|
|
(v128.const i64x2 0 0))
|
|
(assert_return (invoke "i64x2.extmul_low_i32x4_s" (v128.const i32x4 4294967295 4294967295 4294967295 4294967295)
|
|
(v128.const i32x4 1 1 1 1))
|
|
(v128.const i64x2 -1 -1))
|
|
(assert_return (invoke "i64x2.extmul_low_i32x4_s" (v128.const i32x4 4294967295 4294967295 4294967295 4294967295)
|
|
(v128.const i32x4 -1 -1 -1 -1))
|
|
(v128.const i64x2 1 1))
|
|
(assert_return (invoke "i64x2.extmul_low_i32x4_s" (v128.const i32x4 4294967295 4294967295 4294967295 4294967295)
|
|
(v128.const i32x4 2147483647 2147483647 2147483647 2147483647))
|
|
(v128.const i64x2 -2147483647 -2147483647))
|
|
(assert_return (invoke "i64x2.extmul_low_i32x4_s" (v128.const i32x4 4294967295 4294967295 4294967295 4294967295)
|
|
(v128.const i32x4 -2147483648 -2147483648 -2147483648 -2147483648))
|
|
(v128.const i64x2 2147483648 2147483648))
|
|
(assert_return (invoke "i64x2.extmul_low_i32x4_s" (v128.const i32x4 4294967295 4294967295 4294967295 4294967295)
|
|
(v128.const i32x4 4294967295 4294967295 4294967295 4294967295))
|
|
(v128.const i64x2 1 1))
|
|
|
|
;; i64x2.extmul_high_i32x4_s
|
|
(assert_return (invoke "i64x2.extmul_high_i32x4_s" (v128.const i32x4 0 0 0 0)
|
|
(v128.const i32x4 0 0 0 0))
|
|
(v128.const i64x2 0 0))
|
|
(assert_return (invoke "i64x2.extmul_high_i32x4_s" (v128.const i32x4 0 0 0 0)
|
|
(v128.const i32x4 1 1 1 1))
|
|
(v128.const i64x2 0 0))
|
|
(assert_return (invoke "i64x2.extmul_high_i32x4_s" (v128.const i32x4 1 1 1 1)
|
|
(v128.const i32x4 1 1 1 1))
|
|
(v128.const i64x2 1 1))
|
|
(assert_return (invoke "i64x2.extmul_high_i32x4_s" (v128.const i32x4 0 0 0 0)
|
|
(v128.const i32x4 -1 -1 -1 -1))
|
|
(v128.const i64x2 0 0))
|
|
(assert_return (invoke "i64x2.extmul_high_i32x4_s" (v128.const i32x4 1 1 1 1)
|
|
(v128.const i32x4 -1 -1 -1 -1))
|
|
(v128.const i64x2 -1 -1))
|
|
(assert_return (invoke "i64x2.extmul_high_i32x4_s" (v128.const i32x4 -1 -1 -1 -1)
|
|
(v128.const i32x4 -1 -1 -1 -1))
|
|
(v128.const i64x2 1 1))
|
|
(assert_return (invoke "i64x2.extmul_high_i32x4_s" (v128.const i32x4 1073741823 1073741823 1073741823 1073741823)
|
|
(v128.const i32x4 1073741824 1073741824 1073741824 1073741824))
|
|
(v128.const i64x2 1152921503533105152 1152921503533105152))
|
|
(assert_return (invoke "i64x2.extmul_high_i32x4_s" (v128.const i32x4 1073741824 1073741824 1073741824 1073741824)
|
|
(v128.const i32x4 1073741824 1073741824 1073741824 1073741824))
|
|
(v128.const i64x2 1152921504606846976 1152921504606846976))
|
|
(assert_return (invoke "i64x2.extmul_high_i32x4_s" (v128.const i32x4 -1073741823 -1073741823 -1073741823 -1073741823)
|
|
(v128.const i32x4 -1073741824 -1073741824 -1073741824 -1073741824))
|
|
(v128.const i64x2 1152921503533105152 1152921503533105152))
|
|
(assert_return (invoke "i64x2.extmul_high_i32x4_s" (v128.const i32x4 -1073741824 -1073741824 -1073741824 -1073741824)
|
|
(v128.const i32x4 -1073741824 -1073741824 -1073741824 -1073741824))
|
|
(v128.const i64x2 1152921504606846976 1152921504606846976))
|
|
(assert_return (invoke "i64x2.extmul_high_i32x4_s" (v128.const i32x4 -1073741825 -1073741825 -1073741825 -1073741825)
|
|
(v128.const i32x4 -1073741824 -1073741824 -1073741824 -1073741824))
|
|
(v128.const i64x2 1152921505680588800 1152921505680588800))
|
|
(assert_return (invoke "i64x2.extmul_high_i32x4_s" (v128.const i32x4 2147483645 2147483645 2147483645 2147483645)
|
|
(v128.const i32x4 1 1 1 1))
|
|
(v128.const i64x2 2147483645 2147483645))
|
|
(assert_return (invoke "i64x2.extmul_high_i32x4_s" (v128.const i32x4 2147483646 2147483646 2147483646 2147483646)
|
|
(v128.const i32x4 1 1 1 1))
|
|
(v128.const i64x2 2147483646 2147483646))
|
|
(assert_return (invoke "i64x2.extmul_high_i32x4_s" (v128.const i32x4 2147483648 2147483648 2147483648 2147483648)
|
|
(v128.const i32x4 1 1 1 1))
|
|
(v128.const i64x2 -2147483648 -2147483648))
|
|
(assert_return (invoke "i64x2.extmul_high_i32x4_s" (v128.const i32x4 -2147483646 -2147483646 -2147483646 -2147483646)
|
|
(v128.const i32x4 -1 -1 -1 -1))
|
|
(v128.const i64x2 2147483646 2147483646))
|
|
(assert_return (invoke "i64x2.extmul_high_i32x4_s" (v128.const i32x4 -2147483647 -2147483647 -2147483647 -2147483647)
|
|
(v128.const i32x4 -1 -1 -1 -1))
|
|
(v128.const i64x2 2147483647 2147483647))
|
|
(assert_return (invoke "i64x2.extmul_high_i32x4_s" (v128.const i32x4 -2147483648 -2147483648 -2147483648 -2147483648)
|
|
(v128.const i32x4 -1 -1 -1 -1))
|
|
(v128.const i64x2 2147483648 2147483648))
|
|
(assert_return (invoke "i64x2.extmul_high_i32x4_s" (v128.const i32x4 2147483647 2147483647 2147483647 2147483647)
|
|
(v128.const i32x4 2147483647 2147483647 2147483647 2147483647))
|
|
(v128.const i64x2 4611686014132420609 4611686014132420609))
|
|
(assert_return (invoke "i64x2.extmul_high_i32x4_s" (v128.const i32x4 -2147483648 -2147483648 -2147483648 -2147483648)
|
|
(v128.const i32x4 -2147483648 -2147483648 -2147483648 -2147483648))
|
|
(v128.const i64x2 4611686018427387904 4611686018427387904))
|
|
(assert_return (invoke "i64x2.extmul_high_i32x4_s" (v128.const i32x4 -2147483648 -2147483648 -2147483648 -2147483648)
|
|
(v128.const i32x4 -2147483647 -2147483647 -2147483647 -2147483647))
|
|
(v128.const i64x2 4611686016279904256 4611686016279904256))
|
|
(assert_return (invoke "i64x2.extmul_high_i32x4_s" (v128.const i32x4 4294967295 4294967295 4294967295 4294967295)
|
|
(v128.const i32x4 0 0 0 0))
|
|
(v128.const i64x2 0 0))
|
|
(assert_return (invoke "i64x2.extmul_high_i32x4_s" (v128.const i32x4 4294967295 4294967295 4294967295 4294967295)
|
|
(v128.const i32x4 1 1 1 1))
|
|
(v128.const i64x2 -1 -1))
|
|
(assert_return (invoke "i64x2.extmul_high_i32x4_s" (v128.const i32x4 4294967295 4294967295 4294967295 4294967295)
|
|
(v128.const i32x4 -1 -1 -1 -1))
|
|
(v128.const i64x2 1 1))
|
|
(assert_return (invoke "i64x2.extmul_high_i32x4_s" (v128.const i32x4 4294967295 4294967295 4294967295 4294967295)
|
|
(v128.const i32x4 2147483647 2147483647 2147483647 2147483647))
|
|
(v128.const i64x2 -2147483647 -2147483647))
|
|
(assert_return (invoke "i64x2.extmul_high_i32x4_s" (v128.const i32x4 4294967295 4294967295 4294967295 4294967295)
|
|
(v128.const i32x4 -2147483648 -2147483648 -2147483648 -2147483648))
|
|
(v128.const i64x2 2147483648 2147483648))
|
|
(assert_return (invoke "i64x2.extmul_high_i32x4_s" (v128.const i32x4 4294967295 4294967295 4294967295 4294967295)
|
|
(v128.const i32x4 4294967295 4294967295 4294967295 4294967295))
|
|
(v128.const i64x2 1 1))
|
|
|
|
;; i64x2.extmul_low_i32x4_u
|
|
(assert_return (invoke "i64x2.extmul_low_i32x4_u" (v128.const i32x4 0 0 0 0)
|
|
(v128.const i32x4 0 0 0 0))
|
|
(v128.const i64x2 0 0))
|
|
(assert_return (invoke "i64x2.extmul_low_i32x4_u" (v128.const i32x4 0 0 0 0)
|
|
(v128.const i32x4 1 1 1 1))
|
|
(v128.const i64x2 0 0))
|
|
(assert_return (invoke "i64x2.extmul_low_i32x4_u" (v128.const i32x4 1 1 1 1)
|
|
(v128.const i32x4 1 1 1 1))
|
|
(v128.const i64x2 1 1))
|
|
(assert_return (invoke "i64x2.extmul_low_i32x4_u" (v128.const i32x4 0 0 0 0)
|
|
(v128.const i32x4 -1 -1 -1 -1))
|
|
(v128.const i64x2 0 0))
|
|
(assert_return (invoke "i64x2.extmul_low_i32x4_u" (v128.const i32x4 1 1 1 1)
|
|
(v128.const i32x4 -1 -1 -1 -1))
|
|
(v128.const i64x2 4294967295 4294967295))
|
|
(assert_return (invoke "i64x2.extmul_low_i32x4_u" (v128.const i32x4 -1 -1 -1 -1)
|
|
(v128.const i32x4 -1 -1 -1 -1))
|
|
(v128.const i64x2 -8589934591 -8589934591))
|
|
(assert_return (invoke "i64x2.extmul_low_i32x4_u" (v128.const i32x4 1073741823 1073741823 1073741823 1073741823)
|
|
(v128.const i32x4 1073741824 1073741824 1073741824 1073741824))
|
|
(v128.const i64x2 1152921503533105152 1152921503533105152))
|
|
(assert_return (invoke "i64x2.extmul_low_i32x4_u" (v128.const i32x4 1073741824 1073741824 1073741824 1073741824)
|
|
(v128.const i32x4 1073741824 1073741824 1073741824 1073741824))
|
|
(v128.const i64x2 1152921504606846976 1152921504606846976))
|
|
(assert_return (invoke "i64x2.extmul_low_i32x4_u" (v128.const i32x4 -1073741823 -1073741823 -1073741823 -1073741823)
|
|
(v128.const i32x4 -1073741824 -1073741824 -1073741824 -1073741824))
|
|
(v128.const i64x2 -8070450529026703360 -8070450529026703360))
|
|
(assert_return (invoke "i64x2.extmul_low_i32x4_u" (v128.const i32x4 -1073741824 -1073741824 -1073741824 -1073741824)
|
|
(v128.const i32x4 -1073741824 -1073741824 -1073741824 -1073741824))
|
|
(v128.const i64x2 -8070450532247928832 -8070450532247928832))
|
|
(assert_return (invoke "i64x2.extmul_low_i32x4_u" (v128.const i32x4 -1073741825 -1073741825 -1073741825 -1073741825)
|
|
(v128.const i32x4 -1073741824 -1073741824 -1073741824 -1073741824))
|
|
(v128.const i64x2 -8070450535469154304 -8070450535469154304))
|
|
(assert_return (invoke "i64x2.extmul_low_i32x4_u" (v128.const i32x4 2147483645 2147483645 2147483645 2147483645)
|
|
(v128.const i32x4 1 1 1 1))
|
|
(v128.const i64x2 2147483645 2147483645))
|
|
(assert_return (invoke "i64x2.extmul_low_i32x4_u" (v128.const i32x4 2147483646 2147483646 2147483646 2147483646)
|
|
(v128.const i32x4 1 1 1 1))
|
|
(v128.const i64x2 2147483646 2147483646))
|
|
(assert_return (invoke "i64x2.extmul_low_i32x4_u" (v128.const i32x4 2147483648 2147483648 2147483648 2147483648)
|
|
(v128.const i32x4 1 1 1 1))
|
|
(v128.const i64x2 2147483648 2147483648))
|
|
(assert_return (invoke "i64x2.extmul_low_i32x4_u" (v128.const i32x4 -2147483646 -2147483646 -2147483646 -2147483646)
|
|
(v128.const i32x4 -1 -1 -1 -1))
|
|
(v128.const i64x2 -9223372030412324866 -9223372030412324866))
|
|
(assert_return (invoke "i64x2.extmul_low_i32x4_u" (v128.const i32x4 -2147483647 -2147483647 -2147483647 -2147483647)
|
|
(v128.const i32x4 -1 -1 -1 -1))
|
|
(v128.const i64x2 -9223372034707292161 -9223372034707292161))
|
|
(assert_return (invoke "i64x2.extmul_low_i32x4_u" (v128.const i32x4 -2147483648 -2147483648 -2147483648 -2147483648)
|
|
(v128.const i32x4 -1 -1 -1 -1))
|
|
(v128.const i64x2 9223372034707292160 9223372034707292160))
|
|
(assert_return (invoke "i64x2.extmul_low_i32x4_u" (v128.const i32x4 2147483647 2147483647 2147483647 2147483647)
|
|
(v128.const i32x4 2147483647 2147483647 2147483647 2147483647))
|
|
(v128.const i64x2 4611686014132420609 4611686014132420609))
|
|
(assert_return (invoke "i64x2.extmul_low_i32x4_u" (v128.const i32x4 -2147483648 -2147483648 -2147483648 -2147483648)
|
|
(v128.const i32x4 -2147483648 -2147483648 -2147483648 -2147483648))
|
|
(v128.const i64x2 4611686018427387904 4611686018427387904))
|
|
(assert_return (invoke "i64x2.extmul_low_i32x4_u" (v128.const i32x4 -2147483648 -2147483648 -2147483648 -2147483648)
|
|
(v128.const i32x4 -2147483647 -2147483647 -2147483647 -2147483647))
|
|
(v128.const i64x2 4611686020574871552 4611686020574871552))
|
|
(assert_return (invoke "i64x2.extmul_low_i32x4_u" (v128.const i32x4 4294967295 4294967295 4294967295 4294967295)
|
|
(v128.const i32x4 0 0 0 0))
|
|
(v128.const i64x2 0 0))
|
|
(assert_return (invoke "i64x2.extmul_low_i32x4_u" (v128.const i32x4 4294967295 4294967295 4294967295 4294967295)
|
|
(v128.const i32x4 1 1 1 1))
|
|
(v128.const i64x2 4294967295 4294967295))
|
|
(assert_return (invoke "i64x2.extmul_low_i32x4_u" (v128.const i32x4 4294967295 4294967295 4294967295 4294967295)
|
|
(v128.const i32x4 -1 -1 -1 -1))
|
|
(v128.const i64x2 -8589934591 -8589934591))
|
|
(assert_return (invoke "i64x2.extmul_low_i32x4_u" (v128.const i32x4 4294967295 4294967295 4294967295 4294967295)
|
|
(v128.const i32x4 2147483647 2147483647 2147483647 2147483647))
|
|
(v128.const i64x2 9223372030412324865 9223372030412324865))
|
|
(assert_return (invoke "i64x2.extmul_low_i32x4_u" (v128.const i32x4 4294967295 4294967295 4294967295 4294967295)
|
|
(v128.const i32x4 -2147483648 -2147483648 -2147483648 -2147483648))
|
|
(v128.const i64x2 9223372034707292160 9223372034707292160))
|
|
(assert_return (invoke "i64x2.extmul_low_i32x4_u" (v128.const i32x4 4294967295 4294967295 4294967295 4294967295)
|
|
(v128.const i32x4 4294967295 4294967295 4294967295 4294967295))
|
|
(v128.const i64x2 -8589934591 -8589934591))
|
|
|
|
;; i64x2.extmul_high_i32x4_u
|
|
(assert_return (invoke "i64x2.extmul_high_i32x4_u" (v128.const i32x4 0 0 0 0)
|
|
(v128.const i32x4 0 0 0 0))
|
|
(v128.const i64x2 0 0))
|
|
(assert_return (invoke "i64x2.extmul_high_i32x4_u" (v128.const i32x4 0 0 0 0)
|
|
(v128.const i32x4 1 1 1 1))
|
|
(v128.const i64x2 0 0))
|
|
(assert_return (invoke "i64x2.extmul_high_i32x4_u" (v128.const i32x4 1 1 1 1)
|
|
(v128.const i32x4 1 1 1 1))
|
|
(v128.const i64x2 1 1))
|
|
(assert_return (invoke "i64x2.extmul_high_i32x4_u" (v128.const i32x4 0 0 0 0)
|
|
(v128.const i32x4 -1 -1 -1 -1))
|
|
(v128.const i64x2 0 0))
|
|
(assert_return (invoke "i64x2.extmul_high_i32x4_u" (v128.const i32x4 1 1 1 1)
|
|
(v128.const i32x4 -1 -1 -1 -1))
|
|
(v128.const i64x2 4294967295 4294967295))
|
|
(assert_return (invoke "i64x2.extmul_high_i32x4_u" (v128.const i32x4 -1 -1 -1 -1)
|
|
(v128.const i32x4 -1 -1 -1 -1))
|
|
(v128.const i64x2 -8589934591 -8589934591))
|
|
(assert_return (invoke "i64x2.extmul_high_i32x4_u" (v128.const i32x4 1073741823 1073741823 1073741823 1073741823)
|
|
(v128.const i32x4 1073741824 1073741824 1073741824 1073741824))
|
|
(v128.const i64x2 1152921503533105152 1152921503533105152))
|
|
(assert_return (invoke "i64x2.extmul_high_i32x4_u" (v128.const i32x4 1073741824 1073741824 1073741824 1073741824)
|
|
(v128.const i32x4 1073741824 1073741824 1073741824 1073741824))
|
|
(v128.const i64x2 1152921504606846976 1152921504606846976))
|
|
(assert_return (invoke "i64x2.extmul_high_i32x4_u" (v128.const i32x4 -1073741823 -1073741823 -1073741823 -1073741823)
|
|
(v128.const i32x4 -1073741824 -1073741824 -1073741824 -1073741824))
|
|
(v128.const i64x2 -8070450529026703360 -8070450529026703360))
|
|
(assert_return (invoke "i64x2.extmul_high_i32x4_u" (v128.const i32x4 -1073741824 -1073741824 -1073741824 -1073741824)
|
|
(v128.const i32x4 -1073741824 -1073741824 -1073741824 -1073741824))
|
|
(v128.const i64x2 -8070450532247928832 -8070450532247928832))
|
|
(assert_return (invoke "i64x2.extmul_high_i32x4_u" (v128.const i32x4 -1073741825 -1073741825 -1073741825 -1073741825)
|
|
(v128.const i32x4 -1073741824 -1073741824 -1073741824 -1073741824))
|
|
(v128.const i64x2 -8070450535469154304 -8070450535469154304))
|
|
(assert_return (invoke "i64x2.extmul_high_i32x4_u" (v128.const i32x4 2147483645 2147483645 2147483645 2147483645)
|
|
(v128.const i32x4 1 1 1 1))
|
|
(v128.const i64x2 2147483645 2147483645))
|
|
(assert_return (invoke "i64x2.extmul_high_i32x4_u" (v128.const i32x4 2147483646 2147483646 2147483646 2147483646)
|
|
(v128.const i32x4 1 1 1 1))
|
|
(v128.const i64x2 2147483646 2147483646))
|
|
(assert_return (invoke "i64x2.extmul_high_i32x4_u" (v128.const i32x4 2147483648 2147483648 2147483648 2147483648)
|
|
(v128.const i32x4 1 1 1 1))
|
|
(v128.const i64x2 2147483648 2147483648))
|
|
(assert_return (invoke "i64x2.extmul_high_i32x4_u" (v128.const i32x4 -2147483646 -2147483646 -2147483646 -2147483646)
|
|
(v128.const i32x4 -1 -1 -1 -1))
|
|
(v128.const i64x2 -9223372030412324866 -9223372030412324866))
|
|
(assert_return (invoke "i64x2.extmul_high_i32x4_u" (v128.const i32x4 -2147483647 -2147483647 -2147483647 -2147483647)
|
|
(v128.const i32x4 -1 -1 -1 -1))
|
|
(v128.const i64x2 -9223372034707292161 -9223372034707292161))
|
|
(assert_return (invoke "i64x2.extmul_high_i32x4_u" (v128.const i32x4 -2147483648 -2147483648 -2147483648 -2147483648)
|
|
(v128.const i32x4 -1 -1 -1 -1))
|
|
(v128.const i64x2 9223372034707292160 9223372034707292160))
|
|
(assert_return (invoke "i64x2.extmul_high_i32x4_u" (v128.const i32x4 2147483647 2147483647 2147483647 2147483647)
|
|
(v128.const i32x4 2147483647 2147483647 2147483647 2147483647))
|
|
(v128.const i64x2 4611686014132420609 4611686014132420609))
|
|
(assert_return (invoke "i64x2.extmul_high_i32x4_u" (v128.const i32x4 -2147483648 -2147483648 -2147483648 -2147483648)
|
|
(v128.const i32x4 -2147483648 -2147483648 -2147483648 -2147483648))
|
|
(v128.const i64x2 4611686018427387904 4611686018427387904))
|
|
(assert_return (invoke "i64x2.extmul_high_i32x4_u" (v128.const i32x4 -2147483648 -2147483648 -2147483648 -2147483648)
|
|
(v128.const i32x4 -2147483647 -2147483647 -2147483647 -2147483647))
|
|
(v128.const i64x2 4611686020574871552 4611686020574871552))
|
|
(assert_return (invoke "i64x2.extmul_high_i32x4_u" (v128.const i32x4 4294967295 4294967295 4294967295 4294967295)
|
|
(v128.const i32x4 0 0 0 0))
|
|
(v128.const i64x2 0 0))
|
|
(assert_return (invoke "i64x2.extmul_high_i32x4_u" (v128.const i32x4 4294967295 4294967295 4294967295 4294967295)
|
|
(v128.const i32x4 1 1 1 1))
|
|
(v128.const i64x2 4294967295 4294967295))
|
|
(assert_return (invoke "i64x2.extmul_high_i32x4_u" (v128.const i32x4 4294967295 4294967295 4294967295 4294967295)
|
|
(v128.const i32x4 -1 -1 -1 -1))
|
|
(v128.const i64x2 -8589934591 -8589934591))
|
|
(assert_return (invoke "i64x2.extmul_high_i32x4_u" (v128.const i32x4 4294967295 4294967295 4294967295 4294967295)
|
|
(v128.const i32x4 2147483647 2147483647 2147483647 2147483647))
|
|
(v128.const i64x2 9223372030412324865 9223372030412324865))
|
|
(assert_return (invoke "i64x2.extmul_high_i32x4_u" (v128.const i32x4 4294967295 4294967295 4294967295 4294967295)
|
|
(v128.const i32x4 -2147483648 -2147483648 -2147483648 -2147483648))
|
|
(v128.const i64x2 9223372034707292160 9223372034707292160))
|
|
(assert_return (invoke "i64x2.extmul_high_i32x4_u" (v128.const i32x4 4294967295 4294967295 4294967295 4294967295)
|
|
(v128.const i32x4 4294967295 4294967295 4294967295 4294967295))
|
|
(v128.const i64x2 -8589934591 -8589934591))
|
|
|
|
;; type check
|
|
(assert_invalid (module (func (result v128) (i64x2.extmul_low_i32x4_s (i32.const 0) (f32.const 0.0)))) "type mismatch")
|
|
(assert_invalid (module (func (result v128) (i64x2.extmul_high_i32x4_s (i32.const 0) (f32.const 0.0)))) "type mismatch")
|
|
(assert_invalid (module (func (result v128) (i64x2.extmul_low_i32x4_u (i32.const 0) (f32.const 0.0)))) "type mismatch")
|
|
(assert_invalid (module (func (result v128) (i64x2.extmul_high_i32x4_u (i32.const 0) (f32.const 0.0)))) "type mismatch")
|
|
|
|
;; Test operation with empty argument
|
|
|
|
(assert_invalid
|
|
(module
|
|
(func $i64x2.extmul_low_i32x4_s-1st-arg-empty (result v128)
|
|
(i64x2.extmul_low_i32x4_s (v128.const i64x2 0 0))
|
|
)
|
|
)
|
|
"type mismatch"
|
|
)
|
|
(assert_invalid
|
|
(module
|
|
(func $i64x2.extmul_low_i32x4_s-arg-empty (result v128)
|
|
(i64x2.extmul_low_i32x4_s)
|
|
)
|
|
)
|
|
"type mismatch"
|
|
)
|
|
(assert_invalid
|
|
(module
|
|
(func $i64x2.extmul_high_i32x4_s-1st-arg-empty (result v128)
|
|
(i64x2.extmul_high_i32x4_s (v128.const i64x2 0 0))
|
|
)
|
|
)
|
|
"type mismatch"
|
|
)
|
|
(assert_invalid
|
|
(module
|
|
(func $i64x2.extmul_high_i32x4_s-arg-empty (result v128)
|
|
(i64x2.extmul_high_i32x4_s)
|
|
)
|
|
)
|
|
"type mismatch"
|
|
)
|
|
(assert_invalid
|
|
(module
|
|
(func $i64x2.extmul_low_i32x4_u-1st-arg-empty (result v128)
|
|
(i64x2.extmul_low_i32x4_u (v128.const i64x2 0 0))
|
|
)
|
|
)
|
|
"type mismatch"
|
|
)
|
|
(assert_invalid
|
|
(module
|
|
(func $i64x2.extmul_low_i32x4_u-arg-empty (result v128)
|
|
(i64x2.extmul_low_i32x4_u)
|
|
)
|
|
)
|
|
"type mismatch"
|
|
)
|
|
(assert_invalid
|
|
(module
|
|
(func $i64x2.extmul_high_i32x4_u-1st-arg-empty (result v128)
|
|
(i64x2.extmul_high_i32x4_u (v128.const i64x2 0 0))
|
|
)
|
|
)
|
|
"type mismatch"
|
|
)
|
|
(assert_invalid
|
|
(module
|
|
(func $i64x2.extmul_high_i32x4_u-arg-empty (result v128)
|
|
(i64x2.extmul_high_i32x4_u)
|
|
)
|
|
)
|
|
"type mismatch"
|
|
)
|
|
|