xref: /llvm-project/llvm/test/MC/WebAssembly/simd-encodings.s (revision 923a1c1fc348f7c30ff4726b54ed63ce403dc3ce)
1# RUN: llvm-mc -no-type-check -show-encoding -triple=wasm32-unknown-unknown -mattr=+simd128,+relaxed-simd,+fp16 < %s | FileCheck %s
2
3main:
4    .functype main () -> ()
5
6    # CHECK: v128.load 48 # encoding: [0xfd,0x00,0x04,0x30]
7    v128.load 48
8
9    # CHECK: i16x8.load8x8_s 32 # encoding: [0xfd,0x01,0x03,0x20]
10    i16x8.load8x8_s 32
11
12    # CHECK: i16x8.load8x8_u 32 # encoding: [0xfd,0x02,0x03,0x20]
13    i16x8.load8x8_u 32
14
15    # CHECK: i32x4.load16x4_s 32 # encoding: [0xfd,0x03,0x03,0x20]
16    i32x4.load16x4_s 32
17
18    # CHECK: i32x4.load16x4_u 32 # encoding: [0xfd,0x04,0x03,0x20]
19    i32x4.load16x4_u 32
20
21    # CHECK: i64x2.load32x2_s 32 # encoding: [0xfd,0x05,0x03,0x20]
22    i64x2.load32x2_s 32
23
24    # CHECK: i64x2.load32x2_u 32 # encoding: [0xfd,0x06,0x03,0x20]
25    i64x2.load32x2_u 32
26
27    # CHECK: v128.load8_splat 48 # encoding: [0xfd,0x07,0x00,0x30]
28    v128.load8_splat 48
29
30    # CHECK: v128.load16_splat 48 # encoding: [0xfd,0x08,0x01,0x30]
31    v128.load16_splat 48
32
33    # CHECK: v128.load32_splat 48 # encoding: [0xfd,0x09,0x02,0x30]
34    v128.load32_splat 48
35
36    # CHECK: v128.load64_splat 48 # encoding: [0xfd,0x0a,0x03,0x30]
37    v128.load64_splat 48
38
39    # CHECK: v128.store 48 # encoding: [0xfd,0x0b,0x04,0x30]
40    v128.store 48
41
42    # CHECK: v128.const 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
43    # CHECK-SAME: # encoding: [0xfd,0x0c,
44    # CHECK-SAME: 0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,
45    # CHECK-SAME: 0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f]
46    v128.const 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
47
48    # CHECK: v128.const 256, 770, 1284, 1798, 2312, 2826, 3340, 3854
49    # CHECK-SAME: # encoding: [0xfd,0x0c,
50    # CHECK-SAME: 0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,
51    # CHECK-SAME: 0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f]
52    v128.const 256, 770, 1284, 1798, 2312, 2826, 3340, 3854
53
54    # TODO(tlively): Fix assembler so v128.const works with 4xi32 and 2xi64
55
56    # CHECK: v128.const 0x1.0402p-121, 0x1.0c0a08p-113,
57    # CHECK-SAME:       0x1.14121p-105, 0x1.1c1a18p-97
58    # CHECK-SAME: # encoding: [0xfd,0x0c,
59    # CHECK-SAME: 0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,
60    # CHECK-SAME: 0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f]
61    v128.const 0x1.0402p-121, 0x1.0c0a08p-113, 0x1.14121p-105, 0x1.1c1a18p-97
62
63    # CHECK: v128.const 0x1.60504030201p-911, 0x1.e0d0c0b0a0908p-783
64    # CHECK-SAME: # encoding: [0xfd,0x0c,
65    # CHECK-SAME: 0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,
66    # CHECK-SAME: 0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f]
67    v128.const 0x1.60504030201p-911, 0x1.e0d0c0b0a0908p-783
68
69    # CHECK: i8x16.shuffle 0, 17, 2, 19, 4, 21, 6, 23,
70    # CHECK-SAME:          8, 25, 10, 27, 12, 29, 14, 31
71    # CHECK-SAME: # encoding: [0xfd,0x0d,
72    # CHECK-SAME: 0x00,0x11,0x02,0x13,0x04,0x15,0x06,0x17,
73    # CHECK-SAME: 0x08,0x19,0x0a,0x1b,0x0c,0x1d,0x0e,0x1f]
74    i8x16.shuffle 0, 17, 2, 19, 4, 21, 6, 23, 8, 25, 10, 27, 12, 29, 14, 31
75
76    # CHECK: i8x16.swizzle # encoding: [0xfd,0x0e]
77    i8x16.swizzle
78
79    # CHECK: i8x16.splat # encoding: [0xfd,0x0f]
80    i8x16.splat
81
82    # CHECK: i16x8.splat # encoding: [0xfd,0x10]
83    i16x8.splat
84
85    # CHECK: i32x4.splat # encoding: [0xfd,0x11]
86    i32x4.splat
87
88    # CHECK: i64x2.splat # encoding: [0xfd,0x12]
89    i64x2.splat
90
91    # CHECK: f32x4.splat # encoding: [0xfd,0x13]
92    f32x4.splat
93
94    # CHECK: f64x2.splat # encoding: [0xfd,0x14]
95    f64x2.splat
96
97    # CHECK: i8x16.extract_lane_s 15 # encoding: [0xfd,0x15,0x0f]
98    i8x16.extract_lane_s 15
99
100    # CHECK: i8x16.extract_lane_u 15 # encoding: [0xfd,0x16,0x0f]
101    i8x16.extract_lane_u 15
102
103    # CHECK: i8x16.replace_lane 15 # encoding: [0xfd,0x17,0x0f]
104    i8x16.replace_lane 15
105
106    # CHECK: i16x8.extract_lane_s 7 # encoding: [0xfd,0x18,0x07]
107    i16x8.extract_lane_s 7
108
109    # CHECK: i16x8.extract_lane_u 7 # encoding: [0xfd,0x19,0x07]
110    i16x8.extract_lane_u 7
111
112    # CHECK: i16x8.replace_lane 7 # encoding: [0xfd,0x1a,0x07]
113    i16x8.replace_lane 7
114
115    # CHECK: i32x4.extract_lane 3 # encoding: [0xfd,0x1b,0x03]
116    i32x4.extract_lane 3
117
118    # CHECK: i32x4.replace_lane 3 # encoding: [0xfd,0x1c,0x03]
119    i32x4.replace_lane 3
120
121    # CHECK: i64x2.extract_lane 1 # encoding: [0xfd,0x1d,0x01]
122    i64x2.extract_lane 1
123
124    # CHECK: i64x2.replace_lane 1 # encoding: [0xfd,0x1e,0x01]
125    i64x2.replace_lane 1
126
127    # CHECK: f32x4.extract_lane 3 # encoding: [0xfd,0x1f,0x03]
128    f32x4.extract_lane 3
129
130    # CHECK: f32x4.replace_lane 3 # encoding: [0xfd,0x20,0x03]
131    f32x4.replace_lane 3
132
133    # CHECK: f64x2.extract_lane 1 # encoding: [0xfd,0x21,0x01]
134    f64x2.extract_lane 1
135
136    # CHECK: f64x2.replace_lane 1 # encoding: [0xfd,0x22,0x01]
137    f64x2.replace_lane 1
138
139    # CHECK: i8x16.eq # encoding: [0xfd,0x23]
140    i8x16.eq
141
142    # CHECK: i8x16.ne # encoding: [0xfd,0x24]
143    i8x16.ne
144
145    # CHECK: i8x16.lt_s # encoding: [0xfd,0x25]
146    i8x16.lt_s
147
148    # CHECK: i8x16.lt_u # encoding: [0xfd,0x26]
149    i8x16.lt_u
150
151    # CHECK: i8x16.gt_s # encoding: [0xfd,0x27]
152    i8x16.gt_s
153
154    # CHECK: i8x16.gt_u # encoding: [0xfd,0x28]
155    i8x16.gt_u
156
157    # CHECK: i8x16.le_s # encoding: [0xfd,0x29]
158    i8x16.le_s
159
160    # CHECK: i8x16.le_u # encoding: [0xfd,0x2a]
161    i8x16.le_u
162
163    # CHECK: i8x16.ge_s # encoding: [0xfd,0x2b]
164    i8x16.ge_s
165
166    # CHECK: i8x16.ge_u # encoding: [0xfd,0x2c]
167    i8x16.ge_u
168
169    # CHECK: i16x8.eq # encoding: [0xfd,0x2d]
170    i16x8.eq
171
172    # CHECK: i16x8.ne # encoding: [0xfd,0x2e]
173    i16x8.ne
174
175    # CHECK: i16x8.lt_s # encoding: [0xfd,0x2f]
176    i16x8.lt_s
177
178    # CHECK: i16x8.lt_u # encoding: [0xfd,0x30]
179    i16x8.lt_u
180
181    # CHECK: i16x8.gt_s # encoding: [0xfd,0x31]
182    i16x8.gt_s
183
184    # CHECK: i16x8.gt_u # encoding: [0xfd,0x32]
185    i16x8.gt_u
186
187    # CHECK: i16x8.le_s # encoding: [0xfd,0x33]
188    i16x8.le_s
189
190    # CHECK: i16x8.le_u # encoding: [0xfd,0x34]
191    i16x8.le_u
192
193    # CHECK: i16x8.ge_s # encoding: [0xfd,0x35]
194    i16x8.ge_s
195
196    # CHECK: i16x8.ge_u # encoding: [0xfd,0x36]
197    i16x8.ge_u
198
199    # CHECK: i32x4.eq # encoding: [0xfd,0x37]
200    i32x4.eq
201
202    # CHECK: i32x4.ne # encoding: [0xfd,0x38]
203    i32x4.ne
204
205    # CHECK: i32x4.lt_s # encoding: [0xfd,0x39]
206    i32x4.lt_s
207
208    # CHECK: i32x4.lt_u # encoding: [0xfd,0x3a]
209    i32x4.lt_u
210
211    # CHECK: i32x4.gt_s # encoding: [0xfd,0x3b]
212    i32x4.gt_s
213
214    # CHECK: i32x4.gt_u # encoding: [0xfd,0x3c]
215    i32x4.gt_u
216
217    # CHECK: i32x4.le_s # encoding: [0xfd,0x3d]
218    i32x4.le_s
219
220    # CHECK: i32x4.le_u # encoding: [0xfd,0x3e]
221    i32x4.le_u
222
223    # CHECK: i32x4.ge_s # encoding: [0xfd,0x3f]
224    i32x4.ge_s
225
226    # CHECK: i32x4.ge_u # encoding: [0xfd,0x40]
227    i32x4.ge_u
228
229    # CHECK: f32x4.eq # encoding: [0xfd,0x41]
230    f32x4.eq
231
232    # CHECK: f32x4.ne # encoding: [0xfd,0x42]
233    f32x4.ne
234
235    # CHECK: f32x4.lt # encoding: [0xfd,0x43]
236    f32x4.lt
237
238    # CHECK: f32x4.gt # encoding: [0xfd,0x44]
239    f32x4.gt
240
241    # CHECK: f32x4.le # encoding: [0xfd,0x45]
242    f32x4.le
243
244    # CHECK: f32x4.ge # encoding: [0xfd,0x46]
245    f32x4.ge
246
247    # CHECK: f64x2.eq # encoding: [0xfd,0x47]
248    f64x2.eq
249
250    # CHECK: f64x2.ne # encoding: [0xfd,0x48]
251    f64x2.ne
252
253    # CHECK: f64x2.lt # encoding: [0xfd,0x49]
254    f64x2.lt
255
256    # CHECK: f64x2.gt # encoding: [0xfd,0x4a]
257    f64x2.gt
258
259    # CHECK: f64x2.le # encoding: [0xfd,0x4b]
260    f64x2.le
261
262    # CHECK: f64x2.ge # encoding: [0xfd,0x4c]
263    f64x2.ge
264
265    # CHECK: v128.not # encoding: [0xfd,0x4d]
266    v128.not
267
268    # CHECK: v128.and # encoding: [0xfd,0x4e]
269    v128.and
270
271    # CHECK: v128.andnot # encoding: [0xfd,0x4f]
272    v128.andnot
273
274    # CHECK: v128.or # encoding: [0xfd,0x50]
275    v128.or
276
277    # CHECK: v128.xor # encoding: [0xfd,0x51]
278    v128.xor
279
280    # CHECK: v128.bitselect # encoding: [0xfd,0x52]
281    v128.bitselect
282
283    # CHECK: v128.any_true # encoding: [0xfd,0x53]
284    v128.any_true
285
286    # CHECK: v128.load8_lane 32, 1 # encoding: [0xfd,0x54,0x00,0x20,0x01]
287    v128.load8_lane 32, 1
288
289    # CHECK: v128.load16_lane 32, 1 # encoding: [0xfd,0x55,0x01,0x20,0x01]
290    v128.load16_lane 32, 1
291
292    # CHECK: v128.load32_lane 32, 1 # encoding: [0xfd,0x56,0x02,0x20,0x01]
293    v128.load32_lane 32, 1
294
295    # CHECK: v128.load64_lane 32, 1 # encoding: [0xfd,0x57,0x03,0x20,0x01]
296    v128.load64_lane 32, 1
297
298    # CHECK: v128.store8_lane 32, 1 # encoding: [0xfd,0x58,0x00,0x20,0x01]
299    v128.store8_lane 32, 1
300
301    # CHECK: v128.store16_lane 32, 1 # encoding: [0xfd,0x59,0x01,0x20,0x01]
302    v128.store16_lane 32, 1
303
304    # CHECK: v128.store32_lane 32, 1 # encoding: [0xfd,0x5a,0x02,0x20,0x01]
305    v128.store32_lane 32, 1
306
307    # CHECK: v128.store64_lane 32, 1 # encoding: [0xfd,0x5b,0x03,0x20,0x01]
308    v128.store64_lane 32, 1
309
310    # CHECK: v128.load32_zero 32 # encoding: [0xfd,0x5c,0x02,0x20]
311    v128.load32_zero 32
312
313    # CHECK: v128.load64_zero 32 # encoding: [0xfd,0x5d,0x03,0x20]
314    v128.load64_zero 32
315
316    # CHECK: f32x4.demote_f64x2_zero # encoding: [0xfd,0x5e]
317    f32x4.demote_f64x2_zero
318
319    # CHECK: f64x2.promote_low_f32x4 # encoding: [0xfd,0x5f]
320    f64x2.promote_low_f32x4
321
322    # CHECK: i8x16.abs # encoding: [0xfd,0x60]
323    i8x16.abs
324
325    # CHECK: i8x16.neg # encoding: [0xfd,0x61]
326    i8x16.neg
327
328    # CHECK: i8x16.popcnt # encoding: [0xfd,0x62]
329    i8x16.popcnt
330
331    # CHECK: i8x16.all_true # encoding: [0xfd,0x63]
332    i8x16.all_true
333
334    # CHECK: i8x16.bitmask # encoding: [0xfd,0x64]
335    i8x16.bitmask
336
337    # CHECK: i8x16.narrow_i16x8_s # encoding: [0xfd,0x65]
338    i8x16.narrow_i16x8_s
339
340    # CHECK: i8x16.narrow_i16x8_u # encoding: [0xfd,0x66]
341    i8x16.narrow_i16x8_u
342
343    # CHECK: f32x4.ceil # encoding: [0xfd,0x67]
344    f32x4.ceil
345
346    # CHECK: f32x4.floor # encoding: [0xfd,0x68]
347    f32x4.floor
348
349    # CHECK: f32x4.trunc # encoding: [0xfd,0x69]
350    f32x4.trunc
351
352    # CHECK: f32x4.nearest # encoding: [0xfd,0x6a]
353    f32x4.nearest
354
355    # CHECK: i8x16.shl # encoding: [0xfd,0x6b]
356    i8x16.shl
357
358    # CHECK: i8x16.shr_s # encoding: [0xfd,0x6c]
359    i8x16.shr_s
360
361    # CHECK: i8x16.shr_u # encoding: [0xfd,0x6d]
362    i8x16.shr_u
363
364    # CHECK: i8x16.add # encoding: [0xfd,0x6e]
365    i8x16.add
366
367    # CHECK: i8x16.add_sat_s # encoding: [0xfd,0x6f]
368    i8x16.add_sat_s
369
370    # CHECK: i8x16.add_sat_u # encoding: [0xfd,0x70]
371    i8x16.add_sat_u
372
373    # CHECK: i8x16.sub # encoding: [0xfd,0x71]
374    i8x16.sub
375
376    # CHECK: i8x16.sub_sat_s # encoding: [0xfd,0x72]
377    i8x16.sub_sat_s
378
379    # CHECK: i8x16.sub_sat_u # encoding: [0xfd,0x73]
380    i8x16.sub_sat_u
381
382    # CHECK: f64x2.ceil # encoding: [0xfd,0x74]
383    f64x2.ceil
384
385    # CHECK: f64x2.floor # encoding: [0xfd,0x75]
386    f64x2.floor
387
388    # CHECK: i8x16.min_s # encoding: [0xfd,0x76]
389    i8x16.min_s
390
391    # CHECK: i8x16.min_u # encoding: [0xfd,0x77]
392    i8x16.min_u
393
394    # CHECK: i8x16.max_s # encoding: [0xfd,0x78]
395    i8x16.max_s
396
397    # CHECK: i8x16.max_u # encoding: [0xfd,0x79]
398    i8x16.max_u
399
400    # CHECK: f64x2.trunc # encoding: [0xfd,0x7a]
401    f64x2.trunc
402
403    # CHECK: i8x16.avgr_u # encoding: [0xfd,0x7b]
404    i8x16.avgr_u
405
406    # CHECK: i16x8.extadd_pairwise_i8x16_s # encoding: [0xfd,0x7c]
407    i16x8.extadd_pairwise_i8x16_s
408
409    # CHECK: i16x8.extadd_pairwise_i8x16_u # encoding: [0xfd,0x7d]
410    i16x8.extadd_pairwise_i8x16_u
411
412    # CHECK: i32x4.extadd_pairwise_i16x8_s # encoding: [0xfd,0x7e]
413    i32x4.extadd_pairwise_i16x8_s
414
415    # CHECK: i32x4.extadd_pairwise_i16x8_u # encoding: [0xfd,0x7f]
416    i32x4.extadd_pairwise_i16x8_u
417
418    # CHECK: i16x8.abs # encoding: [0xfd,0x80,0x01]
419    i16x8.abs
420
421    # CHECK: i16x8.neg # encoding: [0xfd,0x81,0x01]
422    i16x8.neg
423
424    # CHECK: i16x8.q15mulr_sat_s # encoding: [0xfd,0x82,0x01]
425    i16x8.q15mulr_sat_s
426
427    # CHECK: i16x8.all_true # encoding: [0xfd,0x83,0x01]
428    i16x8.all_true
429
430    # CHECK: i16x8.bitmask # encoding: [0xfd,0x84,0x01]
431    i16x8.bitmask
432
433    # CHECK: i16x8.narrow_i32x4_s # encoding: [0xfd,0x85,0x01]
434    i16x8.narrow_i32x4_s
435
436    # CHECK: i16x8.narrow_i32x4_u # encoding: [0xfd,0x86,0x01]
437    i16x8.narrow_i32x4_u
438
439    # CHECK: i16x8.extend_low_i8x16_s # encoding: [0xfd,0x87,0x01]
440    i16x8.extend_low_i8x16_s
441
442    # CHECK: i16x8.extend_high_i8x16_s # encoding: [0xfd,0x88,0x01]
443    i16x8.extend_high_i8x16_s
444
445    # CHECK: i16x8.extend_low_i8x16_u # encoding: [0xfd,0x89,0x01]
446    i16x8.extend_low_i8x16_u
447
448    # CHECK: i16x8.extend_high_i8x16_u # encoding: [0xfd,0x8a,0x01]
449    i16x8.extend_high_i8x16_u
450
451    # CHECK: i16x8.shl # encoding: [0xfd,0x8b,0x01]
452    i16x8.shl
453
454    # CHECK: i16x8.shr_s # encoding: [0xfd,0x8c,0x01]
455    i16x8.shr_s
456
457    # CHECK: i16x8.shr_u # encoding: [0xfd,0x8d,0x01]
458    i16x8.shr_u
459
460    # CHECK: i16x8.add # encoding: [0xfd,0x8e,0x01]
461    i16x8.add
462
463    # CHECK: i16x8.add_sat_s # encoding: [0xfd,0x8f,0x01]
464    i16x8.add_sat_s
465
466    # CHECK: i16x8.add_sat_u # encoding: [0xfd,0x90,0x01]
467    i16x8.add_sat_u
468
469    # CHECK: i16x8.sub # encoding: [0xfd,0x91,0x01]
470    i16x8.sub
471
472    # CHECK: i16x8.sub_sat_s # encoding: [0xfd,0x92,0x01]
473    i16x8.sub_sat_s
474
475    # CHECK: i16x8.sub_sat_u # encoding: [0xfd,0x93,0x01]
476    i16x8.sub_sat_u
477
478    # CHECK: f64x2.nearest # encoding: [0xfd,0x94,0x01]
479    f64x2.nearest
480
481    # CHECK: i16x8.mul # encoding: [0xfd,0x95,0x01]
482    i16x8.mul
483
484    # CHECK: i16x8.min_s # encoding: [0xfd,0x96,0x01]
485    i16x8.min_s
486
487    # CHECK: i16x8.min_u # encoding: [0xfd,0x97,0x01]
488    i16x8.min_u
489
490    # CHECK: i16x8.max_s # encoding: [0xfd,0x98,0x01]
491    i16x8.max_s
492
493    # CHECK: i16x8.max_u # encoding: [0xfd,0x99,0x01]
494    i16x8.max_u
495
496    # 0x0a unused
497
498    # CHECK: i16x8.avgr_u # encoding: [0xfd,0x9b,0x01]
499    i16x8.avgr_u
500
501    # CHECK: i16x8.extmul_low_i8x16_s # encoding: [0xfd,0x9c,0x01]
502    i16x8.extmul_low_i8x16_s
503
504    # CHECK: i16x8.extmul_high_i8x16_s # encoding: [0xfd,0x9d,0x01]
505    i16x8.extmul_high_i8x16_s
506
507    # CHECK: i16x8.extmul_low_i8x16_u # encoding: [0xfd,0x9e,0x01]
508    i16x8.extmul_low_i8x16_u
509
510    # CHECK: i16x8.extmul_high_i8x16_u # encoding: [0xfd,0x9f,0x01]
511    i16x8.extmul_high_i8x16_u
512
513    # CHECK: i32x4.abs # encoding: [0xfd,0xa0,0x01]
514    i32x4.abs
515
516    # CHECK: i32x4.neg # encoding: [0xfd,0xa1,0x01]
517    i32x4.neg
518
519    # 0xa2 unused
520
521    # CHECK: i32x4.all_true # encoding: [0xfd,0xa3,0x01]
522    i32x4.all_true
523
524    # CHECK: i32x4.bitmask # encoding: [0xfd,0xa4,0x01]
525    i32x4.bitmask
526
527    # 0xa5 unused
528
529    # 0xa6 unused
530
531    # CHECK: i32x4.extend_low_i16x8_s # encoding: [0xfd,0xa7,0x01]
532    i32x4.extend_low_i16x8_s
533
534    # CHECK: i32x4.extend_high_i16x8_s # encoding: [0xfd,0xa8,0x01]
535    i32x4.extend_high_i16x8_s
536
537    # CHECK: i32x4.extend_low_i16x8_u # encoding: [0xfd,0xa9,0x01]
538    i32x4.extend_low_i16x8_u
539
540    # CHECK: i32x4.extend_high_i16x8_u # encoding: [0xfd,0xaa,0x01]
541    i32x4.extend_high_i16x8_u
542
543    # CHECK: i32x4.shl # encoding: [0xfd,0xab,0x01]
544    i32x4.shl
545
546    # CHECK: i32x4.shr_s # encoding: [0xfd,0xac,0x01]
547    i32x4.shr_s
548
549    # CHECK: i32x4.shr_u # encoding: [0xfd,0xad,0x01]
550    i32x4.shr_u
551
552    # CHECK: i32x4.add # encoding: [0xfd,0xae,0x01]
553    i32x4.add
554
555    # 0xaf unused
556
557    # 0xb0 unused
558
559    # CHECK: i32x4.sub # encoding: [0xfd,0xb1,0x01]
560    i32x4.sub
561
562    # 0xb2 unused
563
564    # 0xb3 unused
565
566    # 0xb4 unused
567
568    # CHECK: i32x4.mul # encoding: [0xfd,0xb5,0x01]
569    i32x4.mul
570
571    # CHECK: i32x4.min_s # encoding: [0xfd,0xb6,0x01]
572    i32x4.min_s
573
574    # CHECK: i32x4.min_u # encoding: [0xfd,0xb7,0x01]
575    i32x4.min_u
576
577    # CHECK: i32x4.max_s # encoding: [0xfd,0xb8,0x01]
578    i32x4.max_s
579
580    # CHECK: i32x4.max_u # encoding: [0xfd,0xb9,0x01]
581    i32x4.max_u
582
583    # CHECK: i32x4.dot_i16x8_s # encoding: [0xfd,0xba,0x01]
584    i32x4.dot_i16x8_s
585
586    # 0xbb unused
587
588    # CHECK: i32x4.extmul_low_i16x8_s # encoding: [0xfd,0xbc,0x01]
589    i32x4.extmul_low_i16x8_s
590
591    # CHECK: i32x4.extmul_high_i16x8_s # encoding: [0xfd,0xbd,0x01]
592    i32x4.extmul_high_i16x8_s
593
594    # CHECK: i32x4.extmul_low_i16x8_u # encoding: [0xfd,0xbe,0x01]
595    i32x4.extmul_low_i16x8_u
596
597    # CHECK: i32x4.extmul_high_i16x8_u # encoding: [0xfd,0xbf,0x01]
598    i32x4.extmul_high_i16x8_u
599
600    # CHECK: i64x2.abs # encoding: [0xfd,0xc0,0x01]
601    i64x2.abs
602
603    # CHECK: i64x2.neg # encoding: [0xfd,0xc1,0x01]
604    i64x2.neg
605
606    # 0xc2 unused
607
608    # CHECK: i64x2.all_true # encoding: [0xfd,0xc3,0x01]
609    i64x2.all_true
610
611    # CHECK: i64x2.bitmask # encoding: [0xfd,0xc4,0x01]
612    i64x2.bitmask
613
614    # 0xc5 unused
615
616    # 0xc6 unused
617
618    # CHECK: i64x2.extend_low_i32x4_s # encoding: [0xfd,0xc7,0x01]
619    i64x2.extend_low_i32x4_s
620
621    # CHECK: i64x2.extend_high_i32x4_s # encoding: [0xfd,0xc8,0x01]
622    i64x2.extend_high_i32x4_s
623
624    # CHECK: i64x2.extend_low_i32x4_u # encoding: [0xfd,0xc9,0x01]
625    i64x2.extend_low_i32x4_u
626
627    # CHECK: i64x2.extend_high_i32x4_u # encoding: [0xfd,0xca,0x01]
628    i64x2.extend_high_i32x4_u
629
630    # CHECK: i64x2.shl # encoding: [0xfd,0xcb,0x01]
631    i64x2.shl
632
633    # CHECK: i64x2.shr_s # encoding: [0xfd,0xcc,0x01]
634    i64x2.shr_s
635
636    # CHECK: i64x2.shr_u # encoding: [0xfd,0xcd,0x01]
637    i64x2.shr_u
638
639    # CHECK: i64x2.add # encoding: [0xfd,0xce,0x01]
640    i64x2.add
641
642    # 0xcf unused
643
644    # 0xd0 unused
645
646    # CHECK: i64x2.sub # encoding: [0xfd,0xd1,0x01]
647    i64x2.sub
648
649    # 0xd2 unused
650
651    # 0xd3 unused
652
653    # 0xd4 unused
654
655    # CHECK: i64x2.mul # encoding: [0xfd,0xd5,0x01]
656    i64x2.mul
657
658    # CHECK: i64x2.eq # encoding: [0xfd,0xd6,0x01]
659    i64x2.eq
660
661    # CHECK: i64x2.ne # encoding: [0xfd,0xd7,0x01]
662    i64x2.ne
663
664    # CHECK: i64x2.lt_s # encoding: [0xfd,0xd8,0x01]
665    i64x2.lt_s
666
667    # CHECK: i64x2.gt_s # encoding: [0xfd,0xd9,0x01]
668    i64x2.gt_s
669
670    # CHECK: i64x2.le_s # encoding: [0xfd,0xda,0x01]
671    i64x2.le_s
672
673    # CHECK: i64x2.ge_s # encoding: [0xfd,0xdb,0x01]
674    i64x2.ge_s
675
676    # CHECK: i64x2.extmul_low_i32x4_s # encoding: [0xfd,0xdc,0x01]
677    i64x2.extmul_low_i32x4_s
678
679    # CHECK: i64x2.extmul_high_i32x4_s # encoding: [0xfd,0xdd,0x01]
680    i64x2.extmul_high_i32x4_s
681
682    # CHECK: i64x2.extmul_low_i32x4_u # encoding: [0xfd,0xde,0x01]
683    i64x2.extmul_low_i32x4_u
684
685    # CHECK: i64x2.extmul_high_i32x4_u # encoding: [0xfd,0xdf,0x01]
686    i64x2.extmul_high_i32x4_u
687
688    # CHECK: f32x4.abs # encoding: [0xfd,0xe0,0x01]
689    f32x4.abs
690
691    # CHECK: f32x4.neg # encoding: [0xfd,0xe1,0x01]
692    f32x4.neg
693
694    # 0xe2 unused
695
696    # CHECK: f32x4.sqrt # encoding: [0xfd,0xe3,0x01]
697    f32x4.sqrt
698
699    # CHECK: f32x4.add # encoding: [0xfd,0xe4,0x01]
700    f32x4.add
701
702    # CHECK: f32x4.sub # encoding: [0xfd,0xe5,0x01]
703    f32x4.sub
704
705    # CHECK: f32x4.mul # encoding: [0xfd,0xe6,0x01]
706    f32x4.mul
707
708    # CHECK: f32x4.div # encoding: [0xfd,0xe7,0x01]
709    f32x4.div
710
711    # CHECK: f32x4.min # encoding: [0xfd,0xe8,0x01]
712    f32x4.min
713
714    # CHECK: f32x4.max # encoding: [0xfd,0xe9,0x01]
715    f32x4.max
716
717    # CHECK: f32x4.pmin # encoding: [0xfd,0xea,0x01]
718    f32x4.pmin
719
720    # CHECK: f32x4.pmax # encoding: [0xfd,0xeb,0x01]
721    f32x4.pmax
722
723    # CHECK: f64x2.abs # encoding: [0xfd,0xec,0x01]
724    f64x2.abs
725
726    # CHECK: f64x2.neg # encoding: [0xfd,0xed,0x01]
727    f64x2.neg
728
729    # 0xee unused
730
731    # CHECK: f64x2.sqrt # encoding: [0xfd,0xef,0x01]
732    f64x2.sqrt
733
734    # CHECK: f64x2.add # encoding: [0xfd,0xf0,0x01]
735    f64x2.add
736
737    # CHECK: f64x2.sub # encoding: [0xfd,0xf1,0x01]
738    f64x2.sub
739
740    # CHECK: f64x2.mul # encoding: [0xfd,0xf2,0x01]
741    f64x2.mul
742
743    # CHECK: f64x2.div # encoding: [0xfd,0xf3,0x01]
744    f64x2.div
745
746    # CHECK: f64x2.min # encoding: [0xfd,0xf4,0x01]
747    f64x2.min
748
749    # CHECK: f64x2.max # encoding: [0xfd,0xf5,0x01]
750    f64x2.max
751
752    # CHECK: f64x2.pmin # encoding: [0xfd,0xf6,0x01]
753    f64x2.pmin
754
755    # CHECK: f64x2.pmax # encoding: [0xfd,0xf7,0x01]
756    f64x2.pmax
757
758    # CHECK: i32x4.trunc_sat_f32x4_s # encoding: [0xfd,0xf8,0x01]
759    i32x4.trunc_sat_f32x4_s
760
761    # CHECK: i32x4.trunc_sat_f32x4_u # encoding: [0xfd,0xf9,0x01]
762    i32x4.trunc_sat_f32x4_u
763
764    # CHECK: f32x4.convert_i32x4_s # encoding: [0xfd,0xfa,0x01]
765    f32x4.convert_i32x4_s
766
767    # CHECK: f32x4.convert_i32x4_u # encoding: [0xfd,0xfb,0x01]
768    f32x4.convert_i32x4_u
769
770    # CHECK: i32x4.trunc_sat_f64x2_s_zero # encoding: [0xfd,0xfc,0x01]
771    i32x4.trunc_sat_f64x2_s_zero
772
773    # CHECK: i32x4.trunc_sat_f64x2_u_zero # encoding: [0xfd,0xfd,0x01]
774    i32x4.trunc_sat_f64x2_u_zero
775
776    # CHECK: f64x2.convert_low_i32x4_s # encoding: [0xfd,0xfe,0x01]
777    f64x2.convert_low_i32x4_s
778
779    # CHECK: f64x2.convert_low_i32x4_u # encoding: [0xfd,0xff,0x01]
780    f64x2.convert_low_i32x4_u
781
782    # CHECK: i8x16.relaxed_swizzle # encoding: [0xfd,0x80,0x02]
783    i8x16.relaxed_swizzle
784
785    # CHECK: i32x4.relaxed_trunc_f32x4_s # encoding: [0xfd,0x81,0x02]
786    i32x4.relaxed_trunc_f32x4_s
787
788    # CHECK: i32x4.relaxed_trunc_f32x4_u # encoding: [0xfd,0x82,0x02]
789    i32x4.relaxed_trunc_f32x4_u
790
791    # CHECK: i32x4.relaxed_trunc_f64x2_s_zero # encoding: [0xfd,0x83,0x02]
792    i32x4.relaxed_trunc_f64x2_s_zero
793
794    # CHECK: i32x4.relaxed_trunc_f64x2_u_zero # encoding: [0xfd,0x84,0x02]
795    i32x4.relaxed_trunc_f64x2_u_zero
796
797    # CHECK: f32x4.relaxed_madd # encoding: [0xfd,0x85,0x02]
798    f32x4.relaxed_madd
799
800    # CHECK: f32x4.relaxed_nmadd # encoding: [0xfd,0x86,0x02]
801    f32x4.relaxed_nmadd
802
803    # CHECK: f64x2.relaxed_madd # encoding: [0xfd,0x87,0x02]
804    f64x2.relaxed_madd
805
806    # CHECK: f64x2.relaxed_nmadd # encoding: [0xfd,0x88,0x02]
807    f64x2.relaxed_nmadd
808
809    # CHECK: i8x16.relaxed_laneselect # encoding: [0xfd,0x89,0x02]
810    i8x16.relaxed_laneselect
811
812    # CHECK: i16x8.relaxed_laneselect # encoding: [0xfd,0x8a,0x02]
813    i16x8.relaxed_laneselect
814
815    # CHECK: i32x4.relaxed_laneselect # encoding: [0xfd,0x8b,0x02]
816    i32x4.relaxed_laneselect
817
818    # CHECK: i64x2.relaxed_laneselect # encoding: [0xfd,0x8c,0x02]
819    i64x2.relaxed_laneselect
820
821    # CHECK: f32x4.relaxed_min # encoding: [0xfd,0x8d,0x02]
822    f32x4.relaxed_min
823
824    # CHECK: f32x4.relaxed_max # encoding: [0xfd,0x8e,0x02]
825    f32x4.relaxed_max
826
827    # CHECK: f64x2.relaxed_min # encoding: [0xfd,0x8f,0x02]
828    f64x2.relaxed_min
829
830    # CHECK: f64x2.relaxed_max # encoding: [0xfd,0x90,0x02]
831    f64x2.relaxed_max
832
833    # CHECK: i16x8.relaxed_q15mulr_s # encoding: [0xfd,0x91,0x02]
834    i16x8.relaxed_q15mulr_s
835
836    # CHECK: i16x8.relaxed_dot_i8x16_i7x16_s # encoding: [0xfd,0x92,0x02]
837    i16x8.relaxed_dot_i8x16_i7x16_s
838
839    # CHECK: i32x4.relaxed_dot_i8x16_i7x16_add_s # encoding: [0xfd,0x93,0x02]
840    i32x4.relaxed_dot_i8x16_i7x16_add_s
841
842    # CHECK: f32.load_f16 48 # encoding: [0xfc,0x30,0x01,0x30]
843    f32.load_f16 48
844
845    # CHECK: f32.store_f16 32 # encoding: [0xfc,0x31,0x01,0x20]
846    f32.store_f16 32
847
848    # CHECK: f16x8.splat # encoding: [0xfd,0xa0,0x02]
849    f16x8.splat
850
851    # CHECK: f16x8.extract_lane 1 # encoding: [0xfd,0xa1,0x02,0x01]
852    f16x8.extract_lane 1
853
854    # CHECK: f16x8.replace_lane 1 # encoding: [0xfd,0xa2,0x02,0x01]
855    f16x8.replace_lane 1
856
857    # CHECK: f16x8.add # encoding: [0xfd,0xbd,0x02]
858    f16x8.add
859
860    # CHECK: f16x8.sub # encoding: [0xfd,0xbe,0x02]
861    f16x8.sub
862
863    # CHECK: f16x8.mul # encoding: [0xfd,0xbf,0x02]
864    f16x8.mul
865
866    # CHECK: f16x8.div # encoding: [0xfd,0xc0,0x02]
867    f16x8.div
868
869    # CHECK: f16x8.min # encoding: [0xfd,0xc1,0x02]
870    f16x8.min
871
872    # CHECK: f16x8.max # encoding: [0xfd,0xc2,0x02]
873    f16x8.max
874
875    # CHECK: f16x8.pmin # encoding: [0xfd,0xc3,0x02]
876    f16x8.pmin
877
878    # CHECK: f16x8.pmax # encoding: [0xfd,0xc4,0x02]
879    f16x8.pmax
880
881    # CHECK: f16x8.eq # encoding: [0xfd,0xb7,0x02]
882    f16x8.eq
883
884    # CHECK: f16x8.ne # encoding: [0xfd,0xb8,0x02]
885    f16x8.ne
886
887    # CHECK: f16x8.lt # encoding: [0xfd,0xb9,0x02]
888    f16x8.lt
889
890    # CHECK: f16x8.gt # encoding: [0xfd,0xba,0x02]
891    f16x8.gt
892
893    # CHECK: f16x8.le # encoding: [0xfd,0xbb,0x02]
894    f16x8.le
895
896    # CHECK: f16x8.ge # encoding: [0xfd,0xbc,0x02]
897    f16x8.ge
898
899    # CHECK: f16x8.abs # encoding: [0xfd,0xb0,0x02]
900    f16x8.abs
901
902    # CHECK: f16x8.neg # encoding: [0xfd,0xb1,0x02]
903    f16x8.neg
904
905    # CHECK: f16x8.sqrt # encoding: [0xfd,0xb2,0x02]
906    f16x8.sqrt
907
908    # CHECK: f16x8.ceil # encoding: [0xfd,0xb3,0x02]
909    f16x8.ceil
910
911    # CHECK: f16x8.floor # encoding: [0xfd,0xb4,0x02]
912    f16x8.floor
913
914    # CHECK: f16x8.trunc # encoding: [0xfd,0xb5,0x02]
915    f16x8.trunc
916
917    # CHECK: f16x8.nearest # encoding: [0xfd,0xb6,0x02]
918    f16x8.nearest
919
920    # CHECK: f16x8.relaxed_madd # encoding: [0xfd,0xce,0x02]
921    f16x8.relaxed_madd
922
923    # CHECK: f16x8.relaxed_nmadd # encoding: [0xfd,0xcf,0x02]
924    f16x8.relaxed_nmadd
925
926    # CHECK: i16x8.trunc_sat_f16x8_s # encoding: [0xfd,0xc5,0x02]
927    i16x8.trunc_sat_f16x8_s
928
929    # CHECK: i16x8.trunc_sat_f16x8_u # encoding: [0xfd,0xc6,0x02]
930    i16x8.trunc_sat_f16x8_u
931
932    # CHECK: f16x8.convert_i16x8_s # encoding: [0xfd,0xc7,0x02]
933    f16x8.convert_i16x8_s
934
935    # CHECK: f16x8.convert_i16x8_u # encoding: [0xfd,0xc8,0x02]
936    f16x8.convert_i16x8_u
937
938    end_function
939