4dd4282206ec91b98f32470966418a7a86d6523e
[platform/framework/web/lwnode.git] /
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 0))
197                               (v128.const i64x2 -1 -1))
198 (assert_return (invoke "le_s" (v128.const i64x2 18446744073709551615 18446744073709551615)
199                               (v128.const i64x2 18446744073709551615 18446744073709551615))
200                               (v128.const i64x2 -1 -1))
201 (assert_return (invoke "le_s" (v128.const i64x2 18446744073709551615 18446744073709551615)
202                               (v128.const i64x2 -1 -1))
203                               (v128.const i64x2 -1 -1))
204 (assert_return (invoke "le_s" (v128.const i64x2 18446744073709551615 0)
205                               (v128.const i64x2 18446744073709551615 0))
206                               (v128.const i64x2 -1 -1))
207 (assert_return (invoke "le_s" (v128.const i64x2 0 18446744073709551615)
208                               (v128.const i64x2 0 18446744073709551615))
209                               (v128.const i64x2 -1 -1))
210 (assert_return (invoke "le_s" (v128.const i64x2 -9223372036854775807 18446744073709551615)
211                               (v128.const i64x2 9223372036854775809 -1))
212                               (v128.const i64x2 -1 -1))
213
214 ;; hex vs float
215 (assert_return (invoke "le_s" (v128.const i64x2 0xc060000000000000 0xc05fc00000000000)
216                               (v128.const f64x2 -128.0 -127.0))
217                               (v128.const i64x2 -1 -1))
218 (assert_return (invoke "le_s" (v128.const i64x2 0x3ff0000000000000 0x405fc00000000000)
219                               (v128.const f64x2 1.0 127.0))
220                               (v128.const i64x2 -1 -1))
221
222 ;; gt_s
223
224 ;; i64x2.gt_s  (i64x2) (i64x2)
225
226 ;; hex vs hex
227 (assert_return (invoke "gt_s" (v128.const i64x2 0xFFFFFFFFFFFFFFFF 0xFFFFFFFFFFFFFFFF)
228                               (v128.const i64x2 0xFFFFFFFFFFFFFFFF 0xFFFFFFFFFFFFFFFF))
229                               (v128.const i64x2 0 0))
230 (assert_return (invoke "gt_s" (v128.const i64x2 0x0000000000000000 0x0000000000000000)
231                               (v128.const i64x2 0x0000000000000000 0x0000000000000000))
232                               (v128.const i64x2 0 0))
233 (assert_return (invoke "gt_s" (v128.const i64x2 0xF0F0F0F0F0F0F0F0 0xF0F0F0F0F0F0F0F0)
234                               (v128.const i64x2 0xF0F0F0F0F0F0F0F0 0xF0F0F0F0F0F0F0F0))
235                               (v128.const i64x2 0 0))
236 (assert_return (invoke "gt_s" (v128.const i64x2 0x0F0F0F0F0F0F0F0F 0x0F0F0F0F0F0F0F0F)
237                               (v128.const i64x2 0x0F0F0F0F0F0F0F0F 0x0F0F0F0F0F0F0F0F))
238                               (v128.const i64x2 0 0))
239 (assert_return (invoke "gt_s" (v128.const i64x2 0xFFFFFFFFFFFFFFFF 0x0000000000000000)
240                               (v128.const i64x2 0xFFFFFFFFFFFFFFFF 0x0000000000000000))
241                               (v128.const i64x2 0 0))
242 (assert_return (invoke "gt_s" (v128.const i64x2 0x0000000000000000 0xFFFFFFFFFFFFFFFF)
243                               (v128.const i64x2 0x0000000000000000 0xFFFFFFFFFFFFFFFF))
244                               (v128.const i64x2 0 0))
245 (assert_return (invoke "gt_s" (v128.const i64x2 0x0302010011100904 0x1A0B0A12FFABAA1B)
246                               (v128.const i64x2 0x0302010011100904 0x1A0B0A12FFABAA1B))
247                               (v128.const i64x2 0 0))
248
249 ;; hex vs dec
250 (assert_return (invoke "gt_s" (v128.const i64x2 0xFFFFFFFFFFFFFFFF 0xFFFFFFFFFFFFFFFF)
251                               (v128.const i64x2 18446744073709551615 18446744073709551615))
252                               (v128.const i64x2 0 0))
253 (assert_return (invoke "gt_s" (v128.const i64x2 0xFFFFFFFFFFFFFFFF 0xFFFFFFFFFFFFFFFF)
254                               (v128.const i64x2 -1 -1))
255                               (v128.const i64x2 0 0))
256 (assert_return (invoke "gt_s" (v128.const i64x2 0x8080808080808080 0x8080808080808080)
257                               (v128.const i64x2 9259542123273814144 9259542123273814144))
258                               (v128.const i64x2 0 0))
259 (assert_return (invoke "gt_s" (v128.const i64x2 0x8080808080808080 0x8080808080808080)
260                               (v128.const i64x2 -9187201950435737472 -9187201950435737472))
261                               (v128.const i64x2 0 0))
262 (assert_return (invoke "gt_s" (v128.const i64x2 0x8382818000FFFEFD 0x7F020100FFFEFD80)
263                               (v128.const i64x2 -8970465120996032771 9151878496576798080))
264                               (v128.const i64x2 0 0))
265
266 ;; dec vs dec
267 (assert_return (invoke "gt_s" (v128.const i64x2 -1 -1)
268                               (v128.const i64x2 -1 -1))
269                               (v128.const i64x2 0 0))
270 (assert_return (invoke "gt_s" (v128.const i64x2 0 0)
271                               (v128.const i64x2 0 0))
272                               (v128.const i64x2 0 0))
273 (assert_return (invoke "gt_s" (v128.const i64x2 18446744073709551615 18446744073709551615)
274                               (v128.const i64x2 18446744073709551615 18446744073709551615))
275                               (v128.const i64x2 0 0))
276 (assert_return (invoke "gt_s" (v128.const i64x2 18446744073709551615 18446744073709551615)
277                               (v128.const i64x2 -1 -1))
278                               (v128.const i64x2 0 0))
279 (assert_return (invoke "gt_s" (v128.const i64x2 18446744073709551615 0)
280                               (v128.const i64x2 18446744073709551615 0))
281                               (v128.const i64x2 0 0))
282 (assert_return (invoke "gt_s" (v128.const i64x2 0 18446744073709551615)
283                               (v128.const i64x2 0 18446744073709551615))
284                               (v128.const i64x2 0 0))
285 (assert_return (invoke "gt_s" (v128.const i64x2 -9223372036854775807 18446744073709551615)
286                               (v128.const i64x2 9223372036854775809 -1))
287                               (v128.const i64x2 0 0))
288
289 ;; hex vs float
290 (assert_return (invoke "gt_s" (v128.const i64x2 0xc060000000000000 0xc05fc00000000000)
291                               (v128.const f64x2 -128.0 -127.0))
292                               (v128.const i64x2 0 0))
293 (assert_return (invoke "gt_s" (v128.const i64x2 0x3ff0000000000000 0x405fc00000000000)
294                               (v128.const f64x2 1.0 127.0))
295                               (v128.const i64x2 0 0))
296
297 ;; ge_s
298
299 ;; i64x2.ge_s  (i64x2) (i64x2)
300
301 ;; hex vs hex
302 (assert_return (invoke "ge_s" (v128.const i64x2 0xFFFFFFFFFFFFFFFF 0xFFFFFFFFFFFFFFFF)
303                               (v128.const i64x2 0xFFFFFFFFFFFFFFFF 0xFFFFFFFFFFFFFFFF))
304                               (v128.const i64x2 -1 -1))
305 (assert_return (invoke "ge_s" (v128.const i64x2 0x0000000000000000 0x0000000000000000)
306                               (v128.const i64x2 0x0000000000000000 0x0000000000000000))
307                               (v128.const i64x2 -1 -1))
308 (assert_return (invoke "ge_s" (v128.const i64x2 0xF0F0F0F0F0F0F0F0 0xF0F0F0F0F0F0F0F0)
309                               (v128.const i64x2 0xF0F0F0F0F0F0F0F0 0xF0F0F0F0F0F0F0F0))
310                               (v128.const i64x2 -1 -1))
311 (assert_return (invoke "ge_s" (v128.const i64x2 0x0F0F0F0F0F0F0F0F 0x0F0F0F0F0F0F0F0F)
312                               (v128.const i64x2 0x0F0F0F0F0F0F0F0F 0x0F0F0F0F0F0F0F0F))
313                               (v128.const i64x2 -1 -1))
314 (assert_return (invoke "ge_s" (v128.const i64x2 0xFFFFFFFFFFFFFFFF 0x0000000000000000)
315                               (v128.const i64x2 0xFFFFFFFFFFFFFFFF 0x0000000000000000))
316                               (v128.const i64x2 -1 -1))
317 (assert_return (invoke "ge_s" (v128.const i64x2 0x0000000000000000 0xFFFFFFFFFFFFFFFF)
318                               (v128.const i64x2 0x0000000000000000 0xFFFFFFFFFFFFFFFF))
319                               (v128.const i64x2 -1 -1))
320 (assert_return (invoke "ge_s" (v128.const i64x2 0x0302010011100904 0x1A0B0A12FFABAA1B)
321                               (v128.const i64x2 0x0302010011100904 0x1A0B0A12FFABAA1B))
322                               (v128.const i64x2 -1 -1))
323
324 ;; hex vs dec
325 (assert_return (invoke "ge_s" (v128.const i64x2 0xFFFFFFFFFFFFFFFF 0xFFFFFFFFFFFFFFFF)
326                               (v128.const i64x2 18446744073709551615 18446744073709551615))
327                               (v128.const i64x2 -1 -1))
328 (assert_return (invoke "ge_s" (v128.const i64x2 0xFFFFFFFFFFFFFFFF 0xFFFFFFFFFFFFFFFF)
329                               (v128.const i64x2 -1 -1))
330                               (v128.const i64x2 -1 -1))
331 (assert_return (invoke "ge_s" (v128.const i64x2 0x8080808080808080 0x8080808080808080)
332                               (v128.const i64x2 9259542123273814144 9259542123273814144))
333                               (v128.const i64x2 -1 -1))
334 (assert_return (invoke "ge_s" (v128.const i64x2 0x8080808080808080 0x8080808080808080)
335                               (v128.const i64x2 -9187201950435737472 -9187201950435737472))
336                               (v128.const i64x2 -1 -1))
337 (assert_return (invoke "ge_s" (v128.const i64x2 0x8382818000FFFEFD 0x7F020100FFFEFD80)
338                               (v128.const i64x2 -8970465120996032771 9151878496576798080))
339                               (v128.const i64x2 -1 -1))
340
341 ;; dec vs dec
342 (assert_return (invoke "ge_s" (v128.const i64x2 -1 -1)
343                               (v128.const i64x2 -1 -1))
344                               (v128.const i64x2 -1 -1))
345 (assert_return (invoke "ge_s" (v128.const i64x2 0 0)
346                               (v128.const i64x2 0 0))
347                               (v128.const i64x2 -1 -1))
348 (assert_return (invoke "ge_s" (v128.const i64x2 18446744073709551615 18446744073709551615)
349                               (v128.const i64x2 18446744073709551615 18446744073709551615))
350                               (v128.const i64x2 -1 -1))
351 (assert_return (invoke "ge_s" (v128.const i64x2 18446744073709551615 18446744073709551615)
352                               (v128.const i64x2 -1 -1))
353                               (v128.const i64x2 -1 -1))
354 (assert_return (invoke "ge_s" (v128.const i64x2 18446744073709551615 0)
355                               (v128.const i64x2 18446744073709551615 0))
356                               (v128.const i64x2 -1 -1))
357 (assert_return (invoke "ge_s" (v128.const i64x2 0 18446744073709551615)
358                               (v128.const i64x2 0 18446744073709551615))
359                               (v128.const i64x2 -1 -1))
360 (assert_return (invoke "ge_s" (v128.const i64x2 -9223372036854775807 18446744073709551615)
361                               (v128.const i64x2 9223372036854775809 -1))
362                               (v128.const i64x2 -1 -1))
363
364 ;; hex vs float
365 (assert_return (invoke "ge_s" (v128.const i64x2 0xc060000000000000 0xc05fc00000000000)
366                               (v128.const f64x2 -128.0 -127.0))
367                               (v128.const i64x2 -1 -1))
368 (assert_return (invoke "ge_s" (v128.const i64x2 0x3ff0000000000000 0x405fc00000000000)
369                               (v128.const f64x2 1.0 127.0))
370                               (v128.const i64x2 -1 -1))
371
372 ;; Type check
373
374 (assert_invalid (module (func (result v128) (i64x2.eq (i32.const 0) (f32.const 0)))) "type mismatch")
375 (assert_invalid (module (func (result v128) (i64x2.ne (i32.const 0) (f32.const 0)))) "type mismatch")
376 (assert_invalid (module (func (result v128) (i64x2.ge_s (i32.const 0) (f32.const 0)))) "type mismatch")
377 (assert_invalid (module (func (result v128) (i64x2.gt_s (i32.const 0) (f32.const 0)))) "type mismatch")
378 (assert_invalid (module (func (result v128) (i64x2.le_s (i32.const 0) (f32.const 0)))) "type mismatch")
379 (assert_invalid (module (func (result v128) (i64x2.lt_s (i32.const 0) (f32.const 0)))) "type mismatch")
380
381 ;; Test operation with empty argument
382
383 (assert_invalid
384   (module
385     (func $i64x2.eq-1st-arg-empty (result v128)
386       (i64x2.eq (v128.const i64x2 0 0))
387     )
388   )
389   "type mismatch"
390 )
391 (assert_invalid
392   (module
393     (func $i64x2.eq-arg-empty (result v128)
394       (i64x2.eq)
395     )
396   )
397   "type mismatch"
398 )
399 (assert_invalid
400   (module
401     (func $i64x2.ne-1st-arg-empty (result v128)
402       (i64x2.ne (v128.const i64x2 0 0))
403     )
404   )
405   "type mismatch"
406 )
407 (assert_invalid
408   (module
409     (func $i64x2.ne-arg-empty (result v128)
410       (i64x2.ne)
411     )
412   )
413   "type mismatch"
414 )