wasmer_c_api/wasm_c_api/unstable/parser/
operator.rs

1use wasmer_api::wasmparser::Operator;
2
3#[repr(C)]
4#[allow(non_camel_case_types)]
5pub enum wasmer_parser_operator_t {
6    Unreachable,
7    Nop,
8    Block,
9    Loop,
10    If,
11    Else,
12    Try,
13    Catch,
14    CatchAll,
15    Delegate,
16    Throw,
17    Rethrow,
18    Unwind,
19    End,
20    Br,
21    BrIf,
22    BrTable,
23    Return,
24    Call,
25    CallIndirect,
26    ReturnCall,
27    ReturnCallIndirect,
28    Drop,
29    Select,
30    TypedSelect,
31    LocalGet,
32    LocalSet,
33    LocalTee,
34    GlobalGet,
35    GlobalSet,
36    I32Load,
37    I64Load,
38    F32Load,
39    F64Load,
40    I32Load8S,
41    I32Load8U,
42    I32Load16S,
43    I32Load16U,
44    I64Load8S,
45    I64Load8U,
46    I64Load16S,
47    I64Load16U,
48    I64Load32S,
49    I64Load32U,
50    I32Store,
51    I64Store,
52    F32Store,
53    F64Store,
54    I32Store8,
55    I32Store16,
56    I64Store8,
57    I64Store16,
58    I64Store32,
59    MemorySize,
60    MemoryGrow,
61    I32Const,
62    I64Const,
63    F32Const,
64    F64Const,
65    RefNull,
66    RefIsNull,
67    RefFunc,
68    I32Eqz,
69    I32Eq,
70    I32Ne,
71    I32LtS,
72    I32LtU,
73    I32GtS,
74    I32GtU,
75    I32LeS,
76    I32LeU,
77    I32GeS,
78    I32GeU,
79    I64Eqz,
80    I64Eq,
81    I64Ne,
82    I64LtS,
83    I64LtU,
84    I64GtS,
85    I64GtU,
86    I64LeS,
87    I64LeU,
88    I64GeS,
89    I64GeU,
90    F32Eq,
91    F32Ne,
92    F32Lt,
93    F32Gt,
94    F32Le,
95    F32Ge,
96    F64Eq,
97    F64Ne,
98    F64Lt,
99    F64Gt,
100    F64Le,
101    F64Ge,
102    I32Clz,
103    I32Ctz,
104    I32Popcnt,
105    I32Add,
106    I32Sub,
107    I32Mul,
108    I32DivS,
109    I32DivU,
110    I32RemS,
111    I32RemU,
112    I32And,
113    I32Or,
114    I32Xor,
115    I32Shl,
116    I32ShrS,
117    I32ShrU,
118    I32Rotl,
119    I32Rotr,
120    I64Clz,
121    I64Ctz,
122    I64Popcnt,
123    I64Add,
124    I64Sub,
125    I64Mul,
126    I64DivS,
127    I64DivU,
128    I64RemS,
129    I64RemU,
130    I64And,
131    I64Or,
132    I64Xor,
133    I64Shl,
134    I64ShrS,
135    I64ShrU,
136    I64Rotl,
137    I64Rotr,
138    F32Abs,
139    F32Neg,
140    F32Ceil,
141    F32Floor,
142    F32Trunc,
143    F32Nearest,
144    F32Sqrt,
145    F32Add,
146    F32Sub,
147    F32Mul,
148    F32Div,
149    F32Min,
150    F32Max,
151    F32Copysign,
152    F64Abs,
153    F64Neg,
154    F64Ceil,
155    F64Floor,
156    F64Trunc,
157    F64Nearest,
158    F64Sqrt,
159    F64Add,
160    F64Sub,
161    F64Mul,
162    F64Div,
163    F64Min,
164    F64Max,
165    F64Copysign,
166    I32WrapI64,
167    I32TruncF32S,
168    I32TruncF32U,
169    I32TruncF64S,
170    I32TruncF64U,
171    I64ExtendI32S,
172    I64ExtendI32U,
173    I64TruncF32S,
174    I64TruncF32U,
175    I64TruncF64S,
176    I64TruncF64U,
177    F32ConvertI32S,
178    F32ConvertI32U,
179    F32ConvertI64S,
180    F32ConvertI64U,
181    F32DemoteF64,
182    F64ConvertI32S,
183    F64ConvertI32U,
184    F64ConvertI64S,
185    F64ConvertI64U,
186    F64PromoteF32,
187    I32ReinterpretF32,
188    I64ReinterpretF64,
189    F32ReinterpretI32,
190    F64ReinterpretI64,
191    I32Extend8S,
192    I32Extend16S,
193    I64Extend8S,
194    I64Extend16S,
195    I64Extend32S,
196    I32TruncSatF32S,
197    I32TruncSatF32U,
198    I32TruncSatF64S,
199    I32TruncSatF64U,
200    I64TruncSatF32S,
201    I64TruncSatF32U,
202    I64TruncSatF64S,
203    I64TruncSatF64U,
204    MemoryInit,
205    DataDrop,
206    MemoryCopy,
207    MemoryFill,
208    TableInit,
209    ElemDrop,
210    TableCopy,
211    TableFill,
212    TableGet,
213    TableSet,
214    TableGrow,
215    TableSize,
216    MemoryAtomicNotify,
217    MemoryAtomicWait32,
218    MemoryAtomicWait64,
219    AtomicFence,
220    I32AtomicLoad,
221    I64AtomicLoad,
222    I32AtomicLoad8U,
223    I32AtomicLoad16U,
224    I64AtomicLoad8U,
225    I64AtomicLoad16U,
226    I64AtomicLoad32U,
227    I32AtomicStore,
228    I64AtomicStore,
229    I32AtomicStore8,
230    I32AtomicStore16,
231    I64AtomicStore8,
232    I64AtomicStore16,
233    I64AtomicStore32,
234    I32AtomicRmwAdd,
235    I64AtomicRmwAdd,
236    I32AtomicRmw8AddU,
237    I32AtomicRmw16AddU,
238    I64AtomicRmw8AddU,
239    I64AtomicRmw16AddU,
240    I64AtomicRmw32AddU,
241    I32AtomicRmwSub,
242    I64AtomicRmwSub,
243    I32AtomicRmw8SubU,
244    I32AtomicRmw16SubU,
245    I64AtomicRmw8SubU,
246    I64AtomicRmw16SubU,
247    I64AtomicRmw32SubU,
248    I32AtomicRmwAnd,
249    I64AtomicRmwAnd,
250    I32AtomicRmw8AndU,
251    I32AtomicRmw16AndU,
252    I64AtomicRmw8AndU,
253    I64AtomicRmw16AndU,
254    I64AtomicRmw32AndU,
255    I32AtomicRmwOr,
256    I64AtomicRmwOr,
257    I32AtomicRmw8OrU,
258    I32AtomicRmw16OrU,
259    I64AtomicRmw8OrU,
260    I64AtomicRmw16OrU,
261    I64AtomicRmw32OrU,
262    I32AtomicRmwXor,
263    I64AtomicRmwXor,
264    I32AtomicRmw8XorU,
265    I32AtomicRmw16XorU,
266    I64AtomicRmw8XorU,
267    I64AtomicRmw16XorU,
268    I64AtomicRmw32XorU,
269    I32AtomicRmwXchg,
270    I64AtomicRmwXchg,
271    I32AtomicRmw8XchgU,
272    I32AtomicRmw16XchgU,
273    I64AtomicRmw8XchgU,
274    I64AtomicRmw16XchgU,
275    I64AtomicRmw32XchgU,
276    I32AtomicRmwCmpxchg,
277    I64AtomicRmwCmpxchg,
278    I32AtomicRmw8CmpxchgU,
279    I32AtomicRmw16CmpxchgU,
280    I64AtomicRmw8CmpxchgU,
281    I64AtomicRmw16CmpxchgU,
282    I64AtomicRmw32CmpxchgU,
283    V128Load,
284    V128Store,
285    V128Const,
286    I8x16Splat,
287    I8x16ExtractLaneS,
288    I8x16ExtractLaneU,
289    I8x16ReplaceLane,
290    I16x8Splat,
291    I16x8ExtractLaneS,
292    I16x8ExtractLaneU,
293    I16x8ReplaceLane,
294    I32x4Splat,
295    I32x4ExtractLane,
296    I32x4ReplaceLane,
297    I64x2Splat,
298    I64x2ExtractLane,
299    I64x2ReplaceLane,
300    F32x4Splat,
301    F32x4ExtractLane,
302    F32x4ReplaceLane,
303    F64x2Splat,
304    F64x2ExtractLane,
305    F64x2ReplaceLane,
306    I8x16Eq,
307    I8x16Ne,
308    I8x16LtS,
309    I8x16LtU,
310    I8x16GtS,
311    I8x16GtU,
312    I8x16LeS,
313    I8x16LeU,
314    I8x16GeS,
315    I8x16GeU,
316    I16x8Eq,
317    I16x8Ne,
318    I16x8LtS,
319    I16x8LtU,
320    I16x8GtS,
321    I16x8GtU,
322    I16x8LeS,
323    I16x8LeU,
324    I16x8GeS,
325    I16x8GeU,
326    I32x4Eq,
327    I32x4Ne,
328    I32x4LtS,
329    I32x4LtU,
330    I32x4GtS,
331    I32x4GtU,
332    I32x4LeS,
333    I32x4LeU,
334    I32x4GeS,
335    I32x4GeU,
336    I64x2Eq,
337    I64x2Ne,
338    I64x2LtS,
339    I64x2GtS,
340    I64x2LeS,
341    I64x2GeS,
342    F32x4Eq,
343    F32x4Ne,
344    F32x4Lt,
345    F32x4Gt,
346    F32x4Le,
347    F32x4Ge,
348    F64x2Eq,
349    F64x2Ne,
350    F64x2Lt,
351    F64x2Gt,
352    F64x2Le,
353    F64x2Ge,
354    V128Not,
355    V128And,
356    V128AndNot,
357    V128Or,
358    V128Xor,
359    V128Bitselect,
360    V128AnyTrue,
361    I8x16Abs,
362    I8x16Neg,
363    I8x16AllTrue,
364    I8x16Bitmask,
365    I8x16Shl,
366    I8x16ShrS,
367    I8x16ShrU,
368    I8x16Add,
369    I8x16AddSatS,
370    I8x16AddSatU,
371    I8x16Sub,
372    I8x16SubSatS,
373    I8x16SubSatU,
374    I8x16MinS,
375    I8x16MinU,
376    I8x16MaxS,
377    I8x16MaxU,
378    I8x16Popcnt,
379    I16x8Abs,
380    I16x8Neg,
381    I16x8AllTrue,
382    I16x8Bitmask,
383    I16x8Shl,
384    I16x8ShrS,
385    I16x8ShrU,
386    I16x8Add,
387    I16x8AddSatS,
388    I16x8AddSatU,
389    I16x8Sub,
390    I16x8SubSatS,
391    I16x8SubSatU,
392    I16x8Mul,
393    I16x8MinS,
394    I16x8MinU,
395    I16x8MaxS,
396    I16x8MaxU,
397    I16x8ExtAddPairwiseI8x16S,
398    I16x8ExtAddPairwiseI8x16U,
399    I32x4Abs,
400    I32x4Neg,
401    I32x4AllTrue,
402    I32x4Bitmask,
403    I32x4Shl,
404    I32x4ShrS,
405    I32x4ShrU,
406    I32x4Add,
407    I32x4Sub,
408    I32x4Mul,
409    I32x4MinS,
410    I32x4MinU,
411    I32x4MaxS,
412    I32x4MaxU,
413    I32x4DotI16x8S,
414    I32x4ExtAddPairwiseI16x8S,
415    I32x4ExtAddPairwiseI16x8U,
416    I64x2Abs,
417    I64x2Neg,
418    I64x2AllTrue,
419    I64x2Bitmask,
420    I64x2Shl,
421    I64x2ShrS,
422    I64x2ShrU,
423    I64x2Add,
424    I64x2Sub,
425    I64x2Mul,
426    F32x4Ceil,
427    F32x4Floor,
428    F32x4Trunc,
429    F32x4Nearest,
430    F64x2Ceil,
431    F64x2Floor,
432    F64x2Trunc,
433    F64x2Nearest,
434    F32x4Abs,
435    F32x4Neg,
436    F32x4Sqrt,
437    F32x4Add,
438    F32x4Sub,
439    F32x4Mul,
440    F32x4Div,
441    F32x4Min,
442    F32x4Max,
443    F32x4PMin,
444    F32x4PMax,
445    F64x2Abs,
446    F64x2Neg,
447    F64x2Sqrt,
448    F64x2Add,
449    F64x2Sub,
450    F64x2Mul,
451    F64x2Div,
452    F64x2Min,
453    F64x2Max,
454    F64x2PMin,
455    F64x2PMax,
456    I32x4TruncSatF32x4S,
457    I32x4TruncSatF32x4U,
458    F32x4ConvertI32x4S,
459    F32x4ConvertI32x4U,
460    I8x16Swizzle,
461    I8x16Shuffle,
462    V128Load8Splat,
463    V128Load16Splat,
464    V128Load32Splat,
465    V128Load32Zero,
466    V128Load64Splat,
467    V128Load64Zero,
468    I8x16NarrowI16x8S,
469    I8x16NarrowI16x8U,
470    I16x8NarrowI32x4S,
471    I16x8NarrowI32x4U,
472    I16x8ExtendLowI8x16S,
473    I16x8ExtendHighI8x16S,
474    I16x8ExtendLowI8x16U,
475    I16x8ExtendHighI8x16U,
476    I32x4ExtendLowI16x8S,
477    I32x4ExtendHighI16x8S,
478    I32x4ExtendLowI16x8U,
479    I32x4ExtendHighI16x8U,
480    I64x2ExtendLowI32x4S,
481    I64x2ExtendHighI32x4S,
482    I64x2ExtendLowI32x4U,
483    I64x2ExtendHighI32x4U,
484    I16x8ExtMulLowI8x16S,
485    I16x8ExtMulHighI8x16S,
486    I16x8ExtMulLowI8x16U,
487    I16x8ExtMulHighI8x16U,
488    I32x4ExtMulLowI16x8S,
489    I32x4ExtMulHighI16x8S,
490    I32x4ExtMulLowI16x8U,
491    I32x4ExtMulHighI16x8U,
492    I64x2ExtMulLowI32x4S,
493    I64x2ExtMulHighI32x4S,
494    I64x2ExtMulLowI32x4U,
495    I64x2ExtMulHighI32x4U,
496    V128Load8x8S,
497    V128Load8x8U,
498    V128Load16x4S,
499    V128Load16x4U,
500    V128Load32x2S,
501    V128Load32x2U,
502    V128Load8Lane,
503    V128Load16Lane,
504    V128Load32Lane,
505    V128Load64Lane,
506    V128Store8Lane,
507    V128Store16Lane,
508    V128Store32Lane,
509    V128Store64Lane,
510    I8x16RoundingAverageU,
511    I16x8RoundingAverageU,
512    I16x8Q15MulrSatS,
513    F32x4DemoteF64x2Zero,
514    F64x2PromoteLowF32x4,
515    F64x2ConvertLowI32x4S,
516    F64x2ConvertLowI32x4U,
517    I32x4TruncSatF64x2SZero,
518    I32x4TruncSatF64x2UZero,
519    I8x16RelaxedSwizzle,
520    I32x4RelaxedTruncSatF32x4S,
521    I32x4RelaxedTruncSatF32x4U,
522    I32x4RelaxedTruncSatF64x2SZero,
523    I32x4RelaxedTruncSatF64x2UZero,
524    F32x4Fma,
525    F32x4Fms,
526    F64x2Fma,
527    F64x2Fms,
528    I8x16LaneSelect,
529    I16x8LaneSelect,
530    I32x4LaneSelect,
531    I64x2LaneSelect,
532    F32x4RelaxedMin,
533    F32x4RelaxedMax,
534    F64x2RelaxedMin,
535    F64x2RelaxedMax,
536    I16x8RelaxedQ15mulrS,
537    I16x8DotI8x16I7x16S,
538    I32x4DotI8x16I7x16AddS,
539    F32x4RelaxedDotBf16x8AddF32x4,
540}
541
542impl<'a> From<&Operator<'a>> for wasmer_parser_operator_t {
543    fn from(operator: &Operator<'a>) -> Self {
544        use Operator as O;
545
546        match operator {
547            O::Unreachable => Self::Unreachable,
548            O::Nop => Self::Nop,
549            O::Block { .. } => Self::Block,
550            O::Loop { .. } => Self::Loop,
551            O::If { .. } => Self::If,
552            O::Else => Self::Else,
553            O::Try { .. } => Self::Try,
554            O::Catch { .. } => Self::Catch,
555            O::CatchAll => Self::CatchAll,
556            O::Delegate { .. } => Self::Delegate,
557            O::Throw { .. } => Self::Throw,
558            O::Rethrow { .. } => Self::Rethrow,
559            // O::Unwind removed
560            O::End => Self::End,
561            O::Br { .. } => Self::Br,
562            O::BrIf { .. } => Self::BrIf,
563            O::BrTable { .. } => Self::BrTable,
564            O::Return => Self::Return,
565            O::Call { .. } => Self::Call,
566            O::CallIndirect { .. } => Self::CallIndirect,
567            O::ReturnCall { .. } => Self::ReturnCall,
568            O::ReturnCallIndirect { .. } => Self::ReturnCallIndirect,
569            O::Drop => Self::Drop,
570            O::Select => Self::Select,
571            O::TypedSelect { .. } => Self::TypedSelect,
572            O::LocalGet { .. } => Self::LocalGet,
573            O::LocalSet { .. } => Self::LocalSet,
574            O::LocalTee { .. } => Self::LocalTee,
575            O::GlobalGet { .. } => Self::GlobalGet,
576            O::GlobalSet { .. } => Self::GlobalSet,
577            O::I32Load { .. } => Self::I32Load,
578            O::I64Load { .. } => Self::I64Load,
579            O::F32Load { .. } => Self::F32Load,
580            O::F64Load { .. } => Self::F64Load,
581            O::I32Load8S { .. } => Self::I32Load8S,
582            O::I32Load8U { .. } => Self::I32Load8U,
583            O::I32Load16S { .. } => Self::I32Load16S,
584            O::I32Load16U { .. } => Self::I32Load16U,
585            O::I64Load8S { .. } => Self::I64Load8S,
586            O::I64Load8U { .. } => Self::I64Load8U,
587            O::I64Load16S { .. } => Self::I64Load16S,
588            O::I64Load16U { .. } => Self::I64Load16U,
589            O::I64Load32S { .. } => Self::I64Load32S,
590            O::I64Load32U { .. } => Self::I64Load32U,
591            O::I32Store { .. } => Self::I32Store,
592            O::I64Store { .. } => Self::I64Store,
593            O::F32Store { .. } => Self::F32Store,
594            O::F64Store { .. } => Self::F64Store,
595            O::I32Store8 { .. } => Self::I32Store8,
596            O::I32Store16 { .. } => Self::I32Store16,
597            O::I64Store8 { .. } => Self::I64Store8,
598            O::I64Store16 { .. } => Self::I64Store16,
599            O::I64Store32 { .. } => Self::I64Store32,
600            O::MemorySize { .. } => Self::MemorySize,
601            O::MemoryGrow { .. } => Self::MemoryGrow,
602            O::I32Const { .. } => Self::I32Const,
603            O::I64Const { .. } => Self::I64Const,
604            O::F32Const { .. } => Self::F32Const,
605            O::F64Const { .. } => Self::F64Const,
606            O::RefNull { .. } => Self::RefNull,
607            O::RefIsNull => Self::RefIsNull,
608            O::RefFunc { .. } => Self::RefFunc,
609            O::I32Eqz => Self::I32Eqz,
610            O::I32Eq => Self::I32Eq,
611            O::I32Ne => Self::I32Ne,
612            O::I32LtS => Self::I32LtS,
613            O::I32LtU => Self::I32LtU,
614            O::I32GtS => Self::I32GtS,
615            O::I32GtU => Self::I32GtU,
616            O::I32LeS => Self::I32LeS,
617            O::I32LeU => Self::I32LeU,
618            O::I32GeS => Self::I32GeS,
619            O::I32GeU => Self::I32GeU,
620            O::I64Eqz => Self::I64Eqz,
621            O::I64Eq => Self::I64Eq,
622            O::I64Ne => Self::I64Ne,
623            O::I64LtS => Self::I64LtS,
624            O::I64LtU => Self::I64LtU,
625            O::I64GtS => Self::I64GtS,
626            O::I64GtU => Self::I64GtU,
627            O::I64LeS => Self::I64LeS,
628            O::I64LeU => Self::I64LeU,
629            O::I64GeS => Self::I64GeS,
630            O::I64GeU => Self::I64GeU,
631            O::F32Eq => Self::F32Eq,
632            O::F32Ne => Self::F32Ne,
633            O::F32Lt => Self::F32Lt,
634            O::F32Gt => Self::F32Gt,
635            O::F32Le => Self::F32Le,
636            O::F32Ge => Self::F32Ge,
637            O::F64Eq => Self::F64Eq,
638            O::F64Ne => Self::F64Ne,
639            O::F64Lt => Self::F64Lt,
640            O::F64Gt => Self::F64Gt,
641            O::F64Le => Self::F64Le,
642            O::F64Ge => Self::F64Ge,
643            O::I32Clz => Self::I32Clz,
644            O::I32Ctz => Self::I32Ctz,
645            O::I32Popcnt => Self::I32Popcnt,
646            O::I32Add => Self::I32Add,
647            O::I32Sub => Self::I32Sub,
648            O::I32Mul => Self::I32Mul,
649            O::I32DivS => Self::I32DivS,
650            O::I32DivU => Self::I32DivU,
651            O::I32RemS => Self::I32RemS,
652            O::I32RemU => Self::I32RemU,
653            O::I32And => Self::I32And,
654            O::I32Or => Self::I32Or,
655            O::I32Xor => Self::I32Xor,
656            O::I32Shl => Self::I32Shl,
657            O::I32ShrS => Self::I32ShrS,
658            O::I32ShrU => Self::I32ShrU,
659            O::I32Rotl => Self::I32Rotl,
660            O::I32Rotr => Self::I32Rotr,
661            O::I64Clz => Self::I64Clz,
662            O::I64Ctz => Self::I64Ctz,
663            O::I64Popcnt => Self::I64Popcnt,
664            O::I64Add => Self::I64Add,
665            O::I64Sub => Self::I64Sub,
666            O::I64Mul => Self::I64Mul,
667            O::I64DivS => Self::I64DivS,
668            O::I64DivU => Self::I64DivU,
669            O::I64RemS => Self::I64RemS,
670            O::I64RemU => Self::I64RemU,
671            O::I64And => Self::I64And,
672            O::I64Or => Self::I64Or,
673            O::I64Xor => Self::I64Xor,
674            O::I64Shl => Self::I64Shl,
675            O::I64ShrS => Self::I64ShrS,
676            O::I64ShrU => Self::I64ShrU,
677            O::I64Rotl => Self::I64Rotl,
678            O::I64Rotr => Self::I64Rotr,
679            O::F32Abs => Self::F32Abs,
680            O::F32Neg => Self::F32Neg,
681            O::F32Ceil => Self::F32Ceil,
682            O::F32Floor => Self::F32Floor,
683            O::F32Trunc => Self::F32Trunc,
684            O::F32Nearest => Self::F32Nearest,
685            O::F32Sqrt => Self::F32Sqrt,
686            O::F32Add => Self::F32Add,
687            O::F32Sub => Self::F32Sub,
688            O::F32Mul => Self::F32Mul,
689            O::F32Div => Self::F32Div,
690            O::F32Min => Self::F32Min,
691            O::F32Max => Self::F32Max,
692            O::F32Copysign => Self::F32Copysign,
693            O::F64Abs => Self::F64Abs,
694            O::F64Neg => Self::F64Neg,
695            O::F64Ceil => Self::F64Ceil,
696            O::F64Floor => Self::F64Floor,
697            O::F64Trunc => Self::F64Trunc,
698            O::F64Nearest => Self::F64Nearest,
699            O::F64Sqrt => Self::F64Sqrt,
700            O::F64Add => Self::F64Add,
701            O::F64Sub => Self::F64Sub,
702            O::F64Mul => Self::F64Mul,
703            O::F64Div => Self::F64Div,
704            O::F64Min => Self::F64Min,
705            O::F64Max => Self::F64Max,
706            O::F64Copysign => Self::F64Copysign,
707            O::I32WrapI64 => Self::I32WrapI64,
708            O::I32TruncF32S => Self::I32TruncF32S,
709            O::I32TruncF32U => Self::I32TruncF32U,
710            O::I32TruncF64S => Self::I32TruncF64S,
711            O::I32TruncF64U => Self::I32TruncF64U,
712            O::I64ExtendI32S => Self::I64ExtendI32S,
713            O::I64ExtendI32U => Self::I64ExtendI32U,
714            O::I64TruncF32S => Self::I64TruncF32S,
715            O::I64TruncF32U => Self::I64TruncF32U,
716            O::I64TruncF64S => Self::I64TruncF64S,
717            O::I64TruncF64U => Self::I64TruncF64U,
718            O::F32ConvertI32S => Self::F32ConvertI32S,
719            O::F32ConvertI32U => Self::F32ConvertI32U,
720            O::F32ConvertI64S => Self::F32ConvertI64S,
721            O::F32ConvertI64U => Self::F32ConvertI64U,
722            O::F32DemoteF64 => Self::F32DemoteF64,
723            O::F64ConvertI32S => Self::F64ConvertI32S,
724            O::F64ConvertI32U => Self::F64ConvertI32U,
725            O::F64ConvertI64S => Self::F64ConvertI64S,
726            O::F64ConvertI64U => Self::F64ConvertI64U,
727            O::F64PromoteF32 => Self::F64PromoteF32,
728            O::I32ReinterpretF32 => Self::I32ReinterpretF32,
729            O::I64ReinterpretF64 => Self::I64ReinterpretF64,
730            O::F32ReinterpretI32 => Self::F32ReinterpretI32,
731            O::F64ReinterpretI64 => Self::F64ReinterpretI64,
732            O::I32Extend8S => Self::I32Extend8S,
733            O::I32Extend16S => Self::I32Extend16S,
734            O::I64Extend8S => Self::I64Extend8S,
735            O::I64Extend16S => Self::I64Extend16S,
736            O::I64Extend32S => Self::I64Extend32S,
737            O::I32TruncSatF32S => Self::I32TruncSatF32S,
738            O::I32TruncSatF32U => Self::I32TruncSatF32U,
739            O::I32TruncSatF64S => Self::I32TruncSatF64S,
740            O::I32TruncSatF64U => Self::I32TruncSatF64U,
741            O::I64TruncSatF32S => Self::I64TruncSatF32S,
742            O::I64TruncSatF32U => Self::I64TruncSatF32U,
743            O::I64TruncSatF64S => Self::I64TruncSatF64S,
744            O::I64TruncSatF64U => Self::I64TruncSatF64U,
745            O::MemoryInit { .. } => Self::MemoryInit,
746            O::DataDrop { .. } => Self::DataDrop,
747            O::MemoryCopy { .. } => Self::MemoryCopy,
748            O::MemoryFill { .. } => Self::MemoryFill,
749            O::TableInit { .. } => Self::TableInit,
750            O::ElemDrop { .. } => Self::ElemDrop,
751            O::TableCopy { .. } => Self::TableCopy,
752            O::TableFill { .. } => Self::TableFill,
753            O::TableGet { .. } => Self::TableGet,
754            O::TableSet { .. } => Self::TableSet,
755            O::TableGrow { .. } => Self::TableGrow,
756            O::TableSize { .. } => Self::TableSize,
757            O::MemoryAtomicNotify { .. } => Self::MemoryAtomicNotify,
758            O::MemoryAtomicWait32 { .. } => Self::MemoryAtomicWait32,
759            O::MemoryAtomicWait64 { .. } => Self::MemoryAtomicWait64,
760            O::AtomicFence { .. } => Self::AtomicFence,
761            O::I32AtomicLoad { .. } => Self::I32AtomicLoad,
762            O::I64AtomicLoad { .. } => Self::I64AtomicLoad,
763            O::I32AtomicLoad8U { .. } => Self::I32AtomicLoad8U,
764            O::I32AtomicLoad16U { .. } => Self::I32AtomicLoad16U,
765            O::I64AtomicLoad8U { .. } => Self::I64AtomicLoad8U,
766            O::I64AtomicLoad16U { .. } => Self::I64AtomicLoad16U,
767            O::I64AtomicLoad32U { .. } => Self::I64AtomicLoad32U,
768            O::I32AtomicStore { .. } => Self::I32AtomicStore,
769            O::I64AtomicStore { .. } => Self::I64AtomicStore,
770            O::I32AtomicStore8 { .. } => Self::I32AtomicStore8,
771            O::I32AtomicStore16 { .. } => Self::I32AtomicStore16,
772            O::I64AtomicStore8 { .. } => Self::I64AtomicStore8,
773            O::I64AtomicStore16 { .. } => Self::I64AtomicStore16,
774            O::I64AtomicStore32 { .. } => Self::I64AtomicStore32,
775            O::I32AtomicRmwAdd { .. } => Self::I32AtomicRmwAdd,
776            O::I64AtomicRmwAdd { .. } => Self::I64AtomicRmwAdd,
777            O::I32AtomicRmw8AddU { .. } => Self::I32AtomicRmw8AddU,
778            O::I32AtomicRmw16AddU { .. } => Self::I32AtomicRmw16AddU,
779            O::I64AtomicRmw8AddU { .. } => Self::I64AtomicRmw8AddU,
780            O::I64AtomicRmw16AddU { .. } => Self::I64AtomicRmw16AddU,
781            O::I64AtomicRmw32AddU { .. } => Self::I64AtomicRmw32AddU,
782            O::I32AtomicRmwSub { .. } => Self::I32AtomicRmwSub,
783            O::I64AtomicRmwSub { .. } => Self::I64AtomicRmwSub,
784            O::I32AtomicRmw8SubU { .. } => Self::I32AtomicRmw8SubU,
785            O::I32AtomicRmw16SubU { .. } => Self::I32AtomicRmw16SubU,
786            O::I64AtomicRmw8SubU { .. } => Self::I64AtomicRmw8SubU,
787            O::I64AtomicRmw16SubU { .. } => Self::I64AtomicRmw16SubU,
788            O::I64AtomicRmw32SubU { .. } => Self::I64AtomicRmw32SubU,
789            O::I32AtomicRmwAnd { .. } => Self::I32AtomicRmwAnd,
790            O::I64AtomicRmwAnd { .. } => Self::I64AtomicRmwAnd,
791            O::I32AtomicRmw8AndU { .. } => Self::I32AtomicRmw8AndU,
792            O::I32AtomicRmw16AndU { .. } => Self::I32AtomicRmw16AndU,
793            O::I64AtomicRmw8AndU { .. } => Self::I64AtomicRmw8AndU,
794            O::I64AtomicRmw16AndU { .. } => Self::I64AtomicRmw16AndU,
795            O::I64AtomicRmw32AndU { .. } => Self::I64AtomicRmw32AndU,
796            O::I32AtomicRmwOr { .. } => Self::I32AtomicRmwOr,
797            O::I64AtomicRmwOr { .. } => Self::I64AtomicRmwOr,
798            O::I32AtomicRmw8OrU { .. } => Self::I32AtomicRmw8OrU,
799            O::I32AtomicRmw16OrU { .. } => Self::I32AtomicRmw16OrU,
800            O::I64AtomicRmw8OrU { .. } => Self::I64AtomicRmw8OrU,
801            O::I64AtomicRmw16OrU { .. } => Self::I64AtomicRmw16OrU,
802            O::I64AtomicRmw32OrU { .. } => Self::I64AtomicRmw32OrU,
803            O::I32AtomicRmwXor { .. } => Self::I32AtomicRmwXor,
804            O::I64AtomicRmwXor { .. } => Self::I64AtomicRmwXor,
805            O::I32AtomicRmw8XorU { .. } => Self::I32AtomicRmw8XorU,
806            O::I32AtomicRmw16XorU { .. } => Self::I32AtomicRmw16XorU,
807            O::I64AtomicRmw8XorU { .. } => Self::I64AtomicRmw8XorU,
808            O::I64AtomicRmw16XorU { .. } => Self::I64AtomicRmw16XorU,
809            O::I64AtomicRmw32XorU { .. } => Self::I64AtomicRmw32XorU,
810            O::I32AtomicRmwXchg { .. } => Self::I32AtomicRmwXchg,
811            O::I64AtomicRmwXchg { .. } => Self::I64AtomicRmwXchg,
812            O::I32AtomicRmw8XchgU { .. } => Self::I32AtomicRmw8XchgU,
813            O::I32AtomicRmw16XchgU { .. } => Self::I32AtomicRmw16XchgU,
814            O::I64AtomicRmw8XchgU { .. } => Self::I64AtomicRmw8XchgU,
815            O::I64AtomicRmw16XchgU { .. } => Self::I64AtomicRmw16XchgU,
816            O::I64AtomicRmw32XchgU { .. } => Self::I64AtomicRmw32XchgU,
817            O::I32AtomicRmwCmpxchg { .. } => Self::I32AtomicRmwCmpxchg,
818            O::I64AtomicRmwCmpxchg { .. } => Self::I64AtomicRmwCmpxchg,
819            O::I32AtomicRmw8CmpxchgU { .. } => Self::I32AtomicRmw8CmpxchgU,
820            O::I32AtomicRmw16CmpxchgU { .. } => Self::I32AtomicRmw16CmpxchgU,
821            O::I64AtomicRmw8CmpxchgU { .. } => Self::I64AtomicRmw8CmpxchgU,
822            O::I64AtomicRmw16CmpxchgU { .. } => Self::I64AtomicRmw16CmpxchgU,
823            O::I64AtomicRmw32CmpxchgU { .. } => Self::I64AtomicRmw32CmpxchgU,
824            O::V128Load { .. } => Self::V128Load,
825            O::V128Store { .. } => Self::V128Store,
826            O::V128Const { .. } => Self::V128Const,
827            O::I8x16Splat => Self::I8x16Splat,
828            O::I8x16ExtractLaneS { .. } => Self::I8x16ExtractLaneS,
829            O::I8x16ExtractLaneU { .. } => Self::I8x16ExtractLaneU,
830            O::I8x16ReplaceLane { .. } => Self::I8x16ReplaceLane,
831            O::I16x8Splat => Self::I16x8Splat,
832            O::I16x8ExtractLaneS { .. } => Self::I16x8ExtractLaneS,
833            O::I16x8ExtractLaneU { .. } => Self::I16x8ExtractLaneU,
834            O::I16x8ReplaceLane { .. } => Self::I16x8ReplaceLane,
835            O::I32x4Splat => Self::I32x4Splat,
836            O::I32x4ExtractLane { .. } => Self::I32x4ExtractLane,
837            O::I32x4ReplaceLane { .. } => Self::I32x4ReplaceLane,
838            O::I64x2Splat => Self::I64x2Splat,
839            O::I64x2ExtractLane { .. } => Self::I64x2ExtractLane,
840            O::I64x2ReplaceLane { .. } => Self::I64x2ReplaceLane,
841            O::F32x4Splat => Self::F32x4Splat,
842            O::F32x4ExtractLane { .. } => Self::F32x4ExtractLane,
843            O::F32x4ReplaceLane { .. } => Self::F32x4ReplaceLane,
844            O::F64x2Splat => Self::F64x2Splat,
845            O::F64x2ExtractLane { .. } => Self::F64x2ExtractLane,
846            O::F64x2ReplaceLane { .. } => Self::F64x2ReplaceLane,
847            O::I8x16Eq => Self::I8x16Eq,
848            O::I8x16Ne => Self::I8x16Ne,
849            O::I8x16LtS => Self::I8x16LtS,
850            O::I8x16LtU => Self::I8x16LtU,
851            O::I8x16GtS => Self::I8x16GtS,
852            O::I8x16GtU => Self::I8x16GtU,
853            O::I8x16LeS => Self::I8x16LeS,
854            O::I8x16LeU => Self::I8x16LeU,
855            O::I8x16GeS => Self::I8x16GeS,
856            O::I8x16GeU => Self::I8x16GeU,
857            O::I16x8Eq => Self::I16x8Eq,
858            O::I16x8Ne => Self::I16x8Ne,
859            O::I16x8LtS => Self::I16x8LtS,
860            O::I16x8LtU => Self::I16x8LtU,
861            O::I16x8GtS => Self::I16x8GtS,
862            O::I16x8GtU => Self::I16x8GtU,
863            O::I16x8LeS => Self::I16x8LeS,
864            O::I16x8LeU => Self::I16x8LeU,
865            O::I16x8GeS => Self::I16x8GeS,
866            O::I16x8GeU => Self::I16x8GeU,
867            O::I32x4Eq => Self::I32x4Eq,
868            O::I32x4Ne => Self::I32x4Ne,
869            O::I32x4LtS => Self::I32x4LtS,
870            O::I32x4LtU => Self::I32x4LtU,
871            O::I32x4GtS => Self::I32x4GtS,
872            O::I32x4GtU => Self::I32x4GtU,
873            O::I32x4LeS => Self::I32x4LeS,
874            O::I32x4LeU => Self::I32x4LeU,
875            O::I32x4GeS => Self::I32x4GeS,
876            O::I32x4GeU => Self::I32x4GeU,
877            O::I64x2Eq => Self::I64x2Eq,
878            O::I64x2Ne => Self::I64x2Ne,
879            O::I64x2LtS => Self::I64x2LtS,
880            O::I64x2GtS => Self::I64x2GtS,
881            O::I64x2LeS => Self::I64x2LeS,
882            O::I64x2GeS => Self::I64x2GeS,
883            O::F32x4Eq => Self::F32x4Eq,
884            O::F32x4Ne => Self::F32x4Ne,
885            O::F32x4Lt => Self::F32x4Lt,
886            O::F32x4Gt => Self::F32x4Gt,
887            O::F32x4Le => Self::F32x4Le,
888            O::F32x4Ge => Self::F32x4Ge,
889            O::F64x2Eq => Self::F64x2Eq,
890            O::F64x2Ne => Self::F64x2Ne,
891            O::F64x2Lt => Self::F64x2Lt,
892            O::F64x2Gt => Self::F64x2Gt,
893            O::F64x2Le => Self::F64x2Le,
894            O::F64x2Ge => Self::F64x2Ge,
895            O::V128Not => Self::V128Not,
896            O::V128And => Self::V128And,
897            O::V128AndNot => Self::V128AndNot,
898            O::V128Or => Self::V128Or,
899            O::V128Xor => Self::V128Xor,
900            O::V128Bitselect => Self::V128Bitselect,
901            O::V128AnyTrue => Self::V128AnyTrue,
902            O::I8x16Popcnt => Self::I8x16Popcnt,
903            O::I8x16Abs => Self::I8x16Abs,
904            O::I8x16Neg => Self::I8x16Neg,
905            O::I8x16AllTrue => Self::I8x16AllTrue,
906            O::I8x16Bitmask => Self::I8x16Bitmask,
907            O::I8x16Shl => Self::I8x16Shl,
908            O::I8x16ShrS => Self::I8x16ShrS,
909            O::I8x16ShrU => Self::I8x16ShrU,
910            O::I8x16Add => Self::I8x16Add,
911            O::I8x16AddSatS => Self::I8x16AddSatS,
912            O::I8x16AddSatU => Self::I8x16AddSatU,
913            O::I8x16Sub => Self::I8x16Sub,
914            O::I8x16SubSatS => Self::I8x16SubSatS,
915            O::I8x16SubSatU => Self::I8x16SubSatU,
916            O::I8x16MinS => Self::I8x16MinS,
917            O::I8x16MinU => Self::I8x16MinU,
918            O::I8x16MaxS => Self::I8x16MaxS,
919            O::I8x16MaxU => Self::I8x16MaxU,
920            O::I16x8Abs => Self::I16x8Abs,
921            O::I16x8Neg => Self::I16x8Neg,
922            O::I16x8AllTrue => Self::I16x8AllTrue,
923            O::I16x8Bitmask => Self::I16x8Bitmask,
924            O::I16x8Shl => Self::I16x8Shl,
925            O::I16x8ShrS => Self::I16x8ShrS,
926            O::I16x8ShrU => Self::I16x8ShrU,
927            O::I16x8Add => Self::I16x8Add,
928            O::I16x8AddSatS => Self::I16x8AddSatS,
929            O::I16x8AddSatU => Self::I16x8AddSatU,
930            O::I16x8Sub => Self::I16x8Sub,
931            O::I16x8SubSatS => Self::I16x8SubSatS,
932            O::I16x8SubSatU => Self::I16x8SubSatU,
933            O::I16x8Mul => Self::I16x8Mul,
934            O::I16x8MinS => Self::I16x8MinS,
935            O::I16x8MinU => Self::I16x8MinU,
936            O::I16x8MaxS => Self::I16x8MaxS,
937            O::I16x8MaxU => Self::I16x8MaxU,
938            O::I16x8ExtAddPairwiseI8x16S => Self::I16x8ExtAddPairwiseI8x16S,
939            O::I16x8ExtAddPairwiseI8x16U => Self::I16x8ExtAddPairwiseI8x16U,
940            O::I32x4Abs => Self::I32x4Abs,
941            O::I32x4Neg => Self::I32x4Neg,
942            O::I32x4AllTrue => Self::I32x4AllTrue,
943            O::I32x4Bitmask => Self::I32x4Bitmask,
944            O::I32x4Shl => Self::I32x4Shl,
945            O::I32x4ShrS => Self::I32x4ShrS,
946            O::I32x4ShrU => Self::I32x4ShrU,
947            O::I32x4Add => Self::I32x4Add,
948            O::I32x4Sub => Self::I32x4Sub,
949            O::I32x4Mul => Self::I32x4Mul,
950            O::I32x4MinS => Self::I32x4MinS,
951            O::I32x4MinU => Self::I32x4MinU,
952            O::I32x4MaxS => Self::I32x4MaxS,
953            O::I32x4MaxU => Self::I32x4MaxU,
954            O::I32x4DotI16x8S => Self::I32x4DotI16x8S,
955            O::I32x4ExtAddPairwiseI16x8S => Self::I32x4ExtAddPairwiseI16x8S,
956            O::I32x4ExtAddPairwiseI16x8U => Self::I32x4ExtAddPairwiseI16x8U,
957            O::I64x2Abs => Self::I64x2Abs,
958            O::I64x2Neg => Self::I64x2Neg,
959            O::I64x2AllTrue => Self::I64x2AllTrue,
960            O::I64x2Bitmask => Self::I64x2Bitmask,
961            O::I64x2Shl => Self::I64x2Shl,
962            O::I64x2ShrS => Self::I64x2ShrS,
963            O::I64x2ShrU => Self::I64x2ShrU,
964            O::I64x2Add => Self::I64x2Add,
965            O::I64x2Sub => Self::I64x2Sub,
966            O::I64x2Mul => Self::I64x2Mul,
967            O::F32x4Ceil => Self::F32x4Ceil,
968            O::F32x4Floor => Self::F32x4Floor,
969            O::F32x4Trunc => Self::F32x4Trunc,
970            O::F32x4Nearest => Self::F32x4Nearest,
971            O::F64x2Ceil => Self::F64x2Ceil,
972            O::F64x2Floor => Self::F64x2Floor,
973            O::F64x2Trunc => Self::F64x2Trunc,
974            O::F64x2Nearest => Self::F64x2Nearest,
975            O::F32x4Abs => Self::F32x4Abs,
976            O::F32x4Neg => Self::F32x4Neg,
977            O::F32x4Sqrt => Self::F32x4Sqrt,
978            O::F32x4Add => Self::F32x4Add,
979            O::F32x4Sub => Self::F32x4Sub,
980            O::F32x4Mul => Self::F32x4Mul,
981            O::F32x4Div => Self::F32x4Div,
982            O::F32x4Min => Self::F32x4Min,
983            O::F32x4Max => Self::F32x4Max,
984            O::F32x4PMin => Self::F32x4PMin,
985            O::F32x4PMax => Self::F32x4PMax,
986            O::F64x2Abs => Self::F64x2Abs,
987            O::F64x2Neg => Self::F64x2Neg,
988            O::F64x2Sqrt => Self::F64x2Sqrt,
989            O::F64x2Add => Self::F64x2Add,
990            O::F64x2Sub => Self::F64x2Sub,
991            O::F64x2Mul => Self::F64x2Mul,
992            O::F64x2Div => Self::F64x2Div,
993            O::F64x2Min => Self::F64x2Min,
994            O::F64x2Max => Self::F64x2Max,
995            O::F64x2PMin => Self::F64x2PMin,
996            O::F64x2PMax => Self::F64x2PMax,
997            O::I32x4TruncSatF32x4S => Self::I32x4TruncSatF32x4S,
998            O::I32x4TruncSatF32x4U => Self::I32x4TruncSatF32x4U,
999            O::F32x4ConvertI32x4S => Self::F32x4ConvertI32x4S,
1000            O::F32x4ConvertI32x4U => Self::F32x4ConvertI32x4U,
1001            O::I8x16Swizzle => Self::I8x16Swizzle,
1002            O::I8x16Shuffle { .. } => Self::I8x16Shuffle,
1003            O::V128Load8Splat { .. } => Self::V128Load8Splat,
1004            O::V128Load16Splat { .. } => Self::V128Load16Splat,
1005            O::V128Load32Splat { .. } => Self::V128Load32Splat,
1006            O::V128Load32Zero { .. } => Self::V128Load32Zero,
1007            O::V128Load64Splat { .. } => Self::V128Load64Splat,
1008            O::V128Load64Zero { .. } => Self::V128Load64Zero,
1009            O::I8x16NarrowI16x8S => Self::I8x16NarrowI16x8S,
1010            O::I8x16NarrowI16x8U => Self::I8x16NarrowI16x8U,
1011            O::I16x8NarrowI32x4S => Self::I16x8NarrowI32x4S,
1012            O::I16x8NarrowI32x4U => Self::I16x8NarrowI32x4U,
1013            O::I16x8ExtendLowI8x16S => Self::I16x8ExtendLowI8x16S,
1014            O::I16x8ExtendHighI8x16S => Self::I16x8ExtendHighI8x16S,
1015            O::I16x8ExtendLowI8x16U => Self::I16x8ExtendLowI8x16U,
1016            O::I16x8ExtendHighI8x16U => Self::I16x8ExtendHighI8x16U,
1017            O::I32x4ExtendLowI16x8S => Self::I32x4ExtendLowI16x8S,
1018            O::I32x4ExtendHighI16x8S => Self::I32x4ExtendHighI16x8S,
1019            O::I32x4ExtendLowI16x8U => Self::I32x4ExtendLowI16x8U,
1020            O::I32x4ExtendHighI16x8U => Self::I32x4ExtendHighI16x8U,
1021            O::I64x2ExtendLowI32x4S => Self::I64x2ExtendLowI32x4S,
1022            O::I64x2ExtendHighI32x4S => Self::I64x2ExtendHighI32x4S,
1023            O::I64x2ExtendLowI32x4U => Self::I64x2ExtendLowI32x4U,
1024            O::I64x2ExtendHighI32x4U => Self::I64x2ExtendHighI32x4U,
1025            O::I16x8ExtMulLowI8x16S => Self::I16x8ExtMulLowI8x16S,
1026            O::I16x8ExtMulHighI8x16S => Self::I16x8ExtMulHighI8x16S,
1027            O::I16x8ExtMulLowI8x16U => Self::I16x8ExtMulLowI8x16U,
1028            O::I16x8ExtMulHighI8x16U => Self::I16x8ExtMulHighI8x16U,
1029            O::I32x4ExtMulLowI16x8S => Self::I32x4ExtMulLowI16x8S,
1030            O::I32x4ExtMulHighI16x8S => Self::I32x4ExtMulHighI16x8S,
1031            O::I32x4ExtMulLowI16x8U => Self::I32x4ExtMulLowI16x8U,
1032            O::I32x4ExtMulHighI16x8U => Self::I32x4ExtMulHighI16x8U,
1033            O::I64x2ExtMulLowI32x4S => Self::I64x2ExtMulLowI32x4S,
1034            O::I64x2ExtMulHighI32x4S => Self::I64x2ExtMulHighI32x4S,
1035            O::I64x2ExtMulLowI32x4U => Self::I64x2ExtMulLowI32x4U,
1036            O::I64x2ExtMulHighI32x4U => Self::I64x2ExtMulHighI32x4U,
1037            O::V128Load8x8S { .. } => Self::V128Load8x8S,
1038            O::V128Load8x8U { .. } => Self::V128Load8x8U,
1039            O::V128Load16x4S { .. } => Self::V128Load16x4S,
1040            O::V128Load16x4U { .. } => Self::V128Load16x4U,
1041            O::V128Load32x2S { .. } => Self::V128Load32x2S,
1042            O::V128Load32x2U { .. } => Self::V128Load32x2U,
1043            O::V128Load8Lane { .. } => Self::V128Load8Lane,
1044            O::V128Load16Lane { .. } => Self::V128Load16Lane,
1045            O::V128Load32Lane { .. } => Self::V128Load32Lane,
1046            O::V128Load64Lane { .. } => Self::V128Load64Lane,
1047            O::V128Store8Lane { .. } => Self::V128Store8Lane,
1048            O::V128Store16Lane { .. } => Self::V128Store16Lane,
1049            O::V128Store32Lane { .. } => Self::V128Store32Lane,
1050            O::V128Store64Lane { .. } => Self::V128Store64Lane,
1051            O::I8x16AvgrU => Self::I8x16RoundingAverageU,
1052            O::I16x8AvgrU => Self::I16x8RoundingAverageU,
1053            O::I16x8Q15MulrSatS => Self::I16x8Q15MulrSatS,
1054            O::F32x4DemoteF64x2Zero => Self::F32x4DemoteF64x2Zero,
1055            O::F64x2PromoteLowF32x4 => Self::F64x2PromoteLowF32x4,
1056            O::F64x2ConvertLowI32x4S => Self::F64x2ConvertLowI32x4S,
1057            O::F64x2ConvertLowI32x4U => Self::F64x2ConvertLowI32x4U,
1058            O::I32x4TruncSatF64x2SZero => Self::I32x4TruncSatF64x2SZero,
1059            O::I32x4TruncSatF64x2UZero => Self::I32x4TruncSatF64x2UZero,
1060            O::I8x16RelaxedSwizzle => Self::I8x16RelaxedSwizzle,
1061            O::I32x4RelaxedTruncF32x4S => Self::I32x4RelaxedTruncSatF32x4S,
1062            O::I32x4RelaxedTruncF32x4U => Self::I32x4RelaxedTruncSatF32x4U,
1063            O::I32x4RelaxedTruncF64x2SZero => Self::I32x4RelaxedTruncSatF64x2SZero,
1064            O::I32x4RelaxedTruncF64x2UZero => Self::I32x4RelaxedTruncSatF64x2UZero,
1065            O::F32x4RelaxedMadd => Self::F32x4Fma,
1066            O::I8x16RelaxedLaneselect => Self::I8x16LaneSelect,
1067            O::I16x8RelaxedLaneselect => Self::I16x8LaneSelect,
1068            O::I32x4RelaxedLaneselect => Self::I32x4LaneSelect,
1069            O::I64x2RelaxedLaneselect => Self::I64x2LaneSelect,
1070            O::F32x4RelaxedMin => Self::F32x4RelaxedMin,
1071            O::F32x4RelaxedMax => Self::F32x4RelaxedMax,
1072            O::F64x2RelaxedMin => Self::F64x2RelaxedMin,
1073            O::F64x2RelaxedMax => Self::F64x2RelaxedMax,
1074            O::I16x8RelaxedQ15mulrS => Self::I16x8RelaxedQ15mulrS,
1075            _ => {
1076                panic!("unimplemented operator {operator:?}");
1077            }
1078        }
1079    }
1080}