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