1 ;; Test all the boolean operators on major boundary values and all special values.
4 (func (export "i8x16.any_true") (param $0 v128) (result i32) (v128.any_true (local.get $0)))
5 (func (export "i8x16.all_true") (param $0 v128) (result i32) (i8x16.all_true (local.get $0)))
6 (func (export "i8x16.bitmask") (param $0 v128) (result i32) (i8x16.bitmask (local.get $0)))
8 (func (export "i16x8.any_true") (param $0 v128) (result i32) (v128.any_true (local.get $0)))
9 (func (export "i16x8.all_true") (param $0 v128) (result i32) (i16x8.all_true (local.get $0)))
10 (func (export "i16x8.bitmask") (param $0 v128) (result i32) (i16x8.bitmask (local.get $0)))
12 (func (export "i32x4.any_true") (param $0 v128) (result i32) (v128.any_true (local.get $0)))
13 (func (export "i32x4.all_true") (param $0 v128) (result i32) (i32x4.all_true (local.get $0)))
14 (func (export "i32x4.bitmask") (param $0 v128) (result i32) (i32x4.bitmask (local.get $0)))
16 (func (export "i64x2.all_true") (param $0 v128) (result i32) (i64x2.all_true (local.get $0)))
17 (func (export "i64x2.bitmask") (param $0 v128) (result i32) (i64x2.bitmask (local.get $0)))
21 (assert_return (invoke "i8x16.any_true" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0))
23 (assert_return (invoke "i8x16.any_true" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0))
25 (assert_return (invoke "i8x16.any_true" (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1))
27 (assert_return (invoke "i8x16.any_true" (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1))
29 (assert_return (invoke "i8x16.any_true" (v128.const i8x16 -1 0 1 2 3 4 5 6 7 8 9 0xA 0xB 0xC 0xD 0xF))
31 (assert_return (invoke "i8x16.any_true" (v128.const i8x16 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00))
33 (assert_return (invoke "i8x16.any_true" (v128.const i8x16 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF))
35 (assert_return (invoke "i8x16.any_true" (v128.const i8x16 0xAB 0xAB 0xAB 0xAB 0xAB 0xAB 0xAB 0xAB 0xAB 0xAB 0xAB 0xAB 0xAB 0xAB 0xAB 0xAB))
37 (assert_return (invoke "i8x16.any_true" (v128.const i8x16 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55))
39 (assert_return (invoke "i8x16.all_true" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0))
41 (assert_return (invoke "i8x16.all_true" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0))
43 (assert_return (invoke "i8x16.all_true" (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1))
45 (assert_return (invoke "i8x16.all_true" (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1))
47 (assert_return (invoke "i8x16.all_true" (v128.const i8x16 -1 0 1 2 3 4 5 6 7 8 9 0xA 0xB 0xC 0xD 0xF))
49 (assert_return (invoke "i8x16.all_true" (v128.const i8x16 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00))
51 (assert_return (invoke "i8x16.all_true" (v128.const i8x16 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF))
53 (assert_return (invoke "i8x16.all_true" (v128.const i8x16 0xAB 0xAB 0xAB 0xAB 0xAB 0xAB 0xAB 0xAB 0xAB 0xAB 0xAB 0xAB 0xAB 0xAB 0xAB 0xAB))
55 (assert_return (invoke "i8x16.all_true" (v128.const i8x16 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55))
57 (assert_return (invoke "i8x16.bitmask" (v128.const i8x16 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF))
58 (i32.const 0x0000FFFF))
59 (assert_return (invoke "i8x16.bitmask" (v128.const i8x16 -1 0 1 2 3 4 5 6 7 8 9 0xA 0xB 0xC 0xD 0xF))
60 (i32.const 0x00000001))
63 (assert_return (invoke "i16x8.any_true" (v128.const i16x8 0 0 0 0 0 0 0 0))
65 (assert_return (invoke "i16x8.any_true" (v128.const i16x8 0 0 0 0 0 0 1 0))
67 (assert_return (invoke "i16x8.any_true" (v128.const i16x8 1 1 1 1 1 1 0 1))
69 (assert_return (invoke "i16x8.any_true" (v128.const i16x8 1 1 1 1 1 1 1 1))
71 (assert_return (invoke "i16x8.any_true" (v128.const i16x8 -1 0 1 2 0xB 0xC 0xD 0xF))
73 (assert_return (invoke "i16x8.any_true" (v128.const i16x8 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00))
75 (assert_return (invoke "i16x8.any_true" (v128.const i16x8 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF))
77 (assert_return (invoke "i16x8.any_true" (v128.const i16x8 0xAB 0xAB 0xAB 0xAB 0xAB 0xAB 0xAB 0xAB))
79 (assert_return (invoke "i16x8.any_true" (v128.const i16x8 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55))
81 (assert_return (invoke "i16x8.any_true" (v128.const i16x8 012_345 012_345 012_345 012_345 012_345 012_345 012_345 012_345))
83 (assert_return (invoke "i16x8.any_true" (v128.const i16x8 0x0_1234 0x0_1234 0x0_1234 0x0_1234 0x0_1234 0x0_1234 0x0_1234 0x0_1234))
85 (assert_return (invoke "i16x8.all_true" (v128.const i16x8 0 0 0 0 0 0 0 0))
87 (assert_return (invoke "i16x8.all_true" (v128.const i16x8 0 0 0 0 0 0 1 0))
89 (assert_return (invoke "i16x8.all_true" (v128.const i16x8 1 1 1 1 1 1 0 1))
91 (assert_return (invoke "i16x8.all_true" (v128.const i16x8 1 1 1 1 1 1 1 1))
93 (assert_return (invoke "i16x8.all_true" (v128.const i16x8 -1 0 1 2 0xB 0xC 0xD 0xF))
95 (assert_return (invoke "i16x8.all_true" (v128.const i16x8 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00))
97 (assert_return (invoke "i16x8.all_true" (v128.const i16x8 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF))
99 (assert_return (invoke "i16x8.all_true" (v128.const i16x8 0xAB 0xAB 0xAB 0xAB 0xAB 0xAB 0xAB 0xAB))
101 (assert_return (invoke "i16x8.all_true" (v128.const i16x8 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55))
103 (assert_return (invoke "i16x8.all_true" (v128.const i16x8 012_345 012_345 012_345 012_345 012_345 012_345 012_345 012_345))
105 (assert_return (invoke "i16x8.all_true" (v128.const i16x8 0x0_1234 0x0_1234 0x0_1234 0x0_1234 0x0_1234 0x0_1234 0x0_1234 0x0_1234))
107 (assert_return (invoke "i16x8.bitmask" (v128.const i16x8 0xFFFF 0xFFFF 0xFFFF 0xFFFF 0xFFFF 0xFFFF 0xFFFF 0xFFFF))
108 (i32.const 0x000000FF))
109 (assert_return (invoke "i16x8.bitmask" (v128.const i16x8 -1 0 1 2 0xB 0xC 0xD 0xF))
110 (i32.const 0x00000001))
113 (assert_return (invoke "i32x4.any_true" (v128.const i32x4 0 0 0 0))
115 (assert_return (invoke "i32x4.any_true" (v128.const i32x4 0 0 1 0))
117 (assert_return (invoke "i32x4.any_true" (v128.const i32x4 1 1 0 1))
119 (assert_return (invoke "i32x4.any_true" (v128.const i32x4 1 1 1 1))
121 (assert_return (invoke "i32x4.any_true" (v128.const i32x4 -1 0 1 0xF))
123 (assert_return (invoke "i32x4.any_true" (v128.const i32x4 0x00 0x00 0x00 0x00))
125 (assert_return (invoke "i32x4.any_true" (v128.const i32x4 0xFF 0xFF 0xFF 0xFF))
127 (assert_return (invoke "i32x4.any_true" (v128.const i32x4 0xAB 0xAB 0xAB 0xAB))
129 (assert_return (invoke "i32x4.any_true" (v128.const i32x4 0x55 0x55 0x55 0x55))
131 (assert_return (invoke "i32x4.any_true" (v128.const i32x4 01_234_567_890 01_234_567_890 01_234_567_890 01_234_567_890))
133 (assert_return (invoke "i32x4.any_true" (v128.const i32x4 0x0_1234_5678 0x0_1234_5678 0x0_1234_5678 0x0_1234_5678))
135 (assert_return (invoke "i32x4.all_true" (v128.const i32x4 0 0 0 0))
137 (assert_return (invoke "i32x4.all_true" (v128.const i32x4 0 0 1 0))
139 (assert_return (invoke "i32x4.all_true" (v128.const i32x4 1 1 0 1))
141 (assert_return (invoke "i32x4.all_true" (v128.const i32x4 1 1 1 1))
143 (assert_return (invoke "i32x4.all_true" (v128.const i32x4 -1 0 1 0xF))
145 (assert_return (invoke "i32x4.all_true" (v128.const i32x4 0x00 0x00 0x00 0x00))
147 (assert_return (invoke "i32x4.all_true" (v128.const i32x4 0xFF 0xFF 0xFF 0xFF))
149 (assert_return (invoke "i32x4.all_true" (v128.const i32x4 0xAB 0xAB 0xAB 0xAB))
151 (assert_return (invoke "i32x4.all_true" (v128.const i32x4 0x55 0x55 0x55 0x55))
153 (assert_return (invoke "i32x4.all_true" (v128.const i32x4 01_234_567_890 01_234_567_890 01_234_567_890 01_234_567_890))
155 (assert_return (invoke "i32x4.all_true" (v128.const i32x4 0x0_1234_5678 0x0_1234_5678 0x0_1234_5678 0x0_1234_5678))
157 (assert_return (invoke "i32x4.bitmask" (v128.const i32x4 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF))
158 (i32.const 0x0000000F))
159 (assert_return (invoke "i32x4.bitmask" (v128.const i32x4 -1 0 1 0xF))
160 (i32.const 0x00000001))
163 (assert_return (invoke "i64x2.all_true" (v128.const i64x2 0 0))
165 (assert_return (invoke "i64x2.all_true" (v128.const i64x2 0 1))
167 (assert_return (invoke "i64x2.all_true" (v128.const i64x2 1 0))
169 (assert_return (invoke "i64x2.all_true" (v128.const i64x2 1 1))
171 (assert_return (invoke "i64x2.all_true" (v128.const i64x2 -1 0))
173 (assert_return (invoke "i64x2.all_true" (v128.const i64x2 0x00 0x00))
175 (assert_return (invoke "i64x2.all_true" (v128.const i64x2 0xFF 0xFF))
177 (assert_return (invoke "i64x2.all_true" (v128.const i64x2 0xAB 0xAB))
179 (assert_return (invoke "i64x2.all_true" (v128.const i64x2 0x55 0x55))
181 (assert_return (invoke "i64x2.bitmask" (v128.const i64x2 0xFFFFFFFF_FFFFFFFF 0xFFFFFFFF_FFFFFFFF))
182 (i32.const 0x00000003))
183 (assert_return (invoke "i64x2.bitmask" (v128.const i64x2 -1 0xF))
184 (i32.const 0x00000001))
190 (func (export "i8x16_any_true_as_if_cond") (param v128) (result i32)
191 (if (result i32) (v128.any_true (local.get 0))
196 (func (export "i16x8_any_true_as_if_cond") (param v128) (result i32)
197 (if (result i32) (v128.any_true (local.get 0))
202 (func (export "i32x4_any_true_as_if_cond") (param v128) (result i32)
203 (if (result i32) (v128.any_true (local.get 0))
208 (func (export "i8x16_all_true_as_if_cond") (param v128) (result i32)
209 (if (result i32) (i8x16.all_true (local.get 0))
214 (func (export "i16x8_all_true_as_if_cond") (param v128) (result i32)
215 (if (result i32) (i16x8.all_true (local.get 0))
220 (func (export "i32x4_all_true_as_if_cond") (param v128) (result i32)
221 (if (result i32) (i32x4.all_true (local.get 0))
226 ;; any_true as select condition
227 (func (export "i8x16_any_true_as_select_cond") (param v128) (result i32)
228 (select (i32.const 1) (i32.const 0) (v128.any_true (local.get 0)))
230 (func (export "i16x8_any_true_as_select_cond") (param v128) (result i32)
231 (select (i32.const 1) (i32.const 0) (v128.any_true (local.get 0)))
233 (func (export "i32x4_any_true_as_select_cond") (param v128) (result i32)
234 (select (i32.const 1) (i32.const 0) (v128.any_true (local.get 0)))
236 ;; all_true as select condition
237 (func (export "i8x16_all_true_as_select_cond") (param v128) (result i32)
238 (select (i32.const 1) (i32.const 0) (i8x16.all_true (local.get 0)))
240 (func (export "i16x8_all_true_as_select_cond") (param v128) (result i32)
241 (select (i32.const 1) (i32.const 0) (i16x8.all_true (local.get 0)))
243 (func (export "i32x4_all_true_as_select_cond") (param v128) (result i32)
244 (select (i32.const 1) (i32.const 0) (i32x4.all_true (local.get 0)))
246 ;; any_true as br_if condition
247 (func (export "i8x16_any_true_as_br_if_cond") (param $0 v128) (result i32)
249 (local.set $1 (i32.const 2))
251 (local.set $1 (i32.const 1))
252 (br_if 0 (v128.any_true (local.get $0)))
253 (local.set $1 (i32.const 0))
257 (func (export "i16x8_any_true_as_br_if_cond") (param $0 v128) (result i32)
259 (local.set $1 (i32.const 2))
261 (local.set $1 (i32.const 1))
262 (br_if 0 (v128.any_true (local.get $0)))
263 (local.set $1 (i32.const 0))
267 (func (export "i32x4_any_true_as_br_if_cond") (param $0 v128) (result i32)
269 (local.set $1 (i32.const 2))
271 (local.set $1 (i32.const 1))
272 (br_if 0 (v128.any_true (local.get $0)))
273 (local.set $1 (i32.const 0))
277 ;; all_true as br_if condition
278 (func (export "i8x16_all_true_as_br_if_cond") (param $0 v128) (result i32)
280 (local.set $1 (i32.const 2))
282 (local.set $1 (i32.const 1))
283 (br_if 0 (i8x16.all_true (local.get $0)))
284 (local.set $1 (i32.const 0))
288 (func (export "i16x8_all_true_as_br_if_cond") (param $0 v128) (result i32)
290 (local.set $1 (i32.const 2))
292 (local.set $1 (i32.const 1))
293 (br_if 0 (i16x8.all_true (local.get $0)))
294 (local.set $1 (i32.const 0))
298 (func (export "i32x4_all_true_as_br_if_cond") (param $0 v128) (result i32)
300 (local.set $1 (i32.const 2))
302 (local.set $1 (i32.const 1))
303 (br_if 0 (i32x4.all_true (local.get $0)))
304 (local.set $1 (i32.const 0))
308 ;; any_true as i32.and operand
309 (func (export "i8x16_any_true_as_i32.and_operand") (param $0 v128) (param $1 v128) (result i32)
310 (i32.and (v128.any_true (local.get $0)) (v128.any_true (local.get $1)))
312 (func (export "i16x8_any_true_as_i32.and_operand") (param $0 v128) (param $1 v128) (result i32)
313 (i32.and (v128.any_true (local.get $0)) (v128.any_true (local.get $1)))
315 (func (export "i32x4_any_true_as_i32.and_operand") (param $0 v128) (param $1 v128) (result i32)
316 (i32.and (v128.any_true (local.get $0)) (v128.any_true (local.get $1)))
318 ;; any_true as i32.or operand
319 (func (export "i8x16_any_true_as_i32.or_operand") (param $0 v128) (param $1 v128) (result i32)
320 (i32.or (v128.any_true (local.get $0)) (v128.any_true (local.get $1)))
322 (func (export "i16x8_any_true_as_i32.or_operand") (param $0 v128) (param $1 v128) (result i32)
323 (i32.or (v128.any_true (local.get $0)) (v128.any_true (local.get $1)))
325 (func (export "i32x4_any_true_as_i32.or_operand") (param $0 v128) (param $1 v128) (result i32)
326 (i32.or (v128.any_true (local.get $0)) (v128.any_true (local.get $1)))
328 ;; any_true as i32.xor operand
329 (func (export "i8x16_any_true_as_i32.xor_operand") (param $0 v128) (param $1 v128) (result i32)
330 (i32.xor (v128.any_true (local.get $0)) (v128.any_true (local.get $1)))
332 (func (export "i16x8_any_true_as_i32.xor_operand") (param $0 v128) (param $1 v128) (result i32)
333 (i32.xor (v128.any_true (local.get $0)) (v128.any_true (local.get $1)))
335 (func (export "i32x4_any_true_as_i32.xor_operand") (param $0 v128) (param $1 v128) (result i32)
336 (i32.xor (v128.any_true (local.get $0)) (v128.any_true (local.get $1)))
338 ;; all_true as i32.and operand
339 (func (export "i8x16_all_true_as_i32.and_operand") (param $0 v128) (param $1 v128) (result i32)
340 (i32.and (i8x16.all_true (local.get $0)) (i8x16.all_true (local.get $1)))
342 (func (export "i16x8_all_true_as_i32.and_operand") (param $0 v128) (param $1 v128) (result i32)
343 (i32.and (i16x8.all_true (local.get $0)) (i16x8.all_true (local.get $1)))
345 (func (export "i32x4_all_true_as_i32.and_operand") (param $0 v128) (param $1 v128) (result i32)
346 (i32.and (i32x4.all_true (local.get $0)) (i32x4.all_true (local.get $1)))
348 ;; all_true as i32.or operand
349 (func (export "i8x16_all_true_as_i32.or_operand") (param $0 v128) (param $1 v128) (result i32)
350 (i32.or (i8x16.all_true (local.get $0)) (i8x16.all_true (local.get $1)))
352 (func (export "i16x8_all_true_as_i32.or_operand") (param $0 v128) (param $1 v128) (result i32)
353 (i32.or (i16x8.all_true (local.get $0)) (i16x8.all_true (local.get $1)))
355 (func (export "i32x4_all_true_as_i32.or_operand") (param $0 v128) (param $1 v128) (result i32)
356 (i32.or (i32x4.all_true (local.get $0)) (i32x4.all_true (local.get $1)))
358 ;; all_true as i32.xor operand
359 (func (export "i8x16_all_true_as_i32.xor_operand") (param $0 v128) (param $1 v128) (result i32)
360 (i32.xor (i8x16.all_true (local.get $0)) (i8x16.all_true (local.get $1)))
362 (func (export "i16x8_all_true_as_i32.xor_operand") (param $0 v128) (param $1 v128) (result i32)
363 (i32.xor (i16x8.all_true (local.get $0)) (i16x8.all_true (local.get $1)))
365 (func (export "i32x4_all_true_as_i32.xor_operand") (param $0 v128) (param $1 v128) (result i32)
366 (i32.xor (i32x4.all_true (local.get $0)) (i32x4.all_true (local.get $1)))
368 ;; any_true with v128.not
369 (func (export "i8x16_any_true_with_v128.not") (param $0 v128) (result i32)
370 (v128.any_true (v128.not (local.get $0)))
372 (func (export "i16x8_any_true_with_v128.not") (param $0 v128) (result i32)
373 (v128.any_true (v128.not (local.get $0)))
375 (func (export "i32x4_any_true_with_v128.not") (param $0 v128) (result i32)
376 (v128.any_true (v128.not (local.get $0)))
378 ;; any_true with v128.and
379 (func (export "i8x16_any_true_with_v128.and") (param $0 v128) (param $1 v128) (result i32)
380 (v128.any_true (v128.and (local.get $0) (local.get $1)))
382 (func (export "i16x8_any_true_with_v128.and") (param $0 v128) (param $1 v128) (result i32)
383 (v128.any_true (v128.and (local.get $0) (local.get $1)))
385 (func (export "i32x4_any_true_with_v128.and") (param $0 v128) (param $1 v128) (result i32)
386 (v128.any_true (v128.and (local.get $0) (local.get $1)))
388 ;; any_true with v128.or
389 (func (export "i8x16_any_true_with_v128.or") (param $0 v128) (param $1 v128) (result i32)
390 (v128.any_true (v128.or (local.get $0) (local.get $1)))
392 (func (export "i16x8_any_true_with_v128.or") (param $0 v128) (param $1 v128) (result i32)
393 (v128.any_true (v128.or (local.get $0) (local.get $1)))
395 (func (export "i32x4_any_true_with_v128.or") (param $0 v128) (param $1 v128) (result i32)
396 (v128.any_true (v128.or (local.get $0) (local.get $1)))
398 ;; any_true with v128.xor
399 (func (export "i8x16_any_true_with_v128.xor") (param $0 v128) (param $1 v128) (result i32)
400 (v128.any_true (v128.xor (local.get $0) (local.get $1)))
402 (func (export "i16x8_any_true_with_v128.xor") (param $0 v128) (param $1 v128) (result i32)
403 (v128.any_true (v128.xor (local.get $0) (local.get $1)))
405 (func (export "i32x4_any_true_with_v128.xor") (param $0 v128) (param $1 v128) (result i32)
406 (v128.any_true (v128.xor (local.get $0) (local.get $1)))
408 ;; any_true with v128.bitselect
409 (func (export "i8x16_any_true_with_v128.bitselect") (param $0 v128) (param $1 v128) (param $2 v128) (result i32)
410 (v128.any_true (v128.bitselect (local.get $0) (local.get $1) (local.get $2)))
412 (func (export "i16x8_any_true_with_v128.bitselect") (param $0 v128) (param $1 v128) (param $2 v128) (result i32)
413 (v128.any_true (v128.bitselect (local.get $0) (local.get $1) (local.get $2)))
415 (func (export "i32x4_any_true_with_v128.bitselect") (param $0 v128) (param $1 v128) (param $2 v128) (result i32)
416 (v128.any_true (v128.bitselect (local.get $0) (local.get $1) (local.get $2)))
418 ;; all_true with v128.not
419 (func (export "i8x16_all_true_with_v128.not") (param $0 v128) (result i32)
420 (i8x16.all_true (v128.not (local.get $0)))
422 (func (export "i16x8_all_true_with_v128.not") (param $0 v128) (result i32)
423 (i16x8.all_true (v128.not (local.get $0)))
425 (func (export "i32x4_all_true_with_v128.not") (param $0 v128) (result i32)
426 (i32x4.all_true (v128.not (local.get $0)))
428 ;; all_true with v128.and
429 (func (export "i8x16_all_true_with_v128.and") (param $0 v128) (param $1 v128) (result i32)
430 (i8x16.all_true (v128.and (local.get $0) (local.get $1)))
432 (func (export "i16x8_all_true_with_v128.and") (param $0 v128) (param $1 v128) (result i32)
433 (i16x8.all_true (v128.and (local.get $0) (local.get $1)))
435 (func (export "i32x4_all_true_with_v128.and") (param $0 v128) (param $1 v128) (result i32)
436 (i32x4.all_true (v128.and (local.get $0) (local.get $1)))
438 ;; all_true with v128.or
439 (func (export "i8x16_all_true_with_v128.or") (param $0 v128) (param $1 v128) (result i32)
440 (i8x16.all_true (v128.or (local.get $0) (local.get $1)))
442 (func (export "i16x8_all_true_with_v128.or") (param $0 v128) (param $1 v128) (result i32)
443 (i16x8.all_true (v128.or (local.get $0) (local.get $1)))
445 (func (export "i32x4_all_true_with_v128.or") (param $0 v128) (param $1 v128) (result i32)
446 (i32x4.all_true (v128.or (local.get $0) (local.get $1)))
448 ;; all_true with v128.xor
449 (func (export "i8x16_all_true_with_v128.xor") (param $0 v128) (param $1 v128) (result i32)
450 (i8x16.all_true (v128.xor (local.get $0) (local.get $1)))
452 (func (export "i16x8_all_true_with_v128.xor") (param $0 v128) (param $1 v128) (result i32)
453 (i16x8.all_true (v128.xor (local.get $0) (local.get $1)))
455 (func (export "i32x4_all_true_with_v128.xor") (param $0 v128) (param $1 v128) (result i32)
456 (i32x4.all_true (v128.xor (local.get $0) (local.get $1)))
458 ;; all_true with v128.bitselect
459 (func (export "i8x16_all_true_with_v128.bitselect") (param $0 v128) (param $1 v128) (param $2 v128) (result i32)
460 (i8x16.all_true (v128.bitselect (local.get $0) (local.get $1) (local.get $2)))
462 (func (export "i16x8_all_true_with_v128.bitselect") (param $0 v128) (param $1 v128) (param $2 v128) (result i32)
463 (i16x8.all_true (v128.bitselect (local.get $0) (local.get $1) (local.get $2)))
465 (func (export "i32x4_all_true_with_v128.bitselect") (param $0 v128) (param $1 v128) (param $2 v128) (result i32)
466 (i32x4.all_true (v128.bitselect (local.get $0) (local.get $1) (local.get $2)))
470 ;; 'any_true' as 'if' condition
472 (assert_return (invoke "i8x16_any_true_as_if_cond" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0))
474 (assert_return (invoke "i8x16_any_true_as_if_cond" (v128.const i8x16 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0))
476 (assert_return (invoke "i8x16_any_true_as_if_cond" (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1))
479 (assert_return (invoke "i16x8_any_true_as_if_cond" (v128.const i16x8 0 0 0 0 0 0 0 0))
481 (assert_return (invoke "i16x8_any_true_as_if_cond" (v128.const i16x8 0 0 1 0 0 0 1 0))
483 (assert_return (invoke "i16x8_any_true_as_if_cond" (v128.const i16x8 1 1 1 1 1 1 1 1))
486 (assert_return (invoke "i32x4_any_true_as_if_cond" (v128.const i32x4 0 0 0 0))
488 (assert_return (invoke "i32x4_any_true_as_if_cond" (v128.const i32x4 0 0 1 0))
490 (assert_return (invoke "i32x4_any_true_as_if_cond" (v128.const i32x4 1 1 1 1))
493 ;; 'all_true' as 'if' condition
495 (assert_return (invoke "i8x16_all_true_as_if_cond" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0))
497 (assert_return (invoke "i8x16_all_true_as_if_cond" (v128.const i8x16 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0))
499 (assert_return (invoke "i8x16_all_true_as_if_cond" (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1))
502 (assert_return (invoke "i16x8_all_true_as_if_cond" (v128.const i16x8 0 0 0 0 0 0 0 0))
504 (assert_return (invoke "i16x8_all_true_as_if_cond" (v128.const i16x8 1 1 1 0 1 1 1 0))
506 (assert_return (invoke "i16x8_all_true_as_if_cond" (v128.const i16x8 1 1 1 1 1 1 1 1))
509 (assert_return (invoke "i32x4_all_true_as_if_cond" (v128.const i32x4 0 0 0 0))
511 (assert_return (invoke "i32x4_all_true_as_if_cond" (v128.const i32x4 1 1 1 0))
513 (assert_return (invoke "i32x4_all_true_as_if_cond" (v128.const i32x4 1 1 1 1))
516 ;; any_true as select condition
517 (assert_return (invoke "i8x16_any_true_as_select_cond" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0))
519 (assert_return (invoke "i8x16_any_true_as_select_cond" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0))
521 (assert_return (invoke "i16x8_any_true_as_select_cond" (v128.const i16x8 0 0 0 0 0 0 0 0))
523 (assert_return (invoke "i16x8_any_true_as_select_cond" (v128.const i16x8 0 0 0 0 0 0 1 0))
525 (assert_return (invoke "i32x4_any_true_as_select_cond" (v128.const i32x4 0 0 0 0))
527 (assert_return (invoke "i32x4_any_true_as_select_cond" (v128.const i32x4 0 0 1 0))
529 ;; all_true as select condition
530 (assert_return (invoke "i8x16_all_true_as_select_cond" (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1))
532 (assert_return (invoke "i8x16_all_true_as_select_cond" (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1))
534 (assert_return (invoke "i16x8_all_true_as_select_cond" (v128.const i16x8 1 1 1 1 1 1 1 1))
536 (assert_return (invoke "i16x8_all_true_as_select_cond" (v128.const i16x8 1 1 1 1 1 1 0 1))
538 (assert_return (invoke "i32x4_all_true_as_select_cond" (v128.const i32x4 1 1 1 1))
540 (assert_return (invoke "i32x4_all_true_as_select_cond" (v128.const i32x4 1 1 0 1))
542 ;; any_true as br_if condition
543 (assert_return (invoke "i8x16_any_true_as_br_if_cond" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0))
545 (assert_return (invoke "i8x16_any_true_as_br_if_cond" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0))
547 (assert_return (invoke "i16x8_any_true_as_br_if_cond" (v128.const i16x8 0 0 0 0 0 0 0 0))
549 (assert_return (invoke "i16x8_any_true_as_br_if_cond" (v128.const i16x8 0 0 0 0 0 0 1 0))
551 (assert_return (invoke "i32x4_any_true_as_br_if_cond" (v128.const i32x4 0 0 0 0))
553 (assert_return (invoke "i32x4_any_true_as_br_if_cond" (v128.const i32x4 0 0 1 0))
555 ;; all_true as br_if condition
556 (assert_return (invoke "i8x16_all_true_as_br_if_cond" (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1))
558 (assert_return (invoke "i8x16_all_true_as_br_if_cond" (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1))
560 (assert_return (invoke "i16x8_all_true_as_br_if_cond" (v128.const i16x8 1 1 1 1 1 1 1 1))
562 (assert_return (invoke "i16x8_all_true_as_br_if_cond" (v128.const i16x8 1 1 1 1 1 1 0 1))
564 (assert_return (invoke "i32x4_all_true_as_br_if_cond" (v128.const i32x4 1 1 1 1))
566 (assert_return (invoke "i32x4_all_true_as_br_if_cond" (v128.const i32x4 1 1 0 1))
568 ;; any_true as and operand
569 (assert_return (invoke "i8x16_any_true_as_i32.and_operand" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)
570 (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0))
572 (assert_return (invoke "i8x16_any_true_as_i32.and_operand" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)
573 (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0))
575 (assert_return (invoke "i8x16_any_true_as_i32.and_operand" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0)
576 (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0))
578 (assert_return (invoke "i16x8_any_true_as_i32.and_operand" (v128.const i16x8 0 0 0 0 0 0 0 0)
579 (v128.const i16x8 0 0 0 0 0 0 0 0))
581 (assert_return (invoke "i16x8_any_true_as_i32.and_operand" (v128.const i16x8 0 0 0 0 0 0 0 0)
582 (v128.const i16x8 0 0 0 0 0 0 1 0))
584 (assert_return (invoke "i16x8_any_true_as_i32.and_operand" (v128.const i16x8 0 0 0 0 0 0 1 0)
585 (v128.const i16x8 0 0 0 0 0 0 1 0))
587 (assert_return (invoke "i32x4_any_true_as_i32.and_operand" (v128.const i32x4 0 0 0 0)
588 (v128.const i32x4 0 0 0 0))
590 (assert_return (invoke "i32x4_any_true_as_i32.and_operand" (v128.const i32x4 0 0 0 0)
591 (v128.const i32x4 0 0 1 0))
593 (assert_return (invoke "i32x4_any_true_as_i32.and_operand" (v128.const i32x4 0 0 1 0)
594 (v128.const i32x4 0 0 1 0))
596 ;; any_true as or operand
597 (assert_return (invoke "i8x16_any_true_as_i32.or_operand" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)
598 (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0))
600 (assert_return (invoke "i8x16_any_true_as_i32.or_operand" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)
601 (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0))
603 (assert_return (invoke "i8x16_any_true_as_i32.or_operand" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0)
604 (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0))
606 (assert_return (invoke "i16x8_any_true_as_i32.or_operand" (v128.const i16x8 0 0 0 0 0 0 0 0)
607 (v128.const i16x8 0 0 0 0 0 0 0 0))
609 (assert_return (invoke "i16x8_any_true_as_i32.or_operand" (v128.const i16x8 0 0 0 0 0 0 0 0)
610 (v128.const i16x8 0 0 0 0 0 0 1 0))
612 (assert_return (invoke "i16x8_any_true_as_i32.or_operand" (v128.const i16x8 0 0 0 0 0 0 1 0)
613 (v128.const i16x8 0 0 0 0 0 0 1 0))
615 (assert_return (invoke "i32x4_any_true_as_i32.or_operand" (v128.const i32x4 0 0 0 0)
616 (v128.const i32x4 0 0 0 0))
618 (assert_return (invoke "i32x4_any_true_as_i32.or_operand" (v128.const i32x4 0 0 0 0)
619 (v128.const i32x4 0 0 1 0))
621 (assert_return (invoke "i32x4_any_true_as_i32.or_operand" (v128.const i32x4 0 0 1 0)
622 (v128.const i32x4 0 0 1 0))
624 ;; any_true as xor operand
625 (assert_return (invoke "i8x16_any_true_as_i32.xor_operand" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)
626 (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0))
628 (assert_return (invoke "i8x16_any_true_as_i32.xor_operand" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)
629 (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0))
631 (assert_return (invoke "i8x16_any_true_as_i32.xor_operand" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0)
632 (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0))
634 (assert_return (invoke "i16x8_any_true_as_i32.xor_operand" (v128.const i16x8 0 0 0 0 0 0 0 0)
635 (v128.const i16x8 0 0 0 0 0 0 0 0))
637 (assert_return (invoke "i16x8_any_true_as_i32.xor_operand" (v128.const i16x8 0 0 0 0 0 0 0 0)
638 (v128.const i16x8 0 0 0 0 0 0 1 0))
640 (assert_return (invoke "i16x8_any_true_as_i32.xor_operand" (v128.const i16x8 0 0 0 0 0 0 1 0)
641 (v128.const i16x8 0 0 0 0 0 0 1 0))
643 (assert_return (invoke "i32x4_any_true_as_i32.xor_operand" (v128.const i32x4 0 0 0 0)
644 (v128.const i32x4 0 0 0 0))
646 (assert_return (invoke "i32x4_any_true_as_i32.xor_operand" (v128.const i32x4 0 0 0 0)
647 (v128.const i32x4 0 0 1 0))
649 (assert_return (invoke "i32x4_any_true_as_i32.xor_operand" (v128.const i32x4 0 0 1 0)
650 (v128.const i32x4 0 0 1 0))
652 ;; all_true as and operand
653 (assert_return (invoke "i8x16_all_true_as_i32.and_operand" (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)
654 (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1))
656 (assert_return (invoke "i8x16_all_true_as_i32.and_operand" (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)
657 (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1))
659 (assert_return (invoke "i8x16_all_true_as_i32.and_operand" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)
660 (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0))
662 (assert_return (invoke "i16x8_all_true_as_i32.and_operand" (v128.const i16x8 1 1 1 1 1 1 1 1)
663 (v128.const i16x8 1 1 1 1 1 1 1 1))
665 (assert_return (invoke "i16x8_all_true_as_i32.and_operand" (v128.const i16x8 1 1 1 1 1 1 1 1)
666 (v128.const i16x8 1 1 1 1 1 1 0 1))
668 (assert_return (invoke "i16x8_all_true_as_i32.and_operand" (v128.const i16x8 0 0 0 0 0 0 0 0)
669 (v128.const i16x8 0 0 0 0 0 0 1 0))
671 (assert_return (invoke "i32x4_all_true_as_i32.and_operand" (v128.const i32x4 1 1 1 1)
672 (v128.const i32x4 1 1 1 1))
674 (assert_return (invoke "i32x4_all_true_as_i32.and_operand" (v128.const i32x4 1 1 1 1)
675 (v128.const i32x4 1 1 0 1))
677 (assert_return (invoke "i32x4_all_true_as_i32.and_operand" (v128.const i32x4 0 0 0 0)
678 (v128.const i32x4 0 0 1 0))
680 ;; all_true as or operand
681 (assert_return (invoke "i8x16_all_true_as_i32.or_operand" (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)
682 (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1))
684 (assert_return (invoke "i8x16_all_true_as_i32.or_operand" (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)
685 (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1))
687 (assert_return (invoke "i8x16_all_true_as_i32.or_operand" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)
688 (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0))
690 (assert_return (invoke "i16x8_all_true_as_i32.or_operand" (v128.const i16x8 1 1 1 1 1 1 1 1)
691 (v128.const i16x8 1 1 1 1 1 1 1 1))
693 (assert_return (invoke "i16x8_all_true_as_i32.or_operand" (v128.const i16x8 1 1 1 1 1 1 1 1)
694 (v128.const i16x8 1 1 1 1 1 1 0 1))
696 (assert_return (invoke "i16x8_all_true_as_i32.or_operand" (v128.const i16x8 0 0 0 0 0 0 0 0)
697 (v128.const i16x8 0 0 0 0 0 0 0 0))
699 (assert_return (invoke "i32x4_all_true_as_i32.or_operand" (v128.const i32x4 1 1 1 1)
700 (v128.const i32x4 1 1 1 1))
702 (assert_return (invoke "i32x4_all_true_as_i32.or_operand" (v128.const i32x4 1 1 1 1)
703 (v128.const i32x4 1 1 0 1))
705 (assert_return (invoke "i32x4_all_true_as_i32.or_operand" (v128.const i32x4 0 0 0 0)
706 (v128.const i32x4 0 0 0 0))
708 ;; all_true as xor operand
709 (assert_return (invoke "i8x16_all_true_as_i32.xor_operand" (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)
710 (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1))
712 (assert_return (invoke "i8x16_all_true_as_i32.xor_operand" (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)
713 (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1))
715 (assert_return (invoke "i8x16_all_true_as_i32.xor_operand" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)
716 (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0))
718 (assert_return (invoke "i16x8_all_true_as_i32.xor_operand" (v128.const i16x8 1 1 1 1 1 1 1 1)
719 (v128.const i16x8 1 1 1 1 1 1 1 1))
721 (assert_return (invoke "i16x8_all_true_as_i32.xor_operand" (v128.const i16x8 1 1 1 1 1 1 1 1)
722 (v128.const i16x8 1 1 1 1 1 1 0 1))
724 (assert_return (invoke "i16x8_all_true_as_i32.xor_operand" (v128.const i16x8 0 0 0 0 0 0 0 0)
725 (v128.const i16x8 0 0 0 0 0 0 0 0))
727 (assert_return (invoke "i32x4_all_true_as_i32.xor_operand" (v128.const i32x4 1 1 1 1)
728 (v128.const i32x4 1 1 1 1))
730 (assert_return (invoke "i32x4_all_true_as_i32.xor_operand" (v128.const i32x4 1 1 1 1)
731 (v128.const i32x4 1 1 0 1))
733 (assert_return (invoke "i32x4_all_true_as_i32.xor_operand" (v128.const i32x4 0 0 0 0)
734 (v128.const i32x4 0 0 0 0))
736 ;; any_true with v128.not
737 (assert_return (invoke "i8x16_any_true_with_v128.not" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0))
739 (assert_return (invoke "i8x16_any_true_with_v128.not" (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1))
741 (assert_return (invoke "i8x16_any_true_with_v128.not" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0))
743 (assert_return (invoke "i16x8_any_true_with_v128.not" (v128.const i16x8 0 0 0 0 0 0 0 0))
745 (assert_return (invoke "i16x8_any_true_with_v128.not" (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1))
747 (assert_return (invoke "i16x8_any_true_with_v128.not" (v128.const i16x8 0 0 0 0 0 0 -1 0))
749 (assert_return (invoke "i32x4_any_true_with_v128.not" (v128.const i32x4 0 0 0 0))
751 (assert_return (invoke "i32x4_any_true_with_v128.not" (v128.const i32x4 -1 -1 -1 -1))
753 (assert_return (invoke "i32x4_any_true_with_v128.not" (v128.const i32x4 0 0 -1 0))
755 ;; any_true with v128.and
756 (assert_return (invoke "i8x16_any_true_with_v128.and" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)
757 (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0))
759 (assert_return (invoke "i8x16_any_true_with_v128.and" (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)
760 (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1))
762 (assert_return (invoke "i8x16_any_true_with_v128.and" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0)
763 (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0))
765 (assert_return (invoke "i16x8_any_true_with_v128.and" (v128.const i16x8 0 0 0 0 0 0 0 0)
766 (v128.const i16x8 0 0 0 0 0 0 0 0))
768 (assert_return (invoke "i16x8_any_true_with_v128.and" (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)
769 (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1))
771 (assert_return (invoke "i16x8_any_true_with_v128.and" (v128.const i16x8 0 0 0 0 0 0 -1 0)
772 (v128.const i16x8 0 0 0 0 0 0 -1 0))
774 (assert_return (invoke "i32x4_any_true_with_v128.and" (v128.const i32x4 0 0 0 0)
775 (v128.const i32x4 0 0 0 0))
777 (assert_return (invoke "i32x4_any_true_with_v128.and" (v128.const i32x4 -1 -1 -1 -1)
778 (v128.const i32x4 -1 -1 -1 -1))
780 (assert_return (invoke "i32x4_any_true_with_v128.and" (v128.const i32x4 0 0 -1 0)
781 (v128.const i32x4 0 0 -1 0))
783 ;; any_true with v128.or
784 (assert_return (invoke "i8x16_any_true_with_v128.or" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)
785 (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0))
787 (assert_return (invoke "i8x16_any_true_with_v128.or" (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)
788 (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1))
790 (assert_return (invoke "i8x16_any_true_with_v128.or" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0)
791 (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0))
793 (assert_return (invoke "i16x8_any_true_with_v128.or" (v128.const i16x8 0 0 0 0 0 0 0 0)
794 (v128.const i16x8 0 0 0 0 0 0 0 0))
796 (assert_return (invoke "i16x8_any_true_with_v128.or" (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)
797 (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1))
799 (assert_return (invoke "i16x8_any_true_with_v128.or" (v128.const i16x8 0 0 0 0 0 0 -1 0)
800 (v128.const i16x8 0 0 0 0 0 0 -1 0))
802 (assert_return (invoke "i32x4_any_true_with_v128.or" (v128.const i32x4 0 0 0 0)
803 (v128.const i32x4 0 0 0 0))
805 (assert_return (invoke "i32x4_any_true_with_v128.or" (v128.const i32x4 -1 -1 -1 -1)
806 (v128.const i32x4 -1 -1 -1 -1))
808 (assert_return (invoke "i32x4_any_true_with_v128.or" (v128.const i32x4 0 0 -1 0)
809 (v128.const i32x4 0 0 -1 0))
811 ;; any_true with v128.xor
812 (assert_return (invoke "i8x16_any_true_with_v128.xor" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)
813 (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0))
815 (assert_return (invoke "i8x16_any_true_with_v128.xor" (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)
816 (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1))
818 (assert_return (invoke "i8x16_any_true_with_v128.xor" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)
819 (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0))
821 (assert_return (invoke "i16x8_any_true_with_v128.xor" (v128.const i16x8 0 0 0 0 0 0 0 0)
822 (v128.const i16x8 0 0 0 0 0 0 0 0))
824 (assert_return (invoke "i16x8_any_true_with_v128.xor" (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)
825 (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1))
827 (assert_return (invoke "i16x8_any_true_with_v128.xor" (v128.const i16x8 0 0 0 0 0 0 0 0)
828 (v128.const i16x8 0 0 0 0 0 0 -1 0))
830 (assert_return (invoke "i32x4_any_true_with_v128.xor" (v128.const i32x4 0 0 0 0)
831 (v128.const i32x4 0 0 0 0))
833 (assert_return (invoke "i32x4_any_true_with_v128.xor" (v128.const i32x4 -1 -1 -1 -1)
834 (v128.const i32x4 -1 -1 -1 -1))
836 (assert_return (invoke "i32x4_any_true_with_v128.xor" (v128.const i32x4 0 0 0 0)
837 (v128.const i32x4 0 0 -1 0))
839 ;; any_true with v128.bitselect
840 (assert_return (invoke "i8x16_any_true_with_v128.bitselect" (v128.const i8x16 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA)
841 (v128.const i8x16 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55)
842 (v128.const i8x16 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55))
844 (assert_return (invoke "i8x16_any_true_with_v128.bitselect" (v128.const i8x16 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA)
845 (v128.const i8x16 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55)
846 (v128.const i8x16 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0xFF 0x55))
848 (assert_return (invoke "i16x8_any_true_with_v128.bitselect" (v128.const i16x8 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA)
849 (v128.const i16x8 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55)
850 (v128.const i16x8 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55))
852 (assert_return (invoke "i16x8_any_true_with_v128.bitselect" (v128.const i16x8 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA)
853 (v128.const i16x8 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55)
854 (v128.const i16x8 0x55 0x55 0x55 0x55 0x55 0x55 0xFF 0x55))
856 (assert_return (invoke "i32x4_any_true_with_v128.bitselect" (v128.const i32x4 0xAA 0xAA 0xAA 0xAA)
857 (v128.const i32x4 0x55 0x55 0x55 0x55)
858 (v128.const i32x4 0x55 0x55 0x55 0x55))
860 (assert_return (invoke "i32x4_any_true_with_v128.bitselect" (v128.const i32x4 0xAA 0xAA 0xAA 0xAA)
861 (v128.const i32x4 0x55 0x55 0x55 0x55)
862 (v128.const i32x4 0x55 0x55 0xFF 0x55))
864 ;; all_true with v128.not
865 (assert_return (invoke "i8x16_all_true_with_v128.not" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0))
867 (assert_return (invoke "i8x16_all_true_with_v128.not" (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1))
869 (assert_return (invoke "i8x16_all_true_with_v128.not" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0))
871 (assert_return (invoke "i16x8_all_true_with_v128.not" (v128.const i16x8 0 0 0 0 0 0 0 0))
873 (assert_return (invoke "i16x8_all_true_with_v128.not" (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1))
875 (assert_return (invoke "i16x8_all_true_with_v128.not" (v128.const i16x8 0 0 0 0 0 0 -1 0))
877 (assert_return (invoke "i32x4_all_true_with_v128.not" (v128.const i32x4 0 0 0 0))
879 (assert_return (invoke "i32x4_all_true_with_v128.not" (v128.const i32x4 -1 -1 -1 -1))
881 (assert_return (invoke "i32x4_all_true_with_v128.not" (v128.const i32x4 0 0 -1 0))
883 ;; all_true with v128.and
884 (assert_return (invoke "i8x16_all_true_with_v128.and" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)
885 (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0))
887 (assert_return (invoke "i8x16_all_true_with_v128.and" (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)
888 (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1))
890 (assert_return (invoke "i8x16_all_true_with_v128.and" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0)
891 (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0))
893 (assert_return (invoke "i16x8_all_true_with_v128.and" (v128.const i16x8 0 0 0 0 0 0 0 0)
894 (v128.const i16x8 0 0 0 0 0 0 0 0))
896 (assert_return (invoke "i16x8_all_true_with_v128.and" (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)
897 (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1))
899 (assert_return (invoke "i16x8_all_true_with_v128.and" (v128.const i16x8 0 0 0 0 0 0 -1 0)
900 (v128.const i16x8 0 0 0 0 0 0 -1 0))
902 (assert_return (invoke "i32x4_all_true_with_v128.and" (v128.const i32x4 0 0 0 0)
903 (v128.const i32x4 0 0 0 0))
905 (assert_return (invoke "i32x4_all_true_with_v128.and" (v128.const i32x4 -1 -1 -1 -1)
906 (v128.const i32x4 -1 -1 -1 -1))
908 (assert_return (invoke "i32x4_all_true_with_v128.and" (v128.const i32x4 0 0 -1 0)
909 (v128.const i32x4 0 0 -1 0))
911 ;; all_true with v128.or
912 (assert_return (invoke "i8x16_all_true_with_v128.or" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)
913 (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0))
915 (assert_return (invoke "i8x16_all_true_with_v128.or" (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)
916 (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1))
918 (assert_return (invoke "i8x16_all_true_with_v128.or" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0)
919 (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0))
921 (assert_return (invoke "i16x8_all_true_with_v128.or" (v128.const i16x8 0 0 0 0 0 0 0 0)
922 (v128.const i16x8 0 0 0 0 0 0 0 0))
924 (assert_return (invoke "i16x8_all_true_with_v128.or" (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)
925 (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1))
927 (assert_return (invoke "i16x8_all_true_with_v128.or" (v128.const i16x8 0 0 0 0 0 0 -1 0)
928 (v128.const i16x8 0 0 0 0 0 0 -1 0))
930 (assert_return (invoke "i32x4_all_true_with_v128.or" (v128.const i32x4 0 0 0 0)
931 (v128.const i32x4 0 0 0 0))
933 (assert_return (invoke "i32x4_all_true_with_v128.or" (v128.const i32x4 -1 -1 -1 -1)
934 (v128.const i32x4 -1 -1 -1 -1))
936 (assert_return (invoke "i32x4_all_true_with_v128.or" (v128.const i32x4 0 0 -1 0)
937 (v128.const i32x4 0 0 -1 0))
939 ;; all_true with v128.xor
940 (assert_return (invoke "i8x16_all_true_with_v128.xor" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)
941 (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0))
943 (assert_return (invoke "i8x16_all_true_with_v128.xor" (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)
944 (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1))
946 (assert_return (invoke "i8x16_all_true_with_v128.xor" (v128.const i8x16 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1)
947 (v128.const i8x16 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0))
949 (assert_return (invoke "i16x8_all_true_with_v128.xor" (v128.const i16x8 0 0 0 0 0 0 0 0)
950 (v128.const i16x8 0 0 0 0 0 0 0 0))
952 (assert_return (invoke "i16x8_all_true_with_v128.xor" (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)
953 (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1))
955 (assert_return (invoke "i16x8_all_true_with_v128.xor" (v128.const i16x8 0 -1 0 -1 0 -1 0 -1)
956 (v128.const i16x8 -1 0 -1 0 -1 0 -1 0))
958 (assert_return (invoke "i32x4_all_true_with_v128.xor" (v128.const i32x4 0 0 0 0)
959 (v128.const i32x4 0 0 0 0))
961 (assert_return (invoke "i32x4_all_true_with_v128.xor" (v128.const i32x4 -1 -1 -1 -1)
962 (v128.const i32x4 -1 -1 -1 -1))
964 (assert_return (invoke "i32x4_all_true_with_v128.xor" (v128.const i32x4 0 -1 0 -1)
965 (v128.const i32x4 -1 0 -1 0))
967 ;; all_true with v128.bitselect
968 (assert_return (invoke "i8x16_all_true_with_v128.bitselect" (v128.const i8x16 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA)
969 (v128.const i8x16 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55)
970 (v128.const i8x16 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55))
972 (assert_return (invoke "i8x16_all_true_with_v128.bitselect" (v128.const i8x16 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA)
973 (v128.const i8x16 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55)
974 (v128.const i8x16 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA))
976 (assert_return (invoke "i16x8_all_true_with_v128.bitselect" (v128.const i16x8 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA)
977 (v128.const i16x8 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55)
978 (v128.const i16x8 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55))
980 (assert_return (invoke "i16x8_all_true_with_v128.bitselect" (v128.const i16x8 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA)
981 (v128.const i16x8 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55)
982 (v128.const i16x8 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA))
984 (assert_return (invoke "i32x4_all_true_with_v128.bitselect" (v128.const i32x4 0xAA 0xAA 0xAA 0xAA)
985 (v128.const i32x4 0x55 0x55 0x55 0x55)
986 (v128.const i32x4 0x55 0x55 0x55 0x55))
988 (assert_return (invoke "i32x4_all_true_with_v128.bitselect" (v128.const i32x4 0xAA 0xAA 0xAA 0xAA)
989 (v128.const i32x4 0x55 0x55 0x55 0x55)
990 (v128.const i32x4 0xAA 0xAA 0xAA 0xAA))
995 (assert_invalid (module (func (result i32) (v128.any_true (i32.const 0)))) "type mismatch")
996 (assert_invalid (module (func (result i32) (i8x16.all_true (i32.const 0)))) "type mismatch")
997 (assert_invalid (module (func (result i32) (v128.any_true (i32.const 0)))) "type mismatch")
998 (assert_invalid (module (func (result i32) (i16x8.all_true (i32.const 0)))) "type mismatch")
999 (assert_invalid (module (func (result i32) (v128.any_true (i32.const 0)))) "type mismatch")
1000 (assert_invalid (module (func (result i32) (i32x4.all_true (i32.const 0)))) "type mismatch")
1002 ;; Unknown operators
1004 (assert_malformed (module quote "(memory 1) (func (result i32) (f32x4.any_true (v128.const i32x4 0 0 0 0)))") "unknown operator")
1005 (assert_malformed (module quote "(memory 1) (func (result i32) (f32x4.all_true (v128.const i32x4 0 0 0 0)))") "unknown operator")
1006 (assert_malformed (module quote "(memory 1) (func (result i32) (f64x2.any_true (v128.const i32x4 0 0 0 0)))") "unknown operator")
1007 (assert_malformed (module quote "(memory 1) (func (result i32) (f64x2.all_true (v128.const i32x4 0 0 0 0)))") "unknown operator")
1009 ;; Test operation with empty argument
1013 (func $v128.any_true-arg-empty (result v128)
1021 (func $i8x16.all_true-arg-empty (result v128)
1029 (func $v128.any_true-arg-empty (result v128)
1037 (func $i16x8.all_true-arg-empty (result v128)
1045 (func $v128.any_true-arg-empty (result v128)
1053 (func $i32x4.all_true-arg-empty (result v128)