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