...
1;; Tests for i64x2 arithmetic operations on major boundary values and all special values.
2
3
4(module
5 (func (export "i64x2.extmul_low_i32x4_s") (param v128 v128) (result v128) (i64x2.extmul_low_i32x4_s (local.get 0) (local.get 1)))
6 (func (export "i64x2.extmul_high_i32x4_s") (param v128 v128) (result v128) (i64x2.extmul_high_i32x4_s (local.get 0) (local.get 1)))
7 (func (export "i64x2.extmul_low_i32x4_u") (param v128 v128) (result v128) (i64x2.extmul_low_i32x4_u (local.get 0) (local.get 1)))
8 (func (export "i64x2.extmul_high_i32x4_u") (param v128 v128) (result v128) (i64x2.extmul_high_i32x4_u (local.get 0) (local.get 1)))
9)
10
11
12;; i64x2.extmul_low_i32x4_s
13(assert_return (invoke "i64x2.extmul_low_i32x4_s" (v128.const i32x4 0 0 0 0)
14 (v128.const i32x4 0 0 0 0))
15 (v128.const i64x2 0 0))
16(assert_return (invoke "i64x2.extmul_low_i32x4_s" (v128.const i32x4 0 0 0 0)
17 (v128.const i32x4 1 1 1 1))
18 (v128.const i64x2 0 0))
19(assert_return (invoke "i64x2.extmul_low_i32x4_s" (v128.const i32x4 1 1 1 1)
20 (v128.const i32x4 1 1 1 1))
21 (v128.const i64x2 1 1))
22(assert_return (invoke "i64x2.extmul_low_i32x4_s" (v128.const i32x4 0 0 0 0)
23 (v128.const i32x4 -1 -1 -1 -1))
24 (v128.const i64x2 0 0))
25(assert_return (invoke "i64x2.extmul_low_i32x4_s" (v128.const i32x4 1 1 1 1)
26 (v128.const i32x4 -1 -1 -1 -1))
27 (v128.const i64x2 -1 -1))
28(assert_return (invoke "i64x2.extmul_low_i32x4_s" (v128.const i32x4 -1 -1 -1 -1)
29 (v128.const i32x4 -1 -1 -1 -1))
30 (v128.const i64x2 1 1))
31(assert_return (invoke "i64x2.extmul_low_i32x4_s" (v128.const i32x4 1073741823 1073741823 1073741823 1073741823)
32 (v128.const i32x4 1073741824 1073741824 1073741824 1073741824))
33 (v128.const i64x2 1152921503533105152 1152921503533105152))
34(assert_return (invoke "i64x2.extmul_low_i32x4_s" (v128.const i32x4 1073741824 1073741824 1073741824 1073741824)
35 (v128.const i32x4 1073741824 1073741824 1073741824 1073741824))
36 (v128.const i64x2 1152921504606846976 1152921504606846976))
37(assert_return (invoke "i64x2.extmul_low_i32x4_s" (v128.const i32x4 -1073741823 -1073741823 -1073741823 -1073741823)
38 (v128.const i32x4 -1073741824 -1073741824 -1073741824 -1073741824))
39 (v128.const i64x2 1152921503533105152 1152921503533105152))
40(assert_return (invoke "i64x2.extmul_low_i32x4_s" (v128.const i32x4 -1073741824 -1073741824 -1073741824 -1073741824)
41 (v128.const i32x4 -1073741824 -1073741824 -1073741824 -1073741824))
42 (v128.const i64x2 1152921504606846976 1152921504606846976))
43(assert_return (invoke "i64x2.extmul_low_i32x4_s" (v128.const i32x4 -1073741825 -1073741825 -1073741825 -1073741825)
44 (v128.const i32x4 -1073741824 -1073741824 -1073741824 -1073741824))
45 (v128.const i64x2 1152921505680588800 1152921505680588800))
46(assert_return (invoke "i64x2.extmul_low_i32x4_s" (v128.const i32x4 2147483645 2147483645 2147483645 2147483645)
47 (v128.const i32x4 1 1 1 1))
48 (v128.const i64x2 2147483645 2147483645))
49(assert_return (invoke "i64x2.extmul_low_i32x4_s" (v128.const i32x4 2147483646 2147483646 2147483646 2147483646)
50 (v128.const i32x4 1 1 1 1))
51 (v128.const i64x2 2147483646 2147483646))
52(assert_return (invoke "i64x2.extmul_low_i32x4_s" (v128.const i32x4 2147483648 2147483648 2147483648 2147483648)
53 (v128.const i32x4 1 1 1 1))
54 (v128.const i64x2 -2147483648 -2147483648))
55(assert_return (invoke "i64x2.extmul_low_i32x4_s" (v128.const i32x4 -2147483646 -2147483646 -2147483646 -2147483646)
56 (v128.const i32x4 -1 -1 -1 -1))
57 (v128.const i64x2 2147483646 2147483646))
58(assert_return (invoke "i64x2.extmul_low_i32x4_s" (v128.const i32x4 -2147483647 -2147483647 -2147483647 -2147483647)
59 (v128.const i32x4 -1 -1 -1 -1))
60 (v128.const i64x2 2147483647 2147483647))
61(assert_return (invoke "i64x2.extmul_low_i32x4_s" (v128.const i32x4 -2147483648 -2147483648 -2147483648 -2147483648)
62 (v128.const i32x4 -1 -1 -1 -1))
63 (v128.const i64x2 2147483648 2147483648))
64(assert_return (invoke "i64x2.extmul_low_i32x4_s" (v128.const i32x4 2147483647 2147483647 2147483647 2147483647)
65 (v128.const i32x4 2147483647 2147483647 2147483647 2147483647))
66 (v128.const i64x2 4611686014132420609 4611686014132420609))
67(assert_return (invoke "i64x2.extmul_low_i32x4_s" (v128.const i32x4 -2147483648 -2147483648 -2147483648 -2147483648)
68 (v128.const i32x4 -2147483648 -2147483648 -2147483648 -2147483648))
69 (v128.const i64x2 4611686018427387904 4611686018427387904))
70(assert_return (invoke "i64x2.extmul_low_i32x4_s" (v128.const i32x4 -2147483648 -2147483648 -2147483648 -2147483648)
71 (v128.const i32x4 -2147483647 -2147483647 -2147483647 -2147483647))
72 (v128.const i64x2 4611686016279904256 4611686016279904256))
73(assert_return (invoke "i64x2.extmul_low_i32x4_s" (v128.const i32x4 4294967295 4294967295 4294967295 4294967295)
74 (v128.const i32x4 0 0 0 0))
75 (v128.const i64x2 0 0))
76(assert_return (invoke "i64x2.extmul_low_i32x4_s" (v128.const i32x4 4294967295 4294967295 4294967295 4294967295)
77 (v128.const i32x4 1 1 1 1))
78 (v128.const i64x2 -1 -1))
79(assert_return (invoke "i64x2.extmul_low_i32x4_s" (v128.const i32x4 4294967295 4294967295 4294967295 4294967295)
80 (v128.const i32x4 -1 -1 -1 -1))
81 (v128.const i64x2 1 1))
82(assert_return (invoke "i64x2.extmul_low_i32x4_s" (v128.const i32x4 4294967295 4294967295 4294967295 4294967295)
83 (v128.const i32x4 2147483647 2147483647 2147483647 2147483647))
84 (v128.const i64x2 -2147483647 -2147483647))
85(assert_return (invoke "i64x2.extmul_low_i32x4_s" (v128.const i32x4 4294967295 4294967295 4294967295 4294967295)
86 (v128.const i32x4 -2147483648 -2147483648 -2147483648 -2147483648))
87 (v128.const i64x2 2147483648 2147483648))
88(assert_return (invoke "i64x2.extmul_low_i32x4_s" (v128.const i32x4 4294967295 4294967295 4294967295 4294967295)
89 (v128.const i32x4 4294967295 4294967295 4294967295 4294967295))
90 (v128.const i64x2 1 1))
91
92;; i64x2.extmul_high_i32x4_s
93(assert_return (invoke "i64x2.extmul_high_i32x4_s" (v128.const i32x4 0 0 0 0)
94 (v128.const i32x4 0 0 0 0))
95 (v128.const i64x2 0 0))
96(assert_return (invoke "i64x2.extmul_high_i32x4_s" (v128.const i32x4 0 0 0 0)
97 (v128.const i32x4 1 1 1 1))
98 (v128.const i64x2 0 0))
99(assert_return (invoke "i64x2.extmul_high_i32x4_s" (v128.const i32x4 1 1 1 1)
100 (v128.const i32x4 1 1 1 1))
101 (v128.const i64x2 1 1))
102(assert_return (invoke "i64x2.extmul_high_i32x4_s" (v128.const i32x4 0 0 0 0)
103 (v128.const i32x4 -1 -1 -1 -1))
104 (v128.const i64x2 0 0))
105(assert_return (invoke "i64x2.extmul_high_i32x4_s" (v128.const i32x4 1 1 1 1)
106 (v128.const i32x4 -1 -1 -1 -1))
107 (v128.const i64x2 -1 -1))
108(assert_return (invoke "i64x2.extmul_high_i32x4_s" (v128.const i32x4 -1 -1 -1 -1)
109 (v128.const i32x4 -1 -1 -1 -1))
110 (v128.const i64x2 1 1))
111(assert_return (invoke "i64x2.extmul_high_i32x4_s" (v128.const i32x4 1073741823 1073741823 1073741823 1073741823)
112 (v128.const i32x4 1073741824 1073741824 1073741824 1073741824))
113 (v128.const i64x2 1152921503533105152 1152921503533105152))
114(assert_return (invoke "i64x2.extmul_high_i32x4_s" (v128.const i32x4 1073741824 1073741824 1073741824 1073741824)
115 (v128.const i32x4 1073741824 1073741824 1073741824 1073741824))
116 (v128.const i64x2 1152921504606846976 1152921504606846976))
117(assert_return (invoke "i64x2.extmul_high_i32x4_s" (v128.const i32x4 -1073741823 -1073741823 -1073741823 -1073741823)
118 (v128.const i32x4 -1073741824 -1073741824 -1073741824 -1073741824))
119 (v128.const i64x2 1152921503533105152 1152921503533105152))
120(assert_return (invoke "i64x2.extmul_high_i32x4_s" (v128.const i32x4 -1073741824 -1073741824 -1073741824 -1073741824)
121 (v128.const i32x4 -1073741824 -1073741824 -1073741824 -1073741824))
122 (v128.const i64x2 1152921504606846976 1152921504606846976))
123(assert_return (invoke "i64x2.extmul_high_i32x4_s" (v128.const i32x4 -1073741825 -1073741825 -1073741825 -1073741825)
124 (v128.const i32x4 -1073741824 -1073741824 -1073741824 -1073741824))
125 (v128.const i64x2 1152921505680588800 1152921505680588800))
126(assert_return (invoke "i64x2.extmul_high_i32x4_s" (v128.const i32x4 2147483645 2147483645 2147483645 2147483645)
127 (v128.const i32x4 1 1 1 1))
128 (v128.const i64x2 2147483645 2147483645))
129(assert_return (invoke "i64x2.extmul_high_i32x4_s" (v128.const i32x4 2147483646 2147483646 2147483646 2147483646)
130 (v128.const i32x4 1 1 1 1))
131 (v128.const i64x2 2147483646 2147483646))
132(assert_return (invoke "i64x2.extmul_high_i32x4_s" (v128.const i32x4 2147483648 2147483648 2147483648 2147483648)
133 (v128.const i32x4 1 1 1 1))
134 (v128.const i64x2 -2147483648 -2147483648))
135(assert_return (invoke "i64x2.extmul_high_i32x4_s" (v128.const i32x4 -2147483646 -2147483646 -2147483646 -2147483646)
136 (v128.const i32x4 -1 -1 -1 -1))
137 (v128.const i64x2 2147483646 2147483646))
138(assert_return (invoke "i64x2.extmul_high_i32x4_s" (v128.const i32x4 -2147483647 -2147483647 -2147483647 -2147483647)
139 (v128.const i32x4 -1 -1 -1 -1))
140 (v128.const i64x2 2147483647 2147483647))
141(assert_return (invoke "i64x2.extmul_high_i32x4_s" (v128.const i32x4 -2147483648 -2147483648 -2147483648 -2147483648)
142 (v128.const i32x4 -1 -1 -1 -1))
143 (v128.const i64x2 2147483648 2147483648))
144(assert_return (invoke "i64x2.extmul_high_i32x4_s" (v128.const i32x4 2147483647 2147483647 2147483647 2147483647)
145 (v128.const i32x4 2147483647 2147483647 2147483647 2147483647))
146 (v128.const i64x2 4611686014132420609 4611686014132420609))
147(assert_return (invoke "i64x2.extmul_high_i32x4_s" (v128.const i32x4 -2147483648 -2147483648 -2147483648 -2147483648)
148 (v128.const i32x4 -2147483648 -2147483648 -2147483648 -2147483648))
149 (v128.const i64x2 4611686018427387904 4611686018427387904))
150(assert_return (invoke "i64x2.extmul_high_i32x4_s" (v128.const i32x4 -2147483648 -2147483648 -2147483648 -2147483648)
151 (v128.const i32x4 -2147483647 -2147483647 -2147483647 -2147483647))
152 (v128.const i64x2 4611686016279904256 4611686016279904256))
153(assert_return (invoke "i64x2.extmul_high_i32x4_s" (v128.const i32x4 4294967295 4294967295 4294967295 4294967295)
154 (v128.const i32x4 0 0 0 0))
155 (v128.const i64x2 0 0))
156(assert_return (invoke "i64x2.extmul_high_i32x4_s" (v128.const i32x4 4294967295 4294967295 4294967295 4294967295)
157 (v128.const i32x4 1 1 1 1))
158 (v128.const i64x2 -1 -1))
159(assert_return (invoke "i64x2.extmul_high_i32x4_s" (v128.const i32x4 4294967295 4294967295 4294967295 4294967295)
160 (v128.const i32x4 -1 -1 -1 -1))
161 (v128.const i64x2 1 1))
162(assert_return (invoke "i64x2.extmul_high_i32x4_s" (v128.const i32x4 4294967295 4294967295 4294967295 4294967295)
163 (v128.const i32x4 2147483647 2147483647 2147483647 2147483647))
164 (v128.const i64x2 -2147483647 -2147483647))
165(assert_return (invoke "i64x2.extmul_high_i32x4_s" (v128.const i32x4 4294967295 4294967295 4294967295 4294967295)
166 (v128.const i32x4 -2147483648 -2147483648 -2147483648 -2147483648))
167 (v128.const i64x2 2147483648 2147483648))
168(assert_return (invoke "i64x2.extmul_high_i32x4_s" (v128.const i32x4 4294967295 4294967295 4294967295 4294967295)
169 (v128.const i32x4 4294967295 4294967295 4294967295 4294967295))
170 (v128.const i64x2 1 1))
171
172;; i64x2.extmul_low_i32x4_u
173(assert_return (invoke "i64x2.extmul_low_i32x4_u" (v128.const i32x4 0 0 0 0)
174 (v128.const i32x4 0 0 0 0))
175 (v128.const i64x2 0 0))
176(assert_return (invoke "i64x2.extmul_low_i32x4_u" (v128.const i32x4 0 0 0 0)
177 (v128.const i32x4 1 1 1 1))
178 (v128.const i64x2 0 0))
179(assert_return (invoke "i64x2.extmul_low_i32x4_u" (v128.const i32x4 1 1 1 1)
180 (v128.const i32x4 1 1 1 1))
181 (v128.const i64x2 1 1))
182(assert_return (invoke "i64x2.extmul_low_i32x4_u" (v128.const i32x4 0 0 0 0)
183 (v128.const i32x4 -1 -1 -1 -1))
184 (v128.const i64x2 0 0))
185(assert_return (invoke "i64x2.extmul_low_i32x4_u" (v128.const i32x4 1 1 1 1)
186 (v128.const i32x4 -1 -1 -1 -1))
187 (v128.const i64x2 4294967295 4294967295))
188(assert_return (invoke "i64x2.extmul_low_i32x4_u" (v128.const i32x4 -1 -1 -1 -1)
189 (v128.const i32x4 -1 -1 -1 -1))
190 (v128.const i64x2 -8589934591 -8589934591))
191(assert_return (invoke "i64x2.extmul_low_i32x4_u" (v128.const i32x4 1073741823 1073741823 1073741823 1073741823)
192 (v128.const i32x4 1073741824 1073741824 1073741824 1073741824))
193 (v128.const i64x2 1152921503533105152 1152921503533105152))
194(assert_return (invoke "i64x2.extmul_low_i32x4_u" (v128.const i32x4 1073741824 1073741824 1073741824 1073741824)
195 (v128.const i32x4 1073741824 1073741824 1073741824 1073741824))
196 (v128.const i64x2 1152921504606846976 1152921504606846976))
197(assert_return (invoke "i64x2.extmul_low_i32x4_u" (v128.const i32x4 -1073741823 -1073741823 -1073741823 -1073741823)
198 (v128.const i32x4 -1073741824 -1073741824 -1073741824 -1073741824))
199 (v128.const i64x2 -8070450529026703360 -8070450529026703360))
200(assert_return (invoke "i64x2.extmul_low_i32x4_u" (v128.const i32x4 -1073741824 -1073741824 -1073741824 -1073741824)
201 (v128.const i32x4 -1073741824 -1073741824 -1073741824 -1073741824))
202 (v128.const i64x2 -8070450532247928832 -8070450532247928832))
203(assert_return (invoke "i64x2.extmul_low_i32x4_u" (v128.const i32x4 -1073741825 -1073741825 -1073741825 -1073741825)
204 (v128.const i32x4 -1073741824 -1073741824 -1073741824 -1073741824))
205 (v128.const i64x2 -8070450535469154304 -8070450535469154304))
206(assert_return (invoke "i64x2.extmul_low_i32x4_u" (v128.const i32x4 2147483645 2147483645 2147483645 2147483645)
207 (v128.const i32x4 1 1 1 1))
208 (v128.const i64x2 2147483645 2147483645))
209(assert_return (invoke "i64x2.extmul_low_i32x4_u" (v128.const i32x4 2147483646 2147483646 2147483646 2147483646)
210 (v128.const i32x4 1 1 1 1))
211 (v128.const i64x2 2147483646 2147483646))
212(assert_return (invoke "i64x2.extmul_low_i32x4_u" (v128.const i32x4 2147483648 2147483648 2147483648 2147483648)
213 (v128.const i32x4 1 1 1 1))
214 (v128.const i64x2 2147483648 2147483648))
215(assert_return (invoke "i64x2.extmul_low_i32x4_u" (v128.const i32x4 -2147483646 -2147483646 -2147483646 -2147483646)
216 (v128.const i32x4 -1 -1 -1 -1))
217 (v128.const i64x2 -9223372030412324866 -9223372030412324866))
218(assert_return (invoke "i64x2.extmul_low_i32x4_u" (v128.const i32x4 -2147483647 -2147483647 -2147483647 -2147483647)
219 (v128.const i32x4 -1 -1 -1 -1))
220 (v128.const i64x2 -9223372034707292161 -9223372034707292161))
221(assert_return (invoke "i64x2.extmul_low_i32x4_u" (v128.const i32x4 -2147483648 -2147483648 -2147483648 -2147483648)
222 (v128.const i32x4 -1 -1 -1 -1))
223 (v128.const i64x2 9223372034707292160 9223372034707292160))
224(assert_return (invoke "i64x2.extmul_low_i32x4_u" (v128.const i32x4 2147483647 2147483647 2147483647 2147483647)
225 (v128.const i32x4 2147483647 2147483647 2147483647 2147483647))
226 (v128.const i64x2 4611686014132420609 4611686014132420609))
227(assert_return (invoke "i64x2.extmul_low_i32x4_u" (v128.const i32x4 -2147483648 -2147483648 -2147483648 -2147483648)
228 (v128.const i32x4 -2147483648 -2147483648 -2147483648 -2147483648))
229 (v128.const i64x2 4611686018427387904 4611686018427387904))
230(assert_return (invoke "i64x2.extmul_low_i32x4_u" (v128.const i32x4 -2147483648 -2147483648 -2147483648 -2147483648)
231 (v128.const i32x4 -2147483647 -2147483647 -2147483647 -2147483647))
232 (v128.const i64x2 4611686020574871552 4611686020574871552))
233(assert_return (invoke "i64x2.extmul_low_i32x4_u" (v128.const i32x4 4294967295 4294967295 4294967295 4294967295)
234 (v128.const i32x4 0 0 0 0))
235 (v128.const i64x2 0 0))
236(assert_return (invoke "i64x2.extmul_low_i32x4_u" (v128.const i32x4 4294967295 4294967295 4294967295 4294967295)
237 (v128.const i32x4 1 1 1 1))
238 (v128.const i64x2 4294967295 4294967295))
239(assert_return (invoke "i64x2.extmul_low_i32x4_u" (v128.const i32x4 4294967295 4294967295 4294967295 4294967295)
240 (v128.const i32x4 -1 -1 -1 -1))
241 (v128.const i64x2 -8589934591 -8589934591))
242(assert_return (invoke "i64x2.extmul_low_i32x4_u" (v128.const i32x4 4294967295 4294967295 4294967295 4294967295)
243 (v128.const i32x4 2147483647 2147483647 2147483647 2147483647))
244 (v128.const i64x2 9223372030412324865 9223372030412324865))
245(assert_return (invoke "i64x2.extmul_low_i32x4_u" (v128.const i32x4 4294967295 4294967295 4294967295 4294967295)
246 (v128.const i32x4 -2147483648 -2147483648 -2147483648 -2147483648))
247 (v128.const i64x2 9223372034707292160 9223372034707292160))
248(assert_return (invoke "i64x2.extmul_low_i32x4_u" (v128.const i32x4 4294967295 4294967295 4294967295 4294967295)
249 (v128.const i32x4 4294967295 4294967295 4294967295 4294967295))
250 (v128.const i64x2 -8589934591 -8589934591))
251
252;; i64x2.extmul_high_i32x4_u
253(assert_return (invoke "i64x2.extmul_high_i32x4_u" (v128.const i32x4 0 0 0 0)
254 (v128.const i32x4 0 0 0 0))
255 (v128.const i64x2 0 0))
256(assert_return (invoke "i64x2.extmul_high_i32x4_u" (v128.const i32x4 0 0 0 0)
257 (v128.const i32x4 1 1 1 1))
258 (v128.const i64x2 0 0))
259(assert_return (invoke "i64x2.extmul_high_i32x4_u" (v128.const i32x4 1 1 1 1)
260 (v128.const i32x4 1 1 1 1))
261 (v128.const i64x2 1 1))
262(assert_return (invoke "i64x2.extmul_high_i32x4_u" (v128.const i32x4 0 0 0 0)
263 (v128.const i32x4 -1 -1 -1 -1))
264 (v128.const i64x2 0 0))
265(assert_return (invoke "i64x2.extmul_high_i32x4_u" (v128.const i32x4 1 1 1 1)
266 (v128.const i32x4 -1 -1 -1 -1))
267 (v128.const i64x2 4294967295 4294967295))
268(assert_return (invoke "i64x2.extmul_high_i32x4_u" (v128.const i32x4 -1 -1 -1 -1)
269 (v128.const i32x4 -1 -1 -1 -1))
270 (v128.const i64x2 -8589934591 -8589934591))
271(assert_return (invoke "i64x2.extmul_high_i32x4_u" (v128.const i32x4 1073741823 1073741823 1073741823 1073741823)
272 (v128.const i32x4 1073741824 1073741824 1073741824 1073741824))
273 (v128.const i64x2 1152921503533105152 1152921503533105152))
274(assert_return (invoke "i64x2.extmul_high_i32x4_u" (v128.const i32x4 1073741824 1073741824 1073741824 1073741824)
275 (v128.const i32x4 1073741824 1073741824 1073741824 1073741824))
276 (v128.const i64x2 1152921504606846976 1152921504606846976))
277(assert_return (invoke "i64x2.extmul_high_i32x4_u" (v128.const i32x4 -1073741823 -1073741823 -1073741823 -1073741823)
278 (v128.const i32x4 -1073741824 -1073741824 -1073741824 -1073741824))
279 (v128.const i64x2 -8070450529026703360 -8070450529026703360))
280(assert_return (invoke "i64x2.extmul_high_i32x4_u" (v128.const i32x4 -1073741824 -1073741824 -1073741824 -1073741824)
281 (v128.const i32x4 -1073741824 -1073741824 -1073741824 -1073741824))
282 (v128.const i64x2 -8070450532247928832 -8070450532247928832))
283(assert_return (invoke "i64x2.extmul_high_i32x4_u" (v128.const i32x4 -1073741825 -1073741825 -1073741825 -1073741825)
284 (v128.const i32x4 -1073741824 -1073741824 -1073741824 -1073741824))
285 (v128.const i64x2 -8070450535469154304 -8070450535469154304))
286(assert_return (invoke "i64x2.extmul_high_i32x4_u" (v128.const i32x4 2147483645 2147483645 2147483645 2147483645)
287 (v128.const i32x4 1 1 1 1))
288 (v128.const i64x2 2147483645 2147483645))
289(assert_return (invoke "i64x2.extmul_high_i32x4_u" (v128.const i32x4 2147483646 2147483646 2147483646 2147483646)
290 (v128.const i32x4 1 1 1 1))
291 (v128.const i64x2 2147483646 2147483646))
292(assert_return (invoke "i64x2.extmul_high_i32x4_u" (v128.const i32x4 2147483648 2147483648 2147483648 2147483648)
293 (v128.const i32x4 1 1 1 1))
294 (v128.const i64x2 2147483648 2147483648))
295(assert_return (invoke "i64x2.extmul_high_i32x4_u" (v128.const i32x4 -2147483646 -2147483646 -2147483646 -2147483646)
296 (v128.const i32x4 -1 -1 -1 -1))
297 (v128.const i64x2 -9223372030412324866 -9223372030412324866))
298(assert_return (invoke "i64x2.extmul_high_i32x4_u" (v128.const i32x4 -2147483647 -2147483647 -2147483647 -2147483647)
299 (v128.const i32x4 -1 -1 -1 -1))
300 (v128.const i64x2 -9223372034707292161 -9223372034707292161))
301(assert_return (invoke "i64x2.extmul_high_i32x4_u" (v128.const i32x4 -2147483648 -2147483648 -2147483648 -2147483648)
302 (v128.const i32x4 -1 -1 -1 -1))
303 (v128.const i64x2 9223372034707292160 9223372034707292160))
304(assert_return (invoke "i64x2.extmul_high_i32x4_u" (v128.const i32x4 2147483647 2147483647 2147483647 2147483647)
305 (v128.const i32x4 2147483647 2147483647 2147483647 2147483647))
306 (v128.const i64x2 4611686014132420609 4611686014132420609))
307(assert_return (invoke "i64x2.extmul_high_i32x4_u" (v128.const i32x4 -2147483648 -2147483648 -2147483648 -2147483648)
308 (v128.const i32x4 -2147483648 -2147483648 -2147483648 -2147483648))
309 (v128.const i64x2 4611686018427387904 4611686018427387904))
310(assert_return (invoke "i64x2.extmul_high_i32x4_u" (v128.const i32x4 -2147483648 -2147483648 -2147483648 -2147483648)
311 (v128.const i32x4 -2147483647 -2147483647 -2147483647 -2147483647))
312 (v128.const i64x2 4611686020574871552 4611686020574871552))
313(assert_return (invoke "i64x2.extmul_high_i32x4_u" (v128.const i32x4 4294967295 4294967295 4294967295 4294967295)
314 (v128.const i32x4 0 0 0 0))
315 (v128.const i64x2 0 0))
316(assert_return (invoke "i64x2.extmul_high_i32x4_u" (v128.const i32x4 4294967295 4294967295 4294967295 4294967295)
317 (v128.const i32x4 1 1 1 1))
318 (v128.const i64x2 4294967295 4294967295))
319(assert_return (invoke "i64x2.extmul_high_i32x4_u" (v128.const i32x4 4294967295 4294967295 4294967295 4294967295)
320 (v128.const i32x4 -1 -1 -1 -1))
321 (v128.const i64x2 -8589934591 -8589934591))
322(assert_return (invoke "i64x2.extmul_high_i32x4_u" (v128.const i32x4 4294967295 4294967295 4294967295 4294967295)
323 (v128.const i32x4 2147483647 2147483647 2147483647 2147483647))
324 (v128.const i64x2 9223372030412324865 9223372030412324865))
325(assert_return (invoke "i64x2.extmul_high_i32x4_u" (v128.const i32x4 4294967295 4294967295 4294967295 4294967295)
326 (v128.const i32x4 -2147483648 -2147483648 -2147483648 -2147483648))
327 (v128.const i64x2 9223372034707292160 9223372034707292160))
328(assert_return (invoke "i64x2.extmul_high_i32x4_u" (v128.const i32x4 4294967295 4294967295 4294967295 4294967295)
329 (v128.const i32x4 4294967295 4294967295 4294967295 4294967295))
330 (v128.const i64x2 -8589934591 -8589934591))
331
332;; type check
333(assert_invalid (module (func (result v128) (i64x2.extmul_low_i32x4_s (i32.const 0) (f32.const 0.0)))) "type mismatch")
334(assert_invalid (module (func (result v128) (i64x2.extmul_high_i32x4_s (i32.const 0) (f32.const 0.0)))) "type mismatch")
335(assert_invalid (module (func (result v128) (i64x2.extmul_low_i32x4_u (i32.const 0) (f32.const 0.0)))) "type mismatch")
336(assert_invalid (module (func (result v128) (i64x2.extmul_high_i32x4_u (i32.const 0) (f32.const 0.0)))) "type mismatch")
337
338;; Test operation with empty argument
339
340(assert_invalid
341 (module
342 (func $i64x2.extmul_low_i32x4_s-1st-arg-empty (result v128)
343 (i64x2.extmul_low_i32x4_s (v128.const i64x2 0 0))
344 )
345 )
346 "type mismatch"
347)
348(assert_invalid
349 (module
350 (func $i64x2.extmul_low_i32x4_s-arg-empty (result v128)
351 (i64x2.extmul_low_i32x4_s)
352 )
353 )
354 "type mismatch"
355)
356(assert_invalid
357 (module
358 (func $i64x2.extmul_high_i32x4_s-1st-arg-empty (result v128)
359 (i64x2.extmul_high_i32x4_s (v128.const i64x2 0 0))
360 )
361 )
362 "type mismatch"
363)
364(assert_invalid
365 (module
366 (func $i64x2.extmul_high_i32x4_s-arg-empty (result v128)
367 (i64x2.extmul_high_i32x4_s)
368 )
369 )
370 "type mismatch"
371)
372(assert_invalid
373 (module
374 (func $i64x2.extmul_low_i32x4_u-1st-arg-empty (result v128)
375 (i64x2.extmul_low_i32x4_u (v128.const i64x2 0 0))
376 )
377 )
378 "type mismatch"
379)
380(assert_invalid
381 (module
382 (func $i64x2.extmul_low_i32x4_u-arg-empty (result v128)
383 (i64x2.extmul_low_i32x4_u)
384 )
385 )
386 "type mismatch"
387)
388(assert_invalid
389 (module
390 (func $i64x2.extmul_high_i32x4_u-1st-arg-empty (result v128)
391 (i64x2.extmul_high_i32x4_u (v128.const i64x2 0 0))
392 )
393 )
394 "type mismatch"
395)
396(assert_invalid
397 (module
398 (func $i64x2.extmul_high_i32x4_u-arg-empty (result v128)
399 (i64x2.extmul_high_i32x4_u)
400 )
401 )
402 "type mismatch"
403)
404
View as plain text