1// REQUIRES: webassembly-registered-target
2// expected-no-diagnostics
3
4// RUN: %clang %s -O2 -S -o - -target wasm32-unknown-unknown \
5// RUN: -msimd128 -mrelaxed-simd -Wcast-qual -Werror | FileCheck %s
6
7#include <wasm_simd128.h>
8
9// CHECK-LABEL: test_v128_load:
10// CHECK: v128.load 0:p2align=0{{$}}
11v128_t test_v128_load(const void *mem) { return wasm_v128_load(mem: mem); }
12
13// CHECK-LABEL: test_v128_load8_splat:
14// CHECK: v128.load8_splat 0{{$}}
15v128_t test_v128_load8_splat(const void *mem) {
16 return wasm_v128_load8_splat(mem: mem);
17}
18
19// CHECK-LABEL: test_v128_load16_splat:
20// CHECK: v128.load16_splat 0:p2align=0{{$}}
21v128_t test_v128_load16_splat(const void *mem) {
22 return wasm_v128_load16_splat(mem: mem);
23}
24
25// CHECK-LABEL: test_v128_load32_splat:
26// CHECK: v128.load32_splat 0:p2align=0{{$}}
27v128_t test_v128_load32_splat(const void *mem) {
28 return wasm_v128_load32_splat(mem: mem);
29}
30
31// CHECK-LABEL: test_v128_load64_splat:
32// CHECK: v128.load64_splat 0:p2align=0{{$}}
33v128_t test_v128_load64_splat(const void *mem) {
34 return wasm_v128_load64_splat(mem: mem);
35}
36
37// CHECK-LABEL: test_i16x8_load8x8:
38// CHECK: i16x8.load8x8_s 0:p2align=0{{$}}
39v128_t test_i16x8_load8x8(const void *mem) { return wasm_i16x8_load8x8(mem: mem); }
40
41// CHECK-LABEL: test_u16x8_load8x8:
42// CHECK: i16x8.load8x8_u 0:p2align=0{{$}}
43v128_t test_u16x8_load8x8(const void *mem) { return wasm_u16x8_load8x8(mem: mem); }
44
45// CHECK-LABEL: test_i32x4_load16x4:
46// CHECK: i32x4.load16x4_s 0:p2align=0{{$}}
47v128_t test_i32x4_load16x4(const void *mem) { return wasm_i32x4_load16x4(mem: mem); }
48
49// CHECK-LABEL: test_u32x4_load16x4:
50// CHECK: i32x4.load16x4_u 0:p2align=0{{$}}
51v128_t test_u32x4_load16x4(const void *mem) { return wasm_u32x4_load16x4(mem: mem); }
52
53// CHECK-LABEL: test_i64x2_load32x2:
54// CHECK: i64x2.load32x2_s 0:p2align=0{{$}}
55v128_t test_i64x2_load32x2(const void *mem) { return wasm_i64x2_load32x2(mem: mem); }
56
57// CHECK-LABEL: test_u64x2_load32x2:
58// CHECK: i64x2.load32x2_u 0:p2align=0{{$}}
59v128_t test_u64x2_load32x2(const void *mem) { return wasm_u64x2_load32x2(mem: mem); }
60
61// CHECK-LABEL: test_v128_load32_zero:
62// CHECK: v128.load32_zero 0:p2align=0{{$}}
63v128_t test_v128_load32_zero(const void *mem) {
64 return wasm_v128_load32_zero(mem: mem);
65}
66
67// CHECK-LABEL: test_v128_load64_zero:
68// CHECK: v128.load64_zero 0:p2align=0{{$}}
69v128_t test_v128_load64_zero(const void *mem) {
70 return wasm_v128_load64_zero(mem: mem);
71}
72
73// CHECK-LABEL: test_v128_load8_lane:
74// CHECK: v128.load8_lane 0, 15{{$}}
75v128_t test_v128_load8_lane(uint8_t *ptr, v128_t vec) {
76 return wasm_v128_load8_lane(mem: ptr, vec: vec, i: 15);
77}
78
79// CHECK-LABEL: test_v128_load16_lane:
80// CHECK: v128.load16_lane 0:p2align=0, 7{{$}}
81v128_t test_v128_load16_lane(uint16_t *ptr, v128_t vec) {
82 return wasm_v128_load16_lane(mem: ptr, vec: vec, i: 7);
83}
84
85// CHECK-LABEL: test_v128_load32_lane:
86// CHECK: v128.load32_lane 0:p2align=0, 3{{$}}
87v128_t test_v128_load32_lane(uint32_t *ptr, v128_t vec) {
88 return wasm_v128_load32_lane(mem: ptr, vec: vec, i: 3);
89}
90
91// CHECK-LABEL: test_v128_load64_lane:
92// CHECK: v128.load64_lane 0:p2align=0, 1{{$}}
93v128_t test_v128_load64_lane(uint64_t *ptr, v128_t vec) {
94 return wasm_v128_load64_lane(mem: ptr, vec: vec, i: 1);
95}
96
97// CHECK-LABEL: test_v128_store:
98// CHECK: v128.store 0:p2align=0{{$}}
99void test_v128_store(void *mem, v128_t a) { return wasm_v128_store(mem: mem, a: a); }
100
101// CHECK-LABEL: test_v128_store8_lane:
102// CHECK: v128.store8_lane 0, 15{{$}}
103void test_v128_store8_lane(uint8_t *ptr, v128_t vec) {
104 return wasm_v128_store8_lane(mem: ptr, vec: vec, i: 15);
105}
106
107// CHECK-LABEL: test_v128_store16_lane:
108// CHECK: v128.store16_lane 0:p2align=0, 7{{$}}
109void test_v128_store16_lane(uint16_t *ptr, v128_t vec) {
110 return wasm_v128_store16_lane(mem: ptr, vec: vec, i: 7);
111}
112
113// CHECK-LABEL: test_v128_store32_lane:
114// CHECK: v128.store32_lane 0:p2align=0, 3{{$}}
115void test_v128_store32_lane(uint32_t *ptr, v128_t vec) {
116 return wasm_v128_store32_lane(mem: ptr, vec: vec, i: 3);
117}
118
119// CHECK-LABEL: test_v128_store64_lane:
120// CHECK: v128.store64_lane 0:p2align=0, 1{{$}}
121void test_v128_store64_lane(uint64_t *ptr, v128_t vec) {
122 return wasm_v128_store64_lane(mem: ptr, vec: vec, i: 1);
123}
124
125// CHECK-LABEL: test_i8x16_make:
126// CHECK: local.get 0{{$}}
127// CHECK-NEXT: i8x16.splat{{$}}
128// CHECK-NEXT: local.get 1{{$}}
129// CHECK-NEXT: i8x16.replace_lane 1{{$}}
130// CHECK-NEXT: local.get 2{{$}}
131// CHECK-NEXT: i8x16.replace_lane 2{{$}}
132// CHECK-NEXT: local.get 3{{$}}
133// CHECK-NEXT: i8x16.replace_lane 3{{$}}
134// CHECK-NEXT: local.get 4{{$}}
135// CHECK-NEXT: i8x16.replace_lane 4{{$}}
136// CHECK-NEXT: local.get 5{{$}}
137// CHECK-NEXT: i8x16.replace_lane 5{{$}}
138// CHECK-NEXT: local.get 6{{$}}
139// CHECK-NEXT: i8x16.replace_lane 6{{$}}
140// CHECK-NEXT: local.get 7{{$}}
141// CHECK-NEXT: i8x16.replace_lane 7{{$}}
142// CHECK-NEXT: local.get 8{{$}}
143// CHECK-NEXT: i8x16.replace_lane 8{{$}}
144// CHECK-NEXT: local.get 9{{$}}
145// CHECK-NEXT: i8x16.replace_lane 9{{$}}
146// CHECK-NEXT: local.get 10{{$}}
147// CHECK-NEXT: i8x16.replace_lane 10{{$}}
148// CHECK-NEXT: local.get 11{{$}}
149// CHECK-NEXT: i8x16.replace_lane 11{{$}}
150// CHECK-NEXT: local.get 12{{$}}
151// CHECK-NEXT: i8x16.replace_lane 12{{$}}
152// CHECK-NEXT: local.get 13{{$}}
153// CHECK-NEXT: i8x16.replace_lane 13{{$}}
154// CHECK-NEXT: local.get 14{{$}}
155// CHECK-NEXT: i8x16.replace_lane 14{{$}}
156// CHECK-NEXT: local.get 15{{$}}
157// CHECK-NEXT: i8x16.replace_lane 15{{$}}
158v128_t test_i8x16_make(int8_t c0, int8_t c1, int8_t c2, int8_t c3, int8_t c4,
159 int8_t c5, int8_t c6, int8_t c7, int8_t c8, int8_t c9,
160 int8_t c10, int8_t c11, int8_t c12, int8_t c13,
161 int8_t c14, int8_t c15) {
162 return wasm_i8x16_make(c0: c0, c1: c1, c2: c2, c3: c3, c4: c4, c5: c5, c6: c6, c7: c7, c8: c8, c9: c9, c10: c10, c11: c11, c12: c12,
163 c13: c13, c14: c14, c15: c15);
164}
165
166// CHECK-LABEL: test_i16x8_make:
167// CHECK: local.get 0{{$}}
168// CHECK-NEXT: i16x8.splat{{$}}
169// CHECK-NEXT: local.get 1{{$}}
170// CHECK-NEXT: i16x8.replace_lane 1{{$}}
171// CHECK-NEXT: local.get 2{{$}}
172// CHECK-NEXT: i16x8.replace_lane 2{{$}}
173// CHECK-NEXT: local.get 3{{$}}
174// CHECK-NEXT: i16x8.replace_lane 3{{$}}
175// CHECK-NEXT: local.get 4{{$}}
176// CHECK-NEXT: i16x8.replace_lane 4{{$}}
177// CHECK-NEXT: local.get 5{{$}}
178// CHECK-NEXT: i16x8.replace_lane 5{{$}}
179// CHECK-NEXT: local.get 6{{$}}
180// CHECK-NEXT: i16x8.replace_lane 6{{$}}
181// CHECK-NEXT: local.get 7{{$}}
182// CHECK-NEXT: i16x8.replace_lane 7{{$}}
183v128_t test_i16x8_make(int16_t c0, int16_t c1, int16_t c2, int16_t c3,
184 int16_t c4, int16_t c5, int16_t c6, int16_t c7) {
185 return wasm_i16x8_make(c0: c0, c1: c1, c2: c2, c3: c3, c4: c4, c5: c5, c6: c6, c7: c7);
186}
187
188// CHECK-LABEL: test_i32x4_make:
189// CHECK: local.get 0{{$}}
190// CHECK-NEXT: i32x4.splat{{$}}
191// CHECK-NEXT: local.get 1{{$}}
192// CHECK-NEXT: i32x4.replace_lane 1{{$}}
193// CHECK-NEXT: local.get 2{{$}}
194// CHECK-NEXT: i32x4.replace_lane 2{{$}}
195// CHECK-NEXT: local.get 3{{$}}
196// CHECK-NEXT: i32x4.replace_lane 3{{$}}
197v128_t test_i32x4_make(int32_t c0, int32_t c1, int32_t c2, int32_t c3) {
198 return wasm_i32x4_make(c0: c0, c1: c1, c2: c2, c3: c3);
199}
200
201// CHECK-LABEL: test_i64x2_make:
202// CHECK: local.get 0{{$}}
203// CHECK-NEXT: i64x2.splat{{$}}
204// CHECK-NEXT: local.get 1{{$}}
205// CHECK-NEXT: i64x2.replace_lane 1{{$}}
206v128_t test_i64x2_make(int64_t c0, int64_t c1) {
207 return wasm_i64x2_make(c0: c0, c1: c1);
208}
209
210// CHECK-LABEL: test_f32x4_make:
211// CHECK: local.get 0{{$}}
212// CHECK-NEXT: f32x4.splat{{$}}
213// CHECK-NEXT: local.get 1{{$}}
214// CHECK-NEXT: f32x4.replace_lane 1{{$}}
215// CHECK-NEXT: local.get 2{{$}}
216// CHECK-NEXT: f32x4.replace_lane 2{{$}}
217// CHECK-NEXT: local.get 3{{$}}
218// CHECK-NEXT: f32x4.replace_lane 3{{$}}
219v128_t test_f32x4_make(float c0, float c1, float c2, float c3) {
220 return wasm_f32x4_make(c0: c0, c1: c1, c2: c2, c3: c3);
221}
222
223// CHECK-LABEL: test_f64x2_make:
224// CHECK: local.get 0{{$}}
225// CHECK-NEXT: f64x2.splat{{$}}
226// CHECK-NEXT: local.get 1{{$}}
227// CHECK-NEXT: f64x2.replace_lane 1{{$}}
228v128_t test_f64x2_make(double c0, double c1) { return wasm_f64x2_make(c0: c0, c1: c1); }
229
230// CHECK-LABEL: test_i8x16_const:
231// CHECK: v128.const 50462976, 117835012, 185207048, 252579084{{$}}
232v128_t test_i8x16_const() {
233 return wasm_i8x16_const(c0: 0, c1: 1, c2: 2, c3: 3, c4: 4, c5: 5, c6: 6, c7: 7, c8: 8, c9: 9, c10: 10, c11: 11, c12: 12, c13: 13, c14: 14, c15: 15);
234}
235
236// CHECK-LABEL: test_i16x8_const:
237// CHECK: v128.const 65536, 196610, 327684, 458758{{$}}
238v128_t test_i16x8_const() { return wasm_i16x8_const(c0: 0, c1: 1, c2: 2, c3: 3, c4: 4, c5: 5, c6: 6, c7: 7); }
239
240// CHECK-LABEL: test_i32x4_const:
241// CHECK: v128.const 0, 1, 2, 3{{$}}
242v128_t test_i32x4_const() { return wasm_i32x4_const(c0: 0, c1: 1, c2: 2, c3: 3); }
243
244// CHECK-LABEL: test_i64x2_const:
245// CHECK: v128.const 0, 0, 1, 0{{$}}
246v128_t test_i64x2_const() { return wasm_i64x2_const(c0: 0, c1: 1); }
247
248// CHECK-LABEL: test_f32x4_const:
249// CHECK: v128.const 0, 1065353216, 1073741824, 1077936128{{$}}
250v128_t test_f32x4_const() { return wasm_f32x4_const(c0: 0, c1: 1, c2: 2, c3: 3); }
251
252// CHECK-LABEL: test_f64x2_const:
253// CHECK: v128.const 0, 0, 0, 1072693248{{$}}
254v128_t test_f64x2_const() { return wasm_f64x2_const(c0: 0, c1: 1); }
255
256// CHECK-LABEL: test_i8x16_splat:
257// CHECK: i8x16.splat{{$}}
258v128_t test_i8x16_splat(int8_t a) { return wasm_i8x16_splat(a: a); }
259
260// CHECK-LABEL: test_i8x16_extract_lane:
261// CHECK: i8x16.extract_lane_s 15{{$}}
262int8_t test_i8x16_extract_lane(v128_t a) {
263 return wasm_i8x16_extract_lane(a: a, i: 15);
264}
265
266// CHECK-LABEL: test_u8x16_extract_lane:
267// CHECK: i8x16.extract_lane_u 15{{$}}
268uint8_t test_u8x16_extract_lane(v128_t a) {
269 return wasm_u8x16_extract_lane(a: a, i: 15);
270}
271
272// CHECK-LABEL: test_i8x16_replace_lane:
273// CHECK: i8x16.replace_lane 15{{$}}
274v128_t test_i8x16_replace_lane(v128_t a, int8_t b) {
275 return wasm_i8x16_replace_lane(a: a, i: 15, b: b);
276}
277
278// CHECK-LABEL: test_i16x8_splat:
279// CHECK: i16x8.splat{{$}}
280v128_t test_i16x8_splat(int16_t a) { return wasm_i16x8_splat(a: a); }
281
282// CHECK-LABEL: test_i16x8_extract_lane:
283// CHECK: i16x8.extract_lane_s 7{{$}}
284int16_t test_i16x8_extract_lane(v128_t a) {
285 return wasm_i16x8_extract_lane(a: a, i: 7);
286}
287
288// CHECK-LABEL: test_u16x8_extract_lane:
289// CHECK: i16x8.extract_lane_u 7{{$}}
290uint16_t test_u16x8_extract_lane(v128_t a) {
291 return wasm_u16x8_extract_lane(a: a, i: 7);
292}
293
294// CHECK-LABEL: test_i16x8_replace_lane:
295// CHECK: i16x8.replace_lane 7{{$}}
296v128_t test_i16x8_replace_lane(v128_t a, int16_t b) {
297 return wasm_i16x8_replace_lane(a: a, i: 7, b: b);
298}
299
300// CHECK-LABEL: test_i32x4_splat:
301// CHECK: i32x4.splat{{$}}
302v128_t test_i32x4_splat(int32_t a) { return wasm_i32x4_splat(a: a); }
303
304// CHECK-LABEL: test_i32x4_extract_lane:
305// CHECK: i32x4.extract_lane 3{{$}}
306int32_t test_i32x4_extract_lane(v128_t a) {
307 return wasm_i32x4_extract_lane(a: a, i: 3);
308}
309
310// CHECK-LABEL: test_i32x4_replace_lane:
311// CHECK: i32x4.replace_lane 3{{$}}
312v128_t test_i32x4_replace_lane(v128_t a, int32_t b) {
313 return wasm_i32x4_replace_lane(a: a, i: 3, b: b);
314}
315
316// CHECK-LABEL: test_i64x2_splat:
317// CHECK: i64x2.splat{{$}}
318v128_t test_i64x2_splat(int64_t a) { return wasm_i64x2_splat(a: a); }
319
320// CHECK-LABEL: test_i64x2_extract_lane:
321// CHECK: i64x2.extract_lane 1{{$}}
322int64_t test_i64x2_extract_lane(v128_t a) {
323 return wasm_i64x2_extract_lane(a: a, i: 1);
324}
325
326// CHECK-LABEL: test_i64x2_replace_lane:
327// CHECK: i64x2.replace_lane 1{{$}}
328v128_t test_i64x2_replace_lane(v128_t a, int64_t b) {
329 return wasm_i64x2_replace_lane(a: a, i: 1, b: b);
330}
331
332// CHECK-LABEL: test_f32x4_splat:
333// CHECK: f32x4.splat{{$}}
334v128_t test_f32x4_splat(float a) { return wasm_f32x4_splat(a: a); }
335
336// CHECK-LABEL: test_f32x4_extract_lane:
337// CHECK: f32x4.extract_lane 3{{$}}
338float test_f32x4_extract_lane(v128_t a) {
339 return wasm_f32x4_extract_lane(a: a, i: 3);
340}
341
342// CHECK-LABEL: test_f32x4_replace_lane:
343// CHECK: f32x4.replace_lane 3{{$}}
344v128_t test_f32x4_replace_lane(v128_t a, float b) {
345 return wasm_f32x4_replace_lane(a: a, i: 3, b: b);
346}
347
348// CHECK-LABEL: test_f64x2_splat:
349// CHECK: f64x2.splat{{$}}
350v128_t test_f64x2_splat(double a) { return wasm_f64x2_splat(a: a); }
351
352// CHECK-LABEL: test_f64x2_extract_lane:
353// CHECK: f64x2.extract_lane 1{{$}}
354double test_f64x2_extract_lane(v128_t a) {
355 return wasm_f64x2_extract_lane(a: a, i: 1);
356}
357
358// CHECK-LABEL: test_f64x2_replace_lane:
359// CHECK: f64x2.replace_lane 1{{$}}
360v128_t test_f64x2_replace_lane(v128_t a, double b) {
361 return wasm_f64x2_replace_lane(a: a, i: 1, b: b);
362}
363
364// CHECK-LABEL: test_i8x16_eq:
365// CHECK: i8x16.eq{{$}}
366v128_t test_i8x16_eq(v128_t a, v128_t b) { return wasm_i8x16_eq(a: a, b: b); }
367
368// CHECK-LABEL: test_i8x16_ne:
369// CHECK: i8x16.ne{{$}}
370v128_t test_i8x16_ne(v128_t a, v128_t b) { return wasm_i8x16_ne(a: a, b: b); }
371
372// CHECK-LABEL: test_i8x16_lt:
373// CHECK: i8x16.lt_s{{$}}
374v128_t test_i8x16_lt(v128_t a, v128_t b) { return wasm_i8x16_lt(a: a, b: b); }
375
376// CHECK-LABEL: test_u8x16_lt:
377// CHECK: i8x16.lt_u{{$}}
378v128_t test_u8x16_lt(v128_t a, v128_t b) { return wasm_u8x16_lt(a: a, b: b); }
379
380// CHECK-LABEL: test_i8x16_gt:
381// CHECK: i8x16.gt_s{{$}}
382v128_t test_i8x16_gt(v128_t a, v128_t b) { return wasm_i8x16_gt(a: a, b: b); }
383
384// CHECK-LABEL: test_u8x16_gt:
385// CHECK: i8x16.gt_u{{$}}
386v128_t test_u8x16_gt(v128_t a, v128_t b) { return wasm_u8x16_gt(a: a, b: b); }
387
388// CHECK-LABEL: test_i8x16_le:
389// CHECK: i8x16.le_s{{$}}
390v128_t test_i8x16_le(v128_t a, v128_t b) { return wasm_i8x16_le(a: a, b: b); }
391
392// CHECK-LABEL: test_u8x16_le:
393// CHECK: i8x16.le_u{{$}}
394v128_t test_u8x16_le(v128_t a, v128_t b) { return wasm_u8x16_le(a: a, b: b); }
395
396// CHECK-LABEL: test_i8x16_ge:
397// CHECK: i8x16.ge_s{{$}}
398v128_t test_i8x16_ge(v128_t a, v128_t b) { return wasm_i8x16_ge(a: a, b: b); }
399
400// CHECK-LABEL: test_u8x16_ge:
401// CHECK: i8x16.ge_u{{$}}
402v128_t test_u8x16_ge(v128_t a, v128_t b) { return wasm_u8x16_ge(a: a, b: b); }
403
404// CHECK-LABEL: test_i16x8_eq:
405// CHECK: i16x8.eq{{$}}
406v128_t test_i16x8_eq(v128_t a, v128_t b) { return wasm_i16x8_eq(a: a, b: b); }
407
408// CHECK-LABEL: test_i16x8_ne:
409// CHECK: i16x8.ne{{$}}
410v128_t test_i16x8_ne(v128_t a, v128_t b) { return wasm_i16x8_ne(a: a, b: b); }
411
412// CHECK-LABEL: test_i16x8_lt:
413// CHECK: i16x8.lt_s{{$}}
414v128_t test_i16x8_lt(v128_t a, v128_t b) { return wasm_i16x8_lt(a: a, b: b); }
415
416// CHECK-LABEL: test_u16x8_lt:
417// CHECK: i16x8.lt_u{{$}}
418v128_t test_u16x8_lt(v128_t a, v128_t b) { return wasm_u16x8_lt(a: a, b: b); }
419
420// CHECK-LABEL: test_i16x8_gt:
421// CHECK: i16x8.gt_s{{$}}
422v128_t test_i16x8_gt(v128_t a, v128_t b) { return wasm_i16x8_gt(a: a, b: b); }
423
424// CHECK-LABEL: test_u16x8_gt:
425// CHECK: i16x8.gt_u{{$}}
426v128_t test_u16x8_gt(v128_t a, v128_t b) { return wasm_u16x8_gt(a: a, b: b); }
427
428// CHECK-LABEL: test_i16x8_le:
429// CHECK: i16x8.le_s{{$}}
430v128_t test_i16x8_le(v128_t a, v128_t b) { return wasm_i16x8_le(a: a, b: b); }
431
432// CHECK-LABEL: test_u16x8_le:
433// CHECK: i16x8.le_u{{$}}
434v128_t test_u16x8_le(v128_t a, v128_t b) { return wasm_u16x8_le(a: a, b: b); }
435
436// CHECK-LABEL: test_i16x8_ge:
437// CHECK: i16x8.ge_s{{$}}
438v128_t test_i16x8_ge(v128_t a, v128_t b) { return wasm_i16x8_ge(a: a, b: b); }
439
440// CHECK-LABEL: test_u16x8_ge:
441// CHECK: i16x8.ge_u{{$}}
442v128_t test_u16x8_ge(v128_t a, v128_t b) { return wasm_u16x8_ge(a: a, b: b); }
443
444// CHECK-LABEL: test_i32x4_eq:
445// CHECK: i32x4.eq{{$}}
446v128_t test_i32x4_eq(v128_t a, v128_t b) { return wasm_i32x4_eq(a: a, b: b); }
447
448// CHECK-LABEL: test_i32x4_ne:
449// CHECK: i32x4.ne{{$}}
450v128_t test_i32x4_ne(v128_t a, v128_t b) { return wasm_i32x4_ne(a: a, b: b); }
451
452// CHECK-LABEL: test_i32x4_lt:
453// CHECK: i32x4.lt_s{{$}}
454v128_t test_i32x4_lt(v128_t a, v128_t b) { return wasm_i32x4_lt(a: a, b: b); }
455
456// CHECK-LABEL: test_u32x4_lt:
457// CHECK: i32x4.lt_u{{$}}
458v128_t test_u32x4_lt(v128_t a, v128_t b) { return wasm_u32x4_lt(a: a, b: b); }
459
460// CHECK-LABEL: test_i32x4_gt:
461// CHECK: i32x4.gt_s{{$}}
462v128_t test_i32x4_gt(v128_t a, v128_t b) { return wasm_i32x4_gt(a: a, b: b); }
463
464// CHECK-LABEL: test_u32x4_gt:
465// CHECK: i32x4.gt_u{{$}}
466v128_t test_u32x4_gt(v128_t a, v128_t b) { return wasm_u32x4_gt(a: a, b: b); }
467
468// CHECK-LABEL: test_i32x4_le:
469// CHECK: i32x4.le_s{{$}}
470v128_t test_i32x4_le(v128_t a, v128_t b) { return wasm_i32x4_le(a: a, b: b); }
471
472// CHECK-LABEL: test_u32x4_le:
473// CHECK: i32x4.le_u{{$}}
474v128_t test_u32x4_le(v128_t a, v128_t b) { return wasm_u32x4_le(a: a, b: b); }
475
476// CHECK-LABEL: test_i32x4_ge:
477// CHECK: i32x4.ge_s{{$}}
478v128_t test_i32x4_ge(v128_t a, v128_t b) { return wasm_i32x4_ge(a: a, b: b); }
479
480// CHECK-LABEL: test_u32x4_ge:
481// CHECK: i32x4.ge_u{{$}}
482v128_t test_u32x4_ge(v128_t a, v128_t b) { return wasm_u32x4_ge(a: a, b: b); }
483
484// CHECK-LABEL: test_i64x2_eq:
485// CHECK: i64x2.eq{{$}}
486v128_t test_i64x2_eq(v128_t a, v128_t b) { return wasm_i64x2_eq(a: a, b: b); }
487
488// CHECK-LABEL: test_i64x2_ne:
489// CHECK: i64x2.ne{{$}}
490v128_t test_i64x2_ne(v128_t a, v128_t b) { return wasm_i64x2_ne(a: a, b: b); }
491
492// CHECK-LABEL: test_i64x2_lt:
493// CHECK: i64x2.lt_s{{$}}
494v128_t test_i64x2_lt(v128_t a, v128_t b) { return wasm_i64x2_lt(a: a, b: b); }
495
496// CHECK-LABEL: test_i64x2_gt:
497// CHECK: i64x2.gt_s{{$}}
498v128_t test_i64x2_gt(v128_t a, v128_t b) { return wasm_i64x2_gt(a: a, b: b); }
499
500// CHECK-LABEL: test_i64x2_le:
501// CHECK: i64x2.le_s{{$}}
502v128_t test_i64x2_le(v128_t a, v128_t b) { return wasm_i64x2_le(a: a, b: b); }
503
504// CHECK-LABEL: test_i64x2_ge:
505// CHECK: i64x2.ge_s{{$}}
506v128_t test_i64x2_ge(v128_t a, v128_t b) { return wasm_i64x2_ge(a: a, b: b); }
507
508// CHECK-LABEL: test_f32x4_eq:
509// CHECK: f32x4.eq{{$}}
510v128_t test_f32x4_eq(v128_t a, v128_t b) { return wasm_f32x4_eq(a: a, b: b); }
511
512// CHECK-LABEL: test_f32x4_ne:
513// CHECK: f32x4.ne{{$}}
514v128_t test_f32x4_ne(v128_t a, v128_t b) { return wasm_f32x4_ne(a: a, b: b); }
515
516// CHECK-LABEL: test_f32x4_lt:
517// CHECK: f32x4.lt{{$}}
518v128_t test_f32x4_lt(v128_t a, v128_t b) { return wasm_f32x4_lt(a: a, b: b); }
519
520// CHECK-LABEL: test_f32x4_gt:
521// CHECK: f32x4.gt{{$}}
522v128_t test_f32x4_gt(v128_t a, v128_t b) { return wasm_f32x4_gt(a: a, b: b); }
523
524// CHECK-LABEL: test_f32x4_le:
525// CHECK: f32x4.le{{$}}
526v128_t test_f32x4_le(v128_t a, v128_t b) { return wasm_f32x4_le(a: a, b: b); }
527
528// CHECK-LABEL: test_f32x4_ge:
529// CHECK: f32x4.ge{{$}}
530v128_t test_f32x4_ge(v128_t a, v128_t b) { return wasm_f32x4_ge(a: a, b: b); }
531
532// CHECK-LABEL: test_f64x2_eq:
533// CHECK: f64x2.eq{{$}}
534v128_t test_f64x2_eq(v128_t a, v128_t b) { return wasm_f64x2_eq(a: a, b: b); }
535
536// CHECK-LABEL: test_f64x2_ne:
537// CHECK: f64x2.ne{{$}}
538v128_t test_f64x2_ne(v128_t a, v128_t b) { return wasm_f64x2_ne(a: a, b: b); }
539
540// CHECK-LABEL: test_f64x2_lt:
541// CHECK: f64x2.lt{{$}}
542v128_t test_f64x2_lt(v128_t a, v128_t b) { return wasm_f64x2_lt(a: a, b: b); }
543
544// CHECK-LABEL: test_f64x2_gt:
545// CHECK: f64x2.gt{{$}}
546v128_t test_f64x2_gt(v128_t a, v128_t b) { return wasm_f64x2_gt(a: a, b: b); }
547
548// CHECK-LABEL: test_f64x2_le:
549// CHECK: f64x2.le{{$}}
550v128_t test_f64x2_le(v128_t a, v128_t b) { return wasm_f64x2_le(a: a, b: b); }
551
552// CHECK-LABEL: test_f64x2_ge:
553// CHECK: f64x2.ge{{$}}
554v128_t test_f64x2_ge(v128_t a, v128_t b) { return wasm_f64x2_ge(a: a, b: b); }
555
556// CHECK-LABEL: test_v128_not:
557// CHECK: v128.not{{$}}
558v128_t test_v128_not(v128_t a) { return wasm_v128_not(a: a); }
559
560// CHECK-LABEL: test_v128_and:
561// CHECK: v128.and{{$}}
562v128_t test_v128_and(v128_t a, v128_t b) { return wasm_v128_and(a: a, b: b); }
563
564// CHECK-LABEL: test_v128_or:
565// CHECK: v128.or{{$}}
566v128_t test_v128_or(v128_t a, v128_t b) { return wasm_v128_or(a: a, b: b); }
567
568// CHECK-LABEL: test_v128_xor:
569// CHECK: v128.xor{{$}}
570v128_t test_v128_xor(v128_t a, v128_t b) { return wasm_v128_xor(a: a, b: b); }
571
572// CHECK-LABEL: test_v128_andnot:
573// CHECK: v128.andnot{{$}}
574v128_t test_v128_andnot(v128_t a, v128_t b) { return wasm_v128_andnot(a: a, b: b); }
575
576// CHECK-LABEL: test_v128_any_true:
577// CHECK: v128.any_true{{$}}
578bool test_v128_any_true(v128_t a) { return wasm_v128_any_true(a: a); }
579
580// CHECK-LABEL: test_v128_bitselect:
581// CHECK: v128.bitselect{{$}}
582v128_t test_v128_bitselect(v128_t a, v128_t b, v128_t mask) {
583 return wasm_v128_bitselect(a: a, b: b, mask: mask);
584}
585
586// CHECK-LABEL: test_i8x16_abs:
587// CHECK: i8x16.abs{{$}}
588v128_t test_i8x16_abs(v128_t a) { return wasm_i8x16_abs(a: a); }
589
590// CHECK-LABEL: test_i8x16_neg:
591// CHECK: i8x16.neg{{$}}
592v128_t test_i8x16_neg(v128_t a) { return wasm_i8x16_neg(a: a); }
593
594// CHECK-LABEL: test_i8x16_all_true:
595// CHECK: i8x16.all_true{{$}}
596bool test_i8x16_all_true(v128_t a) { return wasm_i8x16_all_true(a: a); }
597
598// CHECK-LABEL: test_i8x16_bitmask:
599// CHECK: i8x16.bitmask{{$}}
600int32_t test_i8x16_bitmask(v128_t a) { return wasm_i8x16_bitmask(a: a); }
601
602// CHECK-LABEL: test_i8x16_popcnt:
603// CHECK: i8x16.popcnt{{$}}
604v128_t test_i8x16_popcnt(v128_t a) { return wasm_i8x16_popcnt(a: a); }
605
606// CHECK-LABEL: test_i8x16_shl:
607// CHECK: i8x16.shl{{$}}
608v128_t test_i8x16_shl(v128_t a, int32_t b) { return wasm_i8x16_shl(a: a, b: b); }
609
610// CHECK-LABEL: test_i8x16_shr:
611// CHECK: i8x16.shr_s{{$}}
612v128_t test_i8x16_shr(v128_t a, int32_t b) { return wasm_i8x16_shr(a: a, b: b); }
613
614// CHECK-LABEL: test_u8x16_shr:
615// CHECK: i8x16.shr_u{{$}}
616v128_t test_u8x16_shr(v128_t a, int32_t b) { return wasm_u8x16_shr(a: a, b: b); }
617
618// CHECK-LABEL: test_i8x16_add:
619// CHECK: i8x16.add{{$}}
620v128_t test_i8x16_add(v128_t a, v128_t b) { return wasm_i8x16_add(a: a, b: b); }
621
622// CHECK-LABEL: test_i8x16_add_sat:
623// CHECK: i8x16.add_sat_s{{$}}
624v128_t test_i8x16_add_sat(v128_t a, v128_t b) {
625 return wasm_i8x16_add_sat(a: a, b: b);
626}
627
628// CHECK-LABEL: test_u8x16_add_sat:
629// CHECK: i8x16.add_sat_u{{$}}
630v128_t test_u8x16_add_sat(v128_t a, v128_t b) {
631 return wasm_u8x16_add_sat(a: a, b: b);
632}
633
634// CHECK-LABEL: test_i8x16_sub:
635// CHECK: i8x16.sub{{$}}
636v128_t test_i8x16_sub(v128_t a, v128_t b) { return wasm_i8x16_sub(a: a, b: b); }
637
638// CHECK-LABEL: test_i8x16_sub_sat:
639// CHECK: i8x16.sub_sat_s{{$}}
640v128_t test_i8x16_sub_sat(v128_t a, v128_t b) {
641 return wasm_i8x16_sub_sat(a: a, b: b);
642}
643
644// CHECK-LABEL: test_u8x16_sub_sat:
645// CHECK: i8x16.sub_sat_u{{$}}
646v128_t test_u8x16_sub_sat(v128_t a, v128_t b) {
647 return wasm_u8x16_sub_sat(a: a, b: b);
648}
649
650// CHECK-LABEL: test_i8x16_min:
651// CHECK: i8x16.min_s{{$}}
652v128_t test_i8x16_min(v128_t a, v128_t b) { return wasm_i8x16_min(a: a, b: b); }
653
654// CHECK-LABEL: test_u8x16_min:
655// CHECK: i8x16.min_u{{$}}
656v128_t test_u8x16_min(v128_t a, v128_t b) { return wasm_u8x16_min(a: a, b: b); }
657
658// CHECK-LABEL: test_i8x16_max:
659// CHECK: i8x16.max_s{{$}}
660v128_t test_i8x16_max(v128_t a, v128_t b) { return wasm_i8x16_max(a: a, b: b); }
661
662// CHECK-LABEL: test_u8x16_max:
663// CHECK: i8x16.max_u{{$}}
664v128_t test_u8x16_max(v128_t a, v128_t b) { return wasm_u8x16_max(a: a, b: b); }
665
666// CHECK-LABEL: test_u8x16_avgr:
667// CHECK: i8x16.avgr_u{{$}}
668v128_t test_u8x16_avgr(v128_t a, v128_t b) { return wasm_u8x16_avgr(a: a, b: b); }
669
670// CHECK-LABEL: test_i16x8_abs:
671// CHECK: i16x8.abs{{$}}
672v128_t test_i16x8_abs(v128_t a) { return wasm_i16x8_abs(a: a); }
673
674// CHECK-LABEL: test_i16x8_neg:
675// CHECK: i16x8.neg{{$}}
676v128_t test_i16x8_neg(v128_t a) { return wasm_i16x8_neg(a: a); }
677
678// CHECK-LABEL: test_i16x8_all_true:
679// CHECK: i16x8.all_true{{$}}
680bool test_i16x8_all_true(v128_t a) { return wasm_i16x8_all_true(a: a); }
681
682// CHECK-LABEL: test_i16x8_bitmask:
683// CHECK: i16x8.bitmask{{$}}
684int32_t test_i16x8_bitmask(v128_t a) { return wasm_i16x8_bitmask(a: a); }
685
686// CHECK-LABEL: test_i16x8_shl:
687// CHECK: i16x8.shl{{$}}
688v128_t test_i16x8_shl(v128_t a, int32_t b) { return wasm_i16x8_shl(a: a, b: b); }
689
690// CHECK-LABEL: test_i16x8_shr:
691// CHECK: i16x8.shr_s{{$}}
692v128_t test_i16x8_shr(v128_t a, int32_t b) { return wasm_i16x8_shr(a: a, b: b); }
693
694// CHECK-LABEL: test_u16x8_shr:
695// CHECK: i16x8.shr_u{{$}}
696v128_t test_u16x8_shr(v128_t a, int32_t b) { return wasm_u16x8_shr(a: a, b: b); }
697
698// CHECK-LABEL: test_i16x8_add:
699// CHECK: i16x8.add{{$}}
700v128_t test_i16x8_add(v128_t a, v128_t b) { return wasm_i16x8_add(a: a, b: b); }
701
702// CHECK-LABEL: test_i16x8_add_sat:
703// CHECK: i16x8.add_sat_s{{$}}
704v128_t test_i16x8_add_sat(v128_t a, v128_t b) {
705 return wasm_i16x8_add_sat(a: a, b: b);
706}
707
708// CHECK-LABEL: test_u16x8_add_sat:
709// CHECK: i16x8.add_sat_u{{$}}
710v128_t test_u16x8_add_sat(v128_t a, v128_t b) {
711 return wasm_u16x8_add_sat(a: a, b: b);
712}
713
714// CHECK-LABEL: test_i16x8_sub:
715// CHECK: i16x8.sub{{$}}
716v128_t test_i16x8_sub(v128_t a, v128_t b) { return wasm_i16x8_sub(a: a, b: b); }
717
718// CHECK-LABEL: test_i16x8_sub_sat:
719// CHECK: i16x8.sub_sat_s{{$}}
720v128_t test_i16x8_sub_sat(v128_t a, v128_t b) {
721 return wasm_i16x8_sub_sat(a: a, b: b);
722}
723
724// CHECK-LABEL: test_u16x8_sub_sat:
725// CHECK: i16x8.sub_sat_u{{$}}
726v128_t test_u16x8_sub_sat(v128_t a, v128_t b) {
727 return wasm_u16x8_sub_sat(a: a, b: b);
728}
729
730// CHECK-LABEL: test_i16x8_mul:
731// CHECK: i16x8.mul{{$}}
732v128_t test_i16x8_mul(v128_t a, v128_t b) { return wasm_i16x8_mul(a: a, b: b); }
733
734// CHECK-LABEL: test_i16x8_min:
735// CHECK: i16x8.min_s{{$}}
736v128_t test_i16x8_min(v128_t a, v128_t b) { return wasm_i16x8_min(a: a, b: b); }
737
738// CHECK-LABEL: test_u16x8_min:
739// CHECK: i16x8.min_u{{$}}
740v128_t test_u16x8_min(v128_t a, v128_t b) { return wasm_u16x8_min(a: a, b: b); }
741
742// CHECK-LABEL: test_i16x8_max:
743// CHECK: i16x8.max_s{{$}}
744v128_t test_i16x8_max(v128_t a, v128_t b) { return wasm_i16x8_max(a: a, b: b); }
745
746// CHECK-LABEL: test_u16x8_max:
747// CHECK: i16x8.max_u{{$}}
748v128_t test_u16x8_max(v128_t a, v128_t b) { return wasm_u16x8_max(a: a, b: b); }
749
750// CHECK-LABEL: test_u16x8_avgr:
751// CHECK: i16x8.avgr_u{{$}}
752v128_t test_u16x8_avgr(v128_t a, v128_t b) { return wasm_u16x8_avgr(a: a, b: b); }
753
754// CHECK-LABEL: test_i32x4_abs:
755// CHECK: i32x4.abs{{$}}
756v128_t test_i32x4_abs(v128_t a) { return wasm_i32x4_abs(a: a); }
757
758// CHECK-LABEL: test_i32x4_neg:
759// CHECK: i32x4.neg{{$}}
760v128_t test_i32x4_neg(v128_t a) { return wasm_i32x4_neg(a: a); }
761
762// CHECK-LABEL: test_i32x4_all_true:
763// CHECK: i32x4.all_true{{$}}
764bool test_i32x4_all_true(v128_t a) { return wasm_i32x4_all_true(a: a); }
765
766// CHECK-LABEL: test_i32x4_bitmask:
767// CHECK: i32x4.bitmask{{$}}
768int32_t test_i32x4_bitmask(v128_t a) { return wasm_i32x4_bitmask(a: a); }
769
770// CHECK-LABEL: test_i32x4_shl:
771// CHECK: i32x4.shl{{$}}
772v128_t test_i32x4_shl(v128_t a, int32_t b) { return wasm_i32x4_shl(a: a, b: b); }
773
774// CHECK-LABEL: test_i32x4_shr:
775// CHECK: i32x4.shr_s{{$}}
776v128_t test_i32x4_shr(v128_t a, int32_t b) { return wasm_i32x4_shr(a: a, b: b); }
777
778// CHECK-LABEL: test_u32x4_shr:
779// CHECK: i32x4.shr_u{{$}}
780v128_t test_u32x4_shr(v128_t a, int32_t b) { return wasm_u32x4_shr(a: a, b: b); }
781
782// CHECK-LABEL: test_i32x4_add:
783// CHECK: i32x4.add{{$}}
784v128_t test_i32x4_add(v128_t a, v128_t b) { return wasm_i32x4_add(a: a, b: b); }
785
786// CHECK-LABEL: test_i32x4_sub:
787// CHECK: i32x4.sub{{$}}
788v128_t test_i32x4_sub(v128_t a, v128_t b) { return wasm_i32x4_sub(a: a, b: b); }
789
790// CHECK-LABEL: test_i32x4_mul:
791// CHECK: i32x4.mul{{$}}
792v128_t test_i32x4_mul(v128_t a, v128_t b) { return wasm_i32x4_mul(a: a, b: b); }
793
794// CHECK-LABEL: test_i32x4_min:
795// CHECK: i32x4.min_s{{$}}
796v128_t test_i32x4_min(v128_t a, v128_t b) { return wasm_i32x4_min(a: a, b: b); }
797
798// CHECK-LABEL: test_u32x4_min:
799// CHECK: i32x4.min_u{{$}}
800v128_t test_u32x4_min(v128_t a, v128_t b) { return wasm_u32x4_min(a: a, b: b); }
801
802// CHECK-LABEL: test_i32x4_max:
803// CHECK: i32x4.max_s{{$}}
804v128_t test_i32x4_max(v128_t a, v128_t b) { return wasm_i32x4_max(a: a, b: b); }
805
806// CHECK-LABEL: test_u32x4_max:
807// CHECK: i32x4.max_u{{$}}
808v128_t test_u32x4_max(v128_t a, v128_t b) { return wasm_u32x4_max(a: a, b: b); }
809
810// CHECK-LABEL: test_i32x4_dot_i16x8:
811// CHECK: i32x4.dot_i16x8_s{{$}}
812v128_t test_i32x4_dot_i16x8(v128_t a, v128_t b) {
813 return wasm_i32x4_dot_i16x8(a: a, b: b);
814}
815
816// CHECK-LABEL: test_i64x2_abs:
817// CHECK: i64x2.abs{{$}}
818v128_t test_i64x2_abs(v128_t a) { return wasm_i64x2_abs(a: a); }
819
820// CHECK-LABEL: test_i64x2_neg:
821// CHECK: i64x2.neg{{$}}
822v128_t test_i64x2_neg(v128_t a) { return wasm_i64x2_neg(a: a); }
823
824// CHECK-LABEL: test_i64x2_all_true:
825// CHECK: i64x2.all_true{{$}}
826bool test_i64x2_all_true(v128_t a) { return wasm_i64x2_all_true(a: a); }
827
828// CHECK-LABEL: test_i64x2_bitmask:
829// CHECK: i64x2.bitmask{{$}}
830int32_t test_i64x2_bitmask(v128_t a) { return wasm_i64x2_bitmask(a: a); }
831
832// CHECK-LABEL: test_i64x2_shl:
833// CHECK: i64x2.shl{{$}}
834v128_t test_i64x2_shl(v128_t a, int32_t b) { return wasm_i64x2_shl(a: a, b: b); }
835
836// CHECK-LABEL: test_i64x2_shr:
837// CHECK: i64x2.shr_s{{$}}
838v128_t test_i64x2_shr(v128_t a, int32_t b) { return wasm_i64x2_shr(a: a, b: b); }
839
840// CHECK-LABEL: test_u64x2_shr:
841// CHECK: i64x2.shr_u{{$}}
842v128_t test_u64x2_shr(v128_t a, int32_t b) { return wasm_u64x2_shr(a: a, b: b); }
843
844// CHECK-LABEL: test_i64x2_add:
845// CHECK: i64x2.add{{$}}
846v128_t test_i64x2_add(v128_t a, v128_t b) { return wasm_i64x2_add(a: a, b: b); }
847
848// CHECK-LABEL: test_i64x2_sub:
849// CHECK: i64x2.sub{{$}}
850v128_t test_i64x2_sub(v128_t a, v128_t b) { return wasm_i64x2_sub(a: a, b: b); }
851
852// CHECK-LABEL: test_i64x2_mul:
853// CHECK: i64x2.mul{{$}}
854v128_t test_i64x2_mul(v128_t a, v128_t b) { return wasm_i64x2_mul(a: a, b: b); }
855
856// CHECK-LABEL: test_f32x4_abs:
857// CHECK: f32x4.abs{{$}}
858v128_t test_f32x4_abs(v128_t a) { return wasm_f32x4_abs(a: a); }
859
860// CHECK-LABEL: test_f32x4_neg:
861// CHECK: f32x4.neg{{$}}
862v128_t test_f32x4_neg(v128_t a) { return wasm_f32x4_neg(a: a); }
863
864// CHECK-LABEL: test_f32x4_sqrt:
865// CHECK: f32x4.sqrt{{$}}
866v128_t test_f32x4_sqrt(v128_t a) { return wasm_f32x4_sqrt(a: a); }
867
868// CHECK-LABEL: test_f32x4_ceil:
869// CHECK: f32x4.ceil{{$}}
870v128_t test_f32x4_ceil(v128_t a) { return wasm_f32x4_ceil(a: a); }
871
872// CHECK-LABEL: test_f32x4_floor:
873// CHECK: f32x4.floor{{$}}
874v128_t test_f32x4_floor(v128_t a) { return wasm_f32x4_floor(a: a); }
875
876// CHECK-LABEL: test_f32x4_trunc:
877// CHECK: f32x4.trunc{{$}}
878v128_t test_f32x4_trunc(v128_t a) { return wasm_f32x4_trunc(a: a); }
879
880// CHECK-LABEL: test_f32x4_nearest:
881// CHECK: f32x4.nearest{{$}}
882v128_t test_f32x4_nearest(v128_t a) { return wasm_f32x4_nearest(a: a); }
883
884// CHECK-LABEL: test_f32x4_add:
885// CHECK: f32x4.add{{$}}
886v128_t test_f32x4_add(v128_t a, v128_t b) { return wasm_f32x4_add(a: a, b: b); }
887
888// CHECK-LABEL: test_f32x4_sub:
889// CHECK: f32x4.sub{{$}}
890v128_t test_f32x4_sub(v128_t a, v128_t b) { return wasm_f32x4_sub(a: a, b: b); }
891
892// CHECK-LABEL: test_f32x4_mul:
893// CHECK: f32x4.mul{{$}}
894v128_t test_f32x4_mul(v128_t a, v128_t b) { return wasm_f32x4_mul(a: a, b: b); }
895
896// CHECK-LABEL: test_f32x4_div:
897// CHECK: f32x4.div{{$}}
898v128_t test_f32x4_div(v128_t a, v128_t b) { return wasm_f32x4_div(a: a, b: b); }
899
900// CHECK-LABEL: test_f32x4_min:
901// CHECK: f32x4.min{{$}}
902v128_t test_f32x4_min(v128_t a, v128_t b) { return wasm_f32x4_min(a: a, b: b); }
903
904// CHECK-LABEL: test_f32x4_max:
905// CHECK: f32x4.max{{$}}
906v128_t test_f32x4_max(v128_t a, v128_t b) { return wasm_f32x4_max(a: a, b: b); }
907
908// CHECK-LABEL: test_f32x4_pmin:
909// CHECK: f32x4.pmin{{$}}
910v128_t test_f32x4_pmin(v128_t a, v128_t b) { return wasm_f32x4_pmin(a: a, b: b); }
911
912// CHECK-LABEL: test_f32x4_pmax:
913// CHECK: f32x4.pmax{{$}}
914v128_t test_f32x4_pmax(v128_t a, v128_t b) { return wasm_f32x4_pmax(a: a, b: b); }
915
916// CHECK-LABEL: test_f64x2_abs:
917// CHECK: f64x2.abs{{$}}
918v128_t test_f64x2_abs(v128_t a) { return wasm_f64x2_abs(a: a); }
919
920// CHECK-LABEL: test_f64x2_neg:
921// CHECK: f64x2.neg{{$}}
922v128_t test_f64x2_neg(v128_t a) { return wasm_f64x2_neg(a: a); }
923
924// CHECK-LABEL: test_f64x2_sqrt:
925// CHECK: f64x2.sqrt{{$}}
926v128_t test_f64x2_sqrt(v128_t a) { return wasm_f64x2_sqrt(a: a); }
927
928// CHECK-LABEL: test_f64x2_ceil:
929// CHECK: f64x2.ceil{{$}}
930v128_t test_f64x2_ceil(v128_t a) { return wasm_f64x2_ceil(a: a); }
931
932// CHECK-LABEL: test_f64x2_floor:
933// CHECK: f64x2.floor{{$}}
934v128_t test_f64x2_floor(v128_t a) { return wasm_f64x2_floor(a: a); }
935
936// CHECK-LABEL: test_f64x2_trunc:
937// CHECK: f64x2.trunc{{$}}
938v128_t test_f64x2_trunc(v128_t a) { return wasm_f64x2_trunc(a: a); }
939
940// CHECK-LABEL: test_f64x2_nearest:
941// CHECK: f64x2.nearest{{$}}
942v128_t test_f64x2_nearest(v128_t a) { return wasm_f64x2_nearest(a: a); }
943
944// CHECK-LABEL: test_f64x2_add:
945// CHECK: f64x2.add{{$}}
946v128_t test_f64x2_add(v128_t a, v128_t b) { return wasm_f64x2_add(a: a, b: b); }
947
948// CHECK-LABEL: test_f64x2_sub:
949// CHECK: f64x2.sub{{$}}
950v128_t test_f64x2_sub(v128_t a, v128_t b) { return wasm_f64x2_sub(a: a, b: b); }
951
952// CHECK-LABEL: test_f64x2_mul:
953// CHECK: f64x2.mul{{$}}
954v128_t test_f64x2_mul(v128_t a, v128_t b) { return wasm_f64x2_mul(a: a, b: b); }
955
956// CHECK-LABEL: test_f64x2_div:
957// CHECK: f64x2.div{{$}}
958v128_t test_f64x2_div(v128_t a, v128_t b) { return wasm_f64x2_div(a: a, b: b); }
959
960// CHECK-LABEL: test_f64x2_min:
961// CHECK: f64x2.min{{$}}
962v128_t test_f64x2_min(v128_t a, v128_t b) { return wasm_f64x2_min(a: a, b: b); }
963
964// CHECK-LABEL: test_f64x2_max:
965// CHECK: f64x2.max{{$}}
966v128_t test_f64x2_max(v128_t a, v128_t b) { return wasm_f64x2_max(a: a, b: b); }
967
968// CHECK-LABEL: test_f64x2_pmin:
969// CHECK: f64x2.pmin{{$}}
970v128_t test_f64x2_pmin(v128_t a, v128_t b) { return wasm_f64x2_pmin(a: a, b: b); }
971
972// CHECK-LABEL: test_f64x2_pmax:
973// CHECK: f64x2.pmax{{$}}
974v128_t test_f64x2_pmax(v128_t a, v128_t b) { return wasm_f64x2_pmax(a: a, b: b); }
975
976// CHECK-LABEL: test_i32x4_trunc_sat_f32x4:
977// CHECK: i32x4.trunc_sat_f32x4_s{{$}}
978v128_t test_i32x4_trunc_sat_f32x4(v128_t a) {
979 return wasm_i32x4_trunc_sat_f32x4(a: a);
980}
981
982// CHECK-LABEL: test_u32x4_trunc_sat_f32x4:
983// CHECK: i32x4.trunc_sat_f32x4_u{{$}}
984v128_t test_u32x4_trunc_sat_f32x4(v128_t a) {
985 return wasm_u32x4_trunc_sat_f32x4(a: a);
986}
987
988// CHECK-LABEL: test_f32x4_convert_i32x4:
989// CHECK: f32x4.convert_i32x4_s{{$}}
990v128_t test_f32x4_convert_i32x4(v128_t a) {
991 return wasm_f32x4_convert_i32x4(a: a);
992}
993
994// CHECK-LABEL: test_f32x4_convert_u32x4:
995// CHECK: f32x4.convert_i32x4_u{{$}}
996v128_t test_f32x4_convert_u32x4(v128_t a) {
997 return wasm_f32x4_convert_u32x4(a: a);
998}
999
1000// CHECK-LABEL: test_f64x2_convert_low_i32x4:
1001// CHECK: f64x2.convert_low_i32x4_s{{$}}
1002v128_t test_f64x2_convert_low_i32x4(v128_t a) {
1003 return wasm_f64x2_convert_low_i32x4(a: a);
1004}
1005
1006// CHECK-LABEL: test_f64x2_convert_low_u32x4:
1007// CHECK: f64x2.convert_low_i32x4_u{{$}}
1008v128_t test_f64x2_convert_low_u32x4(v128_t a) {
1009 return wasm_f64x2_convert_low_u32x4(a: a);
1010}
1011
1012// CHECK-LABEL: test_i32x4_trunc_sat_f64x2_zero:
1013// CHECK: i32x4.trunc_sat_f64x2_s_zero{{$}}
1014v128_t test_i32x4_trunc_sat_f64x2_zero(v128_t a) {
1015 return wasm_i32x4_trunc_sat_f64x2_zero(a: a);
1016}
1017
1018// CHECK-LABEL: test_u32x4_trunc_sat_f64x2_zero:
1019// CHECK: i32x4.trunc_sat_f64x2_u_zero{{$}}
1020v128_t test_u32x4_trunc_sat_f64x2_zero(v128_t a) {
1021 return wasm_u32x4_trunc_sat_f64x2_zero(a: a);
1022}
1023
1024// CHECK-LABEL: test_f32x4_demote_f64x2_zero:
1025// CHECK: f32x4.demote_f64x2_zero{{$}}
1026v128_t test_f32x4_demote_f64x2_zero(v128_t a) {
1027 return wasm_f32x4_demote_f64x2_zero(a: a);
1028}
1029
1030// CHECK-LABEL: test_f64x2_promote_low_f32x4:
1031// CHECK: f64x2.promote_low_f32x4{{$}}
1032v128_t test_f64x2_promote_low_f32x4(v128_t a) {
1033 return wasm_f64x2_promote_low_f32x4(a: a);
1034}
1035
1036// CHECK-LABEL: test_i8x16_shuffle:
1037// CHECK: i8x16.shuffle 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1,
1038// 0{{$}}
1039v128_t test_i8x16_shuffle(v128_t a, v128_t b) {
1040 return wasm_i8x16_shuffle(a, b, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3,
1041 2, 1, 0);
1042}
1043
1044// CHECK-LABEL: test_i16x8_shuffle:
1045// CHECK: i8x16.shuffle 14, 15, 12, 13, 10, 11, 8, 9, 6, 7, 4, 5, 2, 3, 0,
1046// 1{{$}}
1047v128_t test_i16x8_shuffle(v128_t a, v128_t b) {
1048 return wasm_i16x8_shuffle(a, b, 7, 6, 5, 4, 3, 2, 1, 0);
1049}
1050
1051// CHECK-LABEL: test_i32x4_shuffle:
1052// CHECK: i8x16.shuffle 12, 13, 14, 15, 8, 9, 10, 11, 4, 5, 6, 7, 0, 1, 2,
1053// 3{{$}}
1054v128_t test_i32x4_shuffle(v128_t a, v128_t b) {
1055 return wasm_i32x4_shuffle(a, b, 3, 2, 1, 0);
1056}
1057
1058// CHECK-LABEL: test_i64x2_shuffle:
1059// CHECK: i8x16.shuffle 8, 9, 10, 11, 12, 13, 14, 15, 0, 1, 2, 3, 4, 5, 6,
1060// 7{{$}}
1061v128_t test_i64x2_shuffle(v128_t a, v128_t b) {
1062 return wasm_i64x2_shuffle(a, b, 1, 0);
1063}
1064
1065// CHECK-LABEL: test_i8x16_swizzle:
1066// CHECK: i8x16.swizzle{{$}}
1067v128_t test_i8x16_swizzle(v128_t a, v128_t b) {
1068 return wasm_i8x16_swizzle(a: a, b: b);
1069}
1070
1071// CHECK-LABEL: test_i8x16_narrow_i16x8:
1072// CHECK: i8x16.narrow_i16x8_s{{$}}
1073v128_t test_i8x16_narrow_i16x8(v128_t a, v128_t b) {
1074 return wasm_i8x16_narrow_i16x8(a: a, b: b);
1075}
1076
1077// CHECK-LABEL: test_u8x16_narrow_i16x8:
1078// CHECK: i8x16.narrow_i16x8_u{{$}}
1079v128_t test_u8x16_narrow_i16x8(v128_t a, v128_t b) {
1080 return wasm_u8x16_narrow_i16x8(a: a, b: b);
1081}
1082
1083// CHECK-LABEL: test_i16x8_narrow_i32x4:
1084// CHECK: i16x8.narrow_i32x4_s{{$}}
1085v128_t test_i16x8_narrow_i32x4(v128_t a, v128_t b) {
1086 return wasm_i16x8_narrow_i32x4(a: a, b: b);
1087}
1088
1089// CHECK-LABEL: test_u16x8_narrow_i32x4:
1090// CHECK: i16x8.narrow_i32x4_u{{$}}
1091v128_t test_u16x8_narrow_i32x4(v128_t a, v128_t b) {
1092 return wasm_u16x8_narrow_i32x4(a: a, b: b);
1093}
1094
1095// CHECK-LABEL: test_i16x8_extend_low_i8x16:
1096// CHECK: i16x8.extend_low_i8x16_s{{$}}
1097v128_t test_i16x8_extend_low_i8x16(v128_t a) {
1098 return wasm_i16x8_extend_low_i8x16(a: a);
1099}
1100
1101// CHECK-LABEL: test_i16x8_extend_high_i8x16:
1102// CHECK: i16x8.extend_high_i8x16_s{{$}}
1103v128_t test_i16x8_extend_high_i8x16(v128_t a) {
1104 return wasm_i16x8_extend_high_i8x16(a: a);
1105}
1106
1107// CHECK-LABEL: test_u16x8_extend_low_u8x16:
1108// CHECK: i16x8.extend_low_i8x16_u{{$}}
1109v128_t test_u16x8_extend_low_u8x16(v128_t a) {
1110 return wasm_u16x8_extend_low_u8x16(a: a);
1111}
1112
1113// CHECK-LABEL: test_u16x8_extend_high_u8x16:
1114// CHECK: i16x8.extend_high_i8x16_u{{$}}
1115v128_t test_u16x8_extend_high_u8x16(v128_t a) {
1116 return wasm_u16x8_extend_high_u8x16(a: a);
1117}
1118
1119// CHECK-LABEL: test_i32x4_extend_low_i16x8:
1120// CHECK: i32x4.extend_low_i16x8_s{{$}}
1121v128_t test_i32x4_extend_low_i16x8(v128_t a) {
1122 return wasm_i32x4_extend_low_i16x8(a: a);
1123}
1124
1125// CHECK-LABEL: test_i32x4_extend_high_i16x8:
1126// CHECK: i32x4.extend_high_i16x8_s{{$}}
1127v128_t test_i32x4_extend_high_i16x8(v128_t a) {
1128 return wasm_i32x4_extend_high_i16x8(a: a);
1129}
1130
1131// CHECK-LABEL: test_u32x4_extend_low_u16x8:
1132// CHECK: i32x4.extend_low_i16x8_u{{$}}
1133v128_t test_u32x4_extend_low_u16x8(v128_t a) {
1134 return wasm_u32x4_extend_low_u16x8(a: a);
1135}
1136
1137// CHECK-LABEL: test_u32x4_extend_high_u16x8:
1138// CHECK: i32x4.extend_high_i16x8_u{{$}}
1139v128_t test_u32x4_extend_high_u16x8(v128_t a) {
1140 return wasm_u32x4_extend_high_u16x8(a: a);
1141}
1142
1143// CHECK-LABEL: test_i64x2_extend_low_i32x4:
1144// CHECK: i64x2.extend_low_i32x4_s{{$}}
1145v128_t test_i64x2_extend_low_i32x4(v128_t a) {
1146 return wasm_i64x2_extend_low_i32x4(a: a);
1147}
1148
1149// CHECK-LABEL: test_i64x2_extend_high_i32x4:
1150// CHECK: i64x2.extend_high_i32x4_s{{$}}
1151v128_t test_i64x2_extend_high_i32x4(v128_t a) {
1152 return wasm_i64x2_extend_high_i32x4(a: a);
1153}
1154
1155// CHECK-LABEL: test_u64x2_extend_low_u32x4:
1156// CHECK: i64x2.extend_low_i32x4_u{{$}}
1157v128_t test_u64x2_extend_low_u32x4(v128_t a) {
1158 return wasm_u64x2_extend_low_u32x4(a: a);
1159}
1160
1161// CHECK-LABEL: test_u64x2_extend_high_u32x4:
1162// CHECK: i64x2.extend_high_i32x4_u{{$}}
1163v128_t test_u64x2_extend_high_u32x4(v128_t a) {
1164 return wasm_u64x2_extend_high_u32x4(a: a);
1165}
1166
1167// CHECK-LABEL: test_i16x8_extadd_pairwise_i8x16:
1168// CHECK: i16x8.extadd_pairwise_i8x16_s{{$}}
1169v128_t test_i16x8_extadd_pairwise_i8x16(v128_t a) {
1170 return wasm_i16x8_extadd_pairwise_i8x16(a: a);
1171}
1172
1173// CHECK-LABEL: test_u16x8_extadd_pairwise_u8x16:
1174// CHECK: i16x8.extadd_pairwise_i8x16_u{{$}}
1175v128_t test_u16x8_extadd_pairwise_u8x16(v128_t a) {
1176 return wasm_u16x8_extadd_pairwise_u8x16(a: a);
1177}
1178
1179// CHECK-LABEL: test_i32x4_extadd_pairwise_i16x8:
1180// CHECK: i32x4.extadd_pairwise_i16x8_s{{$}}
1181v128_t test_i32x4_extadd_pairwise_i16x8(v128_t a) {
1182 return wasm_i32x4_extadd_pairwise_i16x8(a: a);
1183}
1184
1185// CHECK-LABEL: test_u32x4_extadd_pairwise_u16x8:
1186// CHECK: i32x4.extadd_pairwise_i16x8_u{{$}}
1187v128_t test_u32x4_extadd_pairwise_u16x8(v128_t a) {
1188 return wasm_u32x4_extadd_pairwise_u16x8(a: a);
1189}
1190
1191// CHECK-LABEL: test_i16x8_extmul_low_i8x16:
1192// CHECK: i16x8.extmul_low_i8x16_s{{$}}
1193v128_t test_i16x8_extmul_low_i8x16(v128_t a, v128_t b) {
1194 return wasm_i16x8_extmul_low_i8x16(a: a, b: b);
1195}
1196
1197// CHECK-LABEL: test_i16x8_extmul_high_i8x16:
1198// CHECK: i16x8.extmul_high_i8x16_s{{$}}
1199v128_t test_i16x8_extmul_high_i8x16(v128_t a, v128_t b) {
1200 return wasm_i16x8_extmul_high_i8x16(a: a, b: b);
1201}
1202
1203// CHECK-LABEL: test_u16x8_extmul_low_u8x16:
1204// CHECK: i16x8.extmul_low_i8x16_u{{$}}
1205v128_t test_u16x8_extmul_low_u8x16(v128_t a, v128_t b) {
1206 return wasm_u16x8_extmul_low_u8x16(a: a, b: b);
1207}
1208
1209// CHECK-LABEL: test_u16x8_extmul_high_u8x16:
1210// CHECK: i16x8.extmul_high_i8x16_u{{$}}
1211v128_t test_u16x8_extmul_high_u8x16(v128_t a, v128_t b) {
1212 return wasm_u16x8_extmul_high_u8x16(a: a, b: b);
1213}
1214
1215// CHECK-LABEL: test_i32x4_extmul_low_i16x8:
1216// CHECK: i32x4.extmul_low_i16x8_s{{$}}
1217v128_t test_i32x4_extmul_low_i16x8(v128_t a, v128_t b) {
1218 return wasm_i32x4_extmul_low_i16x8(a: a, b: b);
1219}
1220
1221// CHECK-LABEL: test_i32x4_extmul_high_i16x8:
1222// CHECK: i32x4.extmul_high_i16x8_s{{$}}
1223v128_t test_i32x4_extmul_high_i16x8(v128_t a, v128_t b) {
1224 return wasm_i32x4_extmul_high_i16x8(a: a, b: b);
1225}
1226
1227// CHECK-LABEL: test_u32x4_extmul_low_u16x8:
1228// CHECK: i32x4.extmul_low_i16x8_u{{$}}
1229v128_t test_u32x4_extmul_low_u16x8(v128_t a, v128_t b) {
1230 return wasm_u32x4_extmul_low_u16x8(a: a, b: b);
1231}
1232
1233// CHECK-LABEL: test_u32x4_extmul_high_u16x8:
1234// CHECK: i32x4.extmul_high_i16x8_u{{$}}
1235v128_t test_u32x4_extmul_high_u16x8(v128_t a, v128_t b) {
1236 return wasm_u32x4_extmul_high_u16x8(a: a, b: b);
1237}
1238
1239// CHECK-LABEL: test_i64x2_extmul_low_i32x4:
1240// CHECK: i64x2.extmul_low_i32x4_s{{$}}
1241v128_t test_i64x2_extmul_low_i32x4(v128_t a, v128_t b) {
1242 return wasm_i64x2_extmul_low_i32x4(a: a, b: b);
1243}
1244
1245// CHECK-LABEL: test_i64x2_extmul_high_i32x4:
1246// CHECK: i64x2.extmul_high_i32x4_s{{$}}
1247v128_t test_i64x2_extmul_high_i32x4(v128_t a, v128_t b) {
1248 return wasm_i64x2_extmul_high_i32x4(a: a, b: b);
1249}
1250
1251// CHECK-LABEL: test_u64x2_extmul_low_u32x4:
1252// CHECK: i64x2.extmul_low_i32x4_u{{$}}
1253v128_t test_u64x2_extmul_low_u32x4(v128_t a, v128_t b) {
1254 return wasm_u64x2_extmul_low_u32x4(a: a, b: b);
1255}
1256
1257// CHECK-LABEL: test_u64x2_extmul_high_u32x4:
1258// CHECK: i64x2.extmul_high_i32x4_u{{$}}
1259v128_t test_u64x2_extmul_high_u32x4(v128_t a, v128_t b) {
1260 return wasm_u64x2_extmul_high_u32x4(a: a, b: b);
1261}
1262
1263// CHECK-LABEL: test_i16x8_q15mulr_sat:
1264// CHECK: i16x8.q15mulr_sat_s{{$}}
1265v128_t test_i16x8_q15mulr_sat(v128_t a, v128_t b) {
1266 return wasm_i16x8_q15mulr_sat(a: a, b: b);
1267}
1268
1269// CHECK-LABEL: test_f32x4_relaxed_madd:
1270// CHECK: f32x4.relaxed_madd{{$}}
1271v128_t test_f32x4_relaxed_madd(v128_t a, v128_t b, v128_t c) {
1272 return wasm_f32x4_relaxed_madd(a: a, b: b, c: c);
1273}
1274
1275// CHECK-LABEL: test_f32x4_relaxed_nmadd:
1276// CHECK: f32x4.relaxed_nmadd{{$}}
1277v128_t test_f32x4_relaxed_nmadd(v128_t a, v128_t b, v128_t c) {
1278 return wasm_f32x4_relaxed_nmadd(a: a, b: b, c: c);
1279}
1280
1281// CHECK-LABEL: test_f64x2_relaxed_madd:
1282// CHECK: f64x2.relaxed_madd{{$}}
1283v128_t test_f64x2_relaxed_madd(v128_t a, v128_t b, v128_t c) {
1284 return wasm_f64x2_relaxed_madd(a: a, b: b, c: c);
1285}
1286
1287// CHECK-LABEL: test_f64x2_relaxed_nmadd:
1288// CHECK: f64x2.relaxed_nmadd{{$}}
1289v128_t test_f64x2_relaxed_nmadd(v128_t a, v128_t b, v128_t c) {
1290 return wasm_f64x2_relaxed_nmadd(a: a, b: b, c: c);
1291}
1292
1293// CHECK-LABEL: test_i8x16_relaxed_laneselect:
1294// CHECK: i8x16.relaxed_laneselect{{$}}
1295v128_t test_i8x16_relaxed_laneselect(v128_t a, v128_t b, v128_t m) {
1296 return wasm_i8x16_relaxed_laneselect(a: a, b: b, m: m);
1297}
1298
1299// CHECK-LABEL: test_i16x8_relaxed_laneselect:
1300// CHECK: i16x8.relaxed_laneselect{{$}}
1301v128_t test_i16x8_relaxed_laneselect(v128_t a, v128_t b, v128_t m) {
1302 return wasm_i16x8_relaxed_laneselect(a: a, b: b, m: m);
1303}
1304
1305// CHECK-LABEL: test_i32x4_relaxed_laneselect:
1306// CHECK: i32x4.relaxed_laneselect{{$}}
1307v128_t test_i32x4_relaxed_laneselect(v128_t a, v128_t b, v128_t m) {
1308 return wasm_i32x4_relaxed_laneselect(a: a, b: b, m: m);
1309}
1310
1311// CHECK-LABEL: test_i64x2_relaxed_laneselect:
1312// CHECK: i64x2.relaxed_laneselect{{$}}
1313v128_t test_i64x2_relaxed_laneselect(v128_t a, v128_t b, v128_t m) {
1314 return wasm_i64x2_relaxed_laneselect(a: a, b: b, m: m);
1315}
1316
1317// CHECK-LABEL: test_i8x16_relaxed_swizzle:
1318// CHECK: i8x16.relaxed_swizzle{{$}}
1319v128_t test_i8x16_relaxed_swizzle(v128_t a, v128_t s) {
1320 return wasm_i8x16_relaxed_swizzle(a: a, s: s);
1321}
1322
1323// CHECK-LABEL: test_f32x4_relaxed_min:
1324// CHECK: f32x4.relaxed_min{{$}}
1325v128_t test_f32x4_relaxed_min(v128_t a, v128_t b) {
1326 return wasm_f32x4_relaxed_min(a: a, b: b);
1327}
1328
1329// CHECK-LABEL: test_f32x4_relaxed_max:
1330// CHECK: f32x4.relaxed_max{{$}}
1331v128_t test_f32x4_relaxed_max(v128_t a, v128_t b) {
1332 return wasm_f32x4_relaxed_max(a: a, b: b);
1333}
1334
1335// CHECK-LABEL: test_f64x2_relaxed_min:
1336// CHECK: f64x2.relaxed_min{{$}}
1337v128_t test_f64x2_relaxed_min(v128_t a, v128_t b) {
1338 return wasm_f64x2_relaxed_min(a: a, b: b);
1339}
1340
1341// CHECK-LABEL: test_f64x2_relaxed_max:
1342// CHECK: f64x2.relaxed_max
1343v128_t test_f64x2_relaxed_max(v128_t a, v128_t b) {
1344 return wasm_f64x2_relaxed_max(a: a, b: b);
1345}
1346
1347// CHECK-LABEL: test_i32x4_relaxed_trunc_f32x4:
1348// CHECK: i32x4.relaxed_trunc_f32x4_s{{$}}
1349v128_t test_i32x4_relaxed_trunc_f32x4(v128_t a) {
1350 return wasm_i32x4_relaxed_trunc_f32x4(a: a);
1351}
1352
1353// CHECK-LABEL: test_u32x4_relaxed_trunc_f32x4:
1354// CHECK: i32x4.relaxed_trunc_f32x4_u{{$}}
1355v128_t test_u32x4_relaxed_trunc_f32x4(v128_t a) {
1356 return wasm_u32x4_relaxed_trunc_f32x4(a: a);
1357}
1358
1359// CHECK-LABEL: test_i32x4_relaxed_trunc_f64x2_zero:
1360// CHECK: i32x4.relaxed_trunc_f64x2_s_zero{{$}}
1361v128_t test_i32x4_relaxed_trunc_f64x2_zero(v128_t a) {
1362 return wasm_i32x4_relaxed_trunc_f64x2_zero(a: a);
1363}
1364
1365// CHECK-LABEL: test_u32x4_relaxed_trunc_f64x2_zero:
1366// CHECK: i32x4.relaxed_trunc_f64x2_u_zero{{$}}
1367v128_t test_u32x4_relaxed_trunc_f64x2_zero(v128_t a) {
1368 return wasm_u32x4_relaxed_trunc_f64x2_zero(a: a);
1369}
1370
1371// CHECK-LABEL: test_i16x8_relaxed_q15mulr:
1372// CHECK: i16x8.relaxed_q15mulr_s{{$}}
1373v128_t test_i16x8_relaxed_q15mulr(v128_t a, v128_t b) {
1374 return wasm_i16x8_relaxed_q15mulr(a: a, b: b);
1375}
1376
1377// CHECK-LABEL: test_i16x8_relaxed_dot_i8x16_i7x16:
1378// CHECK: i16x8.relaxed_dot_i8x16_i7x16_s{{$}}
1379v128_t test_i16x8_relaxed_dot_i8x16_i7x16(v128_t a, v128_t b) {
1380 return wasm_i16x8_relaxed_dot_i8x16_i7x16(a: a, b: b);
1381}
1382
1383// CHECK-LABEL: test_i32x4_relaxed_dot_i8x16_i7x16_add:
1384// CHECK: i32x4.relaxed_dot_i8x16_i7x16_add_s{{$}}
1385v128_t test_i32x4_relaxed_dot_i8x16_i7x16_add(v128_t a, v128_t b, v128_t c) {
1386 return wasm_i32x4_relaxed_dot_i8x16_i7x16_add(a: a, b: b, c: c);
1387}
1388

source code of cross-project-tests/intrinsic-header-tests/wasm_simd128.c