asmkit/aarch64/
emitter.rs

1use super::opcodes::*;
2use crate::{core::emitter::*, core::operand::*};
3
4pub trait A64EmitterExplicit: Emitter {
5    fn udf(&mut self, imm16: impl OperandCast) {
6        return self.emit_n(Opcode::UDF as _, &[imm16.as_operand()]);
7    }
8    fn adcw(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
9        return self.emit_n(
10            Opcode::ADCw as _,
11            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
12        );
13    }
14    fn adcsw(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15        return self.emit_n(
16            Opcode::ADCSw as _,
17            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18        );
19    }
20    fn sbcw(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
21        return self.emit_n(
22            Opcode::SBCw as _,
23            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
24        );
25    }
26    fn sbcsw(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
27        return self.emit_n(
28            Opcode::SBCSw as _,
29            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
30        );
31    }
32    fn adcx(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
33        return self.emit_n(
34            Opcode::ADCx as _,
35            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
36        );
37    }
38    fn adcsx(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
39        return self.emit_n(
40            Opcode::ADCSx as _,
41            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
42        );
43    }
44    fn sbcx(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
45        return self.emit_n(
46            Opcode::SBCx as _,
47            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
48        );
49    }
50    fn sbcsx(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
51        return self.emit_n(
52            Opcode::SBCSx as _,
53            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
54        );
55    }
56    fn ngcw(&mut self, rd: impl OperandCast, rm: impl OperandCast) {
57        return self.emit_n(Opcode::NGCw as _, &[rd.as_operand(), rm.as_operand()]);
58    }
59    fn ngcsw(&mut self, rd: impl OperandCast, rm: impl OperandCast) {
60        return self.emit_n(Opcode::NGCSw as _, &[rd.as_operand(), rm.as_operand()]);
61    }
62    fn ngcx(&mut self, rd: impl OperandCast, rm: impl OperandCast) {
63        return self.emit_n(Opcode::NGCx as _, &[rd.as_operand(), rm.as_operand()]);
64    }
65    fn ngcsx(&mut self, rd: impl OperandCast, rm: impl OperandCast) {
66        return self.emit_n(Opcode::NGCSx as _, &[rd.as_operand(), rm.as_operand()]);
67    }
68    fn addw_uxtb(
69        &mut self,
70        rd: impl OperandCast,
71        rn: impl OperandCast,
72        rm: impl OperandCast,
73        imm3: impl OperandCast,
74    ) {
75        return self.emit_n(
76            Opcode::ADDw_uxtb as _,
77            &[
78                rd.as_operand(),
79                rn.as_operand(),
80                rm.as_operand(),
81                imm3.as_operand(),
82            ],
83        );
84    }
85    fn addw_uxth(
86        &mut self,
87        rd: impl OperandCast,
88        rn: impl OperandCast,
89        rm: impl OperandCast,
90        imm3: impl OperandCast,
91    ) {
92        return self.emit_n(
93            Opcode::ADDw_uxth as _,
94            &[
95                rd.as_operand(),
96                rn.as_operand(),
97                rm.as_operand(),
98                imm3.as_operand(),
99            ],
100        );
101    }
102    fn addw_uxtw(
103        &mut self,
104        rd: impl OperandCast,
105        rn: impl OperandCast,
106        rm: impl OperandCast,
107        imm3: impl OperandCast,
108    ) {
109        return self.emit_n(
110            Opcode::ADDw_uxtw as _,
111            &[
112                rd.as_operand(),
113                rn.as_operand(),
114                rm.as_operand(),
115                imm3.as_operand(),
116            ],
117        );
118    }
119    fn addw_uxtx(
120        &mut self,
121        rd: impl OperandCast,
122        rn: impl OperandCast,
123        rm: impl OperandCast,
124        imm3: impl OperandCast,
125    ) {
126        return self.emit_n(
127            Opcode::ADDw_uxtx as _,
128            &[
129                rd.as_operand(),
130                rn.as_operand(),
131                rm.as_operand(),
132                imm3.as_operand(),
133            ],
134        );
135    }
136    fn addw_sxtb(
137        &mut self,
138        rd: impl OperandCast,
139        rn: impl OperandCast,
140        rm: impl OperandCast,
141        imm3: impl OperandCast,
142    ) {
143        return self.emit_n(
144            Opcode::ADDw_sxtb as _,
145            &[
146                rd.as_operand(),
147                rn.as_operand(),
148                rm.as_operand(),
149                imm3.as_operand(),
150            ],
151        );
152    }
153    fn addw_sxth(
154        &mut self,
155        rd: impl OperandCast,
156        rn: impl OperandCast,
157        rm: impl OperandCast,
158        imm3: impl OperandCast,
159    ) {
160        return self.emit_n(
161            Opcode::ADDw_sxth as _,
162            &[
163                rd.as_operand(),
164                rn.as_operand(),
165                rm.as_operand(),
166                imm3.as_operand(),
167            ],
168        );
169    }
170    fn addw_sxtw(
171        &mut self,
172        rd: impl OperandCast,
173        rn: impl OperandCast,
174        rm: impl OperandCast,
175        imm3: impl OperandCast,
176    ) {
177        return self.emit_n(
178            Opcode::ADDw_sxtw as _,
179            &[
180                rd.as_operand(),
181                rn.as_operand(),
182                rm.as_operand(),
183                imm3.as_operand(),
184            ],
185        );
186    }
187    fn addw_sxtx(
188        &mut self,
189        rd: impl OperandCast,
190        rn: impl OperandCast,
191        rm: impl OperandCast,
192        imm3: impl OperandCast,
193    ) {
194        return self.emit_n(
195            Opcode::ADDw_sxtx as _,
196            &[
197                rd.as_operand(),
198                rn.as_operand(),
199                rm.as_operand(),
200                imm3.as_operand(),
201            ],
202        );
203    }
204    fn addsw_uxtb(
205        &mut self,
206        rd: impl OperandCast,
207        rn: impl OperandCast,
208        rm: impl OperandCast,
209        imm3: impl OperandCast,
210    ) {
211        return self.emit_n(
212            Opcode::ADDSw_uxtb as _,
213            &[
214                rd.as_operand(),
215                rn.as_operand(),
216                rm.as_operand(),
217                imm3.as_operand(),
218            ],
219        );
220    }
221    fn addsw_uxth(
222        &mut self,
223        rd: impl OperandCast,
224        rn: impl OperandCast,
225        rm: impl OperandCast,
226        imm3: impl OperandCast,
227    ) {
228        return self.emit_n(
229            Opcode::ADDSw_uxth as _,
230            &[
231                rd.as_operand(),
232                rn.as_operand(),
233                rm.as_operand(),
234                imm3.as_operand(),
235            ],
236        );
237    }
238    fn addsw_uxtw(
239        &mut self,
240        rd: impl OperandCast,
241        rn: impl OperandCast,
242        rm: impl OperandCast,
243        imm3: impl OperandCast,
244    ) {
245        return self.emit_n(
246            Opcode::ADDSw_uxtw as _,
247            &[
248                rd.as_operand(),
249                rn.as_operand(),
250                rm.as_operand(),
251                imm3.as_operand(),
252            ],
253        );
254    }
255    fn addsw_uxtx(
256        &mut self,
257        rd: impl OperandCast,
258        rn: impl OperandCast,
259        rm: impl OperandCast,
260        imm3: impl OperandCast,
261    ) {
262        return self.emit_n(
263            Opcode::ADDSw_uxtx as _,
264            &[
265                rd.as_operand(),
266                rn.as_operand(),
267                rm.as_operand(),
268                imm3.as_operand(),
269            ],
270        );
271    }
272    fn addsw_sxtb(
273        &mut self,
274        rd: impl OperandCast,
275        rn: impl OperandCast,
276        rm: impl OperandCast,
277        imm3: impl OperandCast,
278    ) {
279        return self.emit_n(
280            Opcode::ADDSw_sxtb as _,
281            &[
282                rd.as_operand(),
283                rn.as_operand(),
284                rm.as_operand(),
285                imm3.as_operand(),
286            ],
287        );
288    }
289    fn addsw_sxth(
290        &mut self,
291        rd: impl OperandCast,
292        rn: impl OperandCast,
293        rm: impl OperandCast,
294        imm3: impl OperandCast,
295    ) {
296        return self.emit_n(
297            Opcode::ADDSw_sxth as _,
298            &[
299                rd.as_operand(),
300                rn.as_operand(),
301                rm.as_operand(),
302                imm3.as_operand(),
303            ],
304        );
305    }
306    fn addsw_sxtw(
307        &mut self,
308        rd: impl OperandCast,
309        rn: impl OperandCast,
310        rm: impl OperandCast,
311        imm3: impl OperandCast,
312    ) {
313        return self.emit_n(
314            Opcode::ADDSw_sxtw as _,
315            &[
316                rd.as_operand(),
317                rn.as_operand(),
318                rm.as_operand(),
319                imm3.as_operand(),
320            ],
321        );
322    }
323    fn addsw_sxtx(
324        &mut self,
325        rd: impl OperandCast,
326        rn: impl OperandCast,
327        rm: impl OperandCast,
328        imm3: impl OperandCast,
329    ) {
330        return self.emit_n(
331            Opcode::ADDSw_sxtx as _,
332            &[
333                rd.as_operand(),
334                rn.as_operand(),
335                rm.as_operand(),
336                imm3.as_operand(),
337            ],
338        );
339    }
340    fn subw_uxtb(
341        &mut self,
342        rd: impl OperandCast,
343        rn: impl OperandCast,
344        rm: impl OperandCast,
345        imm3: impl OperandCast,
346    ) {
347        return self.emit_n(
348            Opcode::SUBw_uxtb as _,
349            &[
350                rd.as_operand(),
351                rn.as_operand(),
352                rm.as_operand(),
353                imm3.as_operand(),
354            ],
355        );
356    }
357    fn subw_uxth(
358        &mut self,
359        rd: impl OperandCast,
360        rn: impl OperandCast,
361        rm: impl OperandCast,
362        imm3: impl OperandCast,
363    ) {
364        return self.emit_n(
365            Opcode::SUBw_uxth as _,
366            &[
367                rd.as_operand(),
368                rn.as_operand(),
369                rm.as_operand(),
370                imm3.as_operand(),
371            ],
372        );
373    }
374    fn subw_uxtw(
375        &mut self,
376        rd: impl OperandCast,
377        rn: impl OperandCast,
378        rm: impl OperandCast,
379        imm3: impl OperandCast,
380    ) {
381        return self.emit_n(
382            Opcode::SUBw_uxtw as _,
383            &[
384                rd.as_operand(),
385                rn.as_operand(),
386                rm.as_operand(),
387                imm3.as_operand(),
388            ],
389        );
390    }
391    fn subw_uxtx(
392        &mut self,
393        rd: impl OperandCast,
394        rn: impl OperandCast,
395        rm: impl OperandCast,
396        imm3: impl OperandCast,
397    ) {
398        return self.emit_n(
399            Opcode::SUBw_uxtx as _,
400            &[
401                rd.as_operand(),
402                rn.as_operand(),
403                rm.as_operand(),
404                imm3.as_operand(),
405            ],
406        );
407    }
408    fn subw_sxtb(
409        &mut self,
410        rd: impl OperandCast,
411        rn: impl OperandCast,
412        rm: impl OperandCast,
413        imm3: impl OperandCast,
414    ) {
415        return self.emit_n(
416            Opcode::SUBw_sxtb as _,
417            &[
418                rd.as_operand(),
419                rn.as_operand(),
420                rm.as_operand(),
421                imm3.as_operand(),
422            ],
423        );
424    }
425    fn subw_sxth(
426        &mut self,
427        rd: impl OperandCast,
428        rn: impl OperandCast,
429        rm: impl OperandCast,
430        imm3: impl OperandCast,
431    ) {
432        return self.emit_n(
433            Opcode::SUBw_sxth as _,
434            &[
435                rd.as_operand(),
436                rn.as_operand(),
437                rm.as_operand(),
438                imm3.as_operand(),
439            ],
440        );
441    }
442    fn subw_sxtw(
443        &mut self,
444        rd: impl OperandCast,
445        rn: impl OperandCast,
446        rm: impl OperandCast,
447        imm3: impl OperandCast,
448    ) {
449        return self.emit_n(
450            Opcode::SUBw_sxtw as _,
451            &[
452                rd.as_operand(),
453                rn.as_operand(),
454                rm.as_operand(),
455                imm3.as_operand(),
456            ],
457        );
458    }
459    fn subw_sxtx(
460        &mut self,
461        rd: impl OperandCast,
462        rn: impl OperandCast,
463        rm: impl OperandCast,
464        imm3: impl OperandCast,
465    ) {
466        return self.emit_n(
467            Opcode::SUBw_sxtx as _,
468            &[
469                rd.as_operand(),
470                rn.as_operand(),
471                rm.as_operand(),
472                imm3.as_operand(),
473            ],
474        );
475    }
476    fn subsw_uxtb(
477        &mut self,
478        rd: impl OperandCast,
479        rn: impl OperandCast,
480        rm: impl OperandCast,
481        imm3: impl OperandCast,
482    ) {
483        return self.emit_n(
484            Opcode::SUBSw_uxtb as _,
485            &[
486                rd.as_operand(),
487                rn.as_operand(),
488                rm.as_operand(),
489                imm3.as_operand(),
490            ],
491        );
492    }
493    fn subsw_uxth(
494        &mut self,
495        rd: impl OperandCast,
496        rn: impl OperandCast,
497        rm: impl OperandCast,
498        imm3: impl OperandCast,
499    ) {
500        return self.emit_n(
501            Opcode::SUBSw_uxth as _,
502            &[
503                rd.as_operand(),
504                rn.as_operand(),
505                rm.as_operand(),
506                imm3.as_operand(),
507            ],
508        );
509    }
510    fn subsw_uxtw(
511        &mut self,
512        rd: impl OperandCast,
513        rn: impl OperandCast,
514        rm: impl OperandCast,
515        imm3: impl OperandCast,
516    ) {
517        return self.emit_n(
518            Opcode::SUBSw_uxtw as _,
519            &[
520                rd.as_operand(),
521                rn.as_operand(),
522                rm.as_operand(),
523                imm3.as_operand(),
524            ],
525        );
526    }
527    fn subsw_uxtx(
528        &mut self,
529        rd: impl OperandCast,
530        rn: impl OperandCast,
531        rm: impl OperandCast,
532        imm3: impl OperandCast,
533    ) {
534        return self.emit_n(
535            Opcode::SUBSw_uxtx as _,
536            &[
537                rd.as_operand(),
538                rn.as_operand(),
539                rm.as_operand(),
540                imm3.as_operand(),
541            ],
542        );
543    }
544    fn subsw_sxtb(
545        &mut self,
546        rd: impl OperandCast,
547        rn: impl OperandCast,
548        rm: impl OperandCast,
549        imm3: impl OperandCast,
550    ) {
551        return self.emit_n(
552            Opcode::SUBSw_sxtb as _,
553            &[
554                rd.as_operand(),
555                rn.as_operand(),
556                rm.as_operand(),
557                imm3.as_operand(),
558            ],
559        );
560    }
561    fn subsw_sxth(
562        &mut self,
563        rd: impl OperandCast,
564        rn: impl OperandCast,
565        rm: impl OperandCast,
566        imm3: impl OperandCast,
567    ) {
568        return self.emit_n(
569            Opcode::SUBSw_sxth as _,
570            &[
571                rd.as_operand(),
572                rn.as_operand(),
573                rm.as_operand(),
574                imm3.as_operand(),
575            ],
576        );
577    }
578    fn subsw_sxtw(
579        &mut self,
580        rd: impl OperandCast,
581        rn: impl OperandCast,
582        rm: impl OperandCast,
583        imm3: impl OperandCast,
584    ) {
585        return self.emit_n(
586            Opcode::SUBSw_sxtw as _,
587            &[
588                rd.as_operand(),
589                rn.as_operand(),
590                rm.as_operand(),
591                imm3.as_operand(),
592            ],
593        );
594    }
595    fn subsw_sxtx(
596        &mut self,
597        rd: impl OperandCast,
598        rn: impl OperandCast,
599        rm: impl OperandCast,
600        imm3: impl OperandCast,
601    ) {
602        return self.emit_n(
603            Opcode::SUBSw_sxtx as _,
604            &[
605                rd.as_operand(),
606                rn.as_operand(),
607                rm.as_operand(),
608                imm3.as_operand(),
609            ],
610        );
611    }
612    fn addx_uxtb(
613        &mut self,
614        rd: impl OperandCast,
615        rn: impl OperandCast,
616        rm: impl OperandCast,
617        imm3: impl OperandCast,
618    ) {
619        return self.emit_n(
620            Opcode::ADDx_uxtb as _,
621            &[
622                rd.as_operand(),
623                rn.as_operand(),
624                rm.as_operand(),
625                imm3.as_operand(),
626            ],
627        );
628    }
629    fn addx_uxth(
630        &mut self,
631        rd: impl OperandCast,
632        rn: impl OperandCast,
633        rm: impl OperandCast,
634        imm3: impl OperandCast,
635    ) {
636        return self.emit_n(
637            Opcode::ADDx_uxth as _,
638            &[
639                rd.as_operand(),
640                rn.as_operand(),
641                rm.as_operand(),
642                imm3.as_operand(),
643            ],
644        );
645    }
646    fn addx_uxtw(
647        &mut self,
648        rd: impl OperandCast,
649        rn: impl OperandCast,
650        rm: impl OperandCast,
651        imm3: impl OperandCast,
652    ) {
653        return self.emit_n(
654            Opcode::ADDx_uxtw as _,
655            &[
656                rd.as_operand(),
657                rn.as_operand(),
658                rm.as_operand(),
659                imm3.as_operand(),
660            ],
661        );
662    }
663    fn addx_uxtx(
664        &mut self,
665        rd: impl OperandCast,
666        rn: impl OperandCast,
667        rm: impl OperandCast,
668        imm3: impl OperandCast,
669    ) {
670        return self.emit_n(
671            Opcode::ADDx_uxtx as _,
672            &[
673                rd.as_operand(),
674                rn.as_operand(),
675                rm.as_operand(),
676                imm3.as_operand(),
677            ],
678        );
679    }
680    fn addx_sxtb(
681        &mut self,
682        rd: impl OperandCast,
683        rn: impl OperandCast,
684        rm: impl OperandCast,
685        imm3: impl OperandCast,
686    ) {
687        return self.emit_n(
688            Opcode::ADDx_sxtb as _,
689            &[
690                rd.as_operand(),
691                rn.as_operand(),
692                rm.as_operand(),
693                imm3.as_operand(),
694            ],
695        );
696    }
697    fn addx_sxth(
698        &mut self,
699        rd: impl OperandCast,
700        rn: impl OperandCast,
701        rm: impl OperandCast,
702        imm3: impl OperandCast,
703    ) {
704        return self.emit_n(
705            Opcode::ADDx_sxth as _,
706            &[
707                rd.as_operand(),
708                rn.as_operand(),
709                rm.as_operand(),
710                imm3.as_operand(),
711            ],
712        );
713    }
714    fn addx_sxtw(
715        &mut self,
716        rd: impl OperandCast,
717        rn: impl OperandCast,
718        rm: impl OperandCast,
719        imm3: impl OperandCast,
720    ) {
721        return self.emit_n(
722            Opcode::ADDx_sxtw as _,
723            &[
724                rd.as_operand(),
725                rn.as_operand(),
726                rm.as_operand(),
727                imm3.as_operand(),
728            ],
729        );
730    }
731    fn addx_sxtx(
732        &mut self,
733        rd: impl OperandCast,
734        rn: impl OperandCast,
735        rm: impl OperandCast,
736        imm3: impl OperandCast,
737    ) {
738        return self.emit_n(
739            Opcode::ADDx_sxtx as _,
740            &[
741                rd.as_operand(),
742                rn.as_operand(),
743                rm.as_operand(),
744                imm3.as_operand(),
745            ],
746        );
747    }
748    fn addsx_uxtb(
749        &mut self,
750        rd: impl OperandCast,
751        rn: impl OperandCast,
752        rm: impl OperandCast,
753        imm3: impl OperandCast,
754    ) {
755        return self.emit_n(
756            Opcode::ADDSx_uxtb as _,
757            &[
758                rd.as_operand(),
759                rn.as_operand(),
760                rm.as_operand(),
761                imm3.as_operand(),
762            ],
763        );
764    }
765    fn addsx_uxth(
766        &mut self,
767        rd: impl OperandCast,
768        rn: impl OperandCast,
769        rm: impl OperandCast,
770        imm3: impl OperandCast,
771    ) {
772        return self.emit_n(
773            Opcode::ADDSx_uxth as _,
774            &[
775                rd.as_operand(),
776                rn.as_operand(),
777                rm.as_operand(),
778                imm3.as_operand(),
779            ],
780        );
781    }
782    fn addsx_uxtw(
783        &mut self,
784        rd: impl OperandCast,
785        rn: impl OperandCast,
786        rm: impl OperandCast,
787        imm3: impl OperandCast,
788    ) {
789        return self.emit_n(
790            Opcode::ADDSx_uxtw as _,
791            &[
792                rd.as_operand(),
793                rn.as_operand(),
794                rm.as_operand(),
795                imm3.as_operand(),
796            ],
797        );
798    }
799    fn addsx_uxtx(
800        &mut self,
801        rd: impl OperandCast,
802        rn: impl OperandCast,
803        rm: impl OperandCast,
804        imm3: impl OperandCast,
805    ) {
806        return self.emit_n(
807            Opcode::ADDSx_uxtx as _,
808            &[
809                rd.as_operand(),
810                rn.as_operand(),
811                rm.as_operand(),
812                imm3.as_operand(),
813            ],
814        );
815    }
816    fn addsx_sxtb(
817        &mut self,
818        rd: impl OperandCast,
819        rn: impl OperandCast,
820        rm: impl OperandCast,
821        imm3: impl OperandCast,
822    ) {
823        return self.emit_n(
824            Opcode::ADDSx_sxtb as _,
825            &[
826                rd.as_operand(),
827                rn.as_operand(),
828                rm.as_operand(),
829                imm3.as_operand(),
830            ],
831        );
832    }
833    fn addsx_sxth(
834        &mut self,
835        rd: impl OperandCast,
836        rn: impl OperandCast,
837        rm: impl OperandCast,
838        imm3: impl OperandCast,
839    ) {
840        return self.emit_n(
841            Opcode::ADDSx_sxth as _,
842            &[
843                rd.as_operand(),
844                rn.as_operand(),
845                rm.as_operand(),
846                imm3.as_operand(),
847            ],
848        );
849    }
850    fn addsx_sxtw(
851        &mut self,
852        rd: impl OperandCast,
853        rn: impl OperandCast,
854        rm: impl OperandCast,
855        imm3: impl OperandCast,
856    ) {
857        return self.emit_n(
858            Opcode::ADDSx_sxtw as _,
859            &[
860                rd.as_operand(),
861                rn.as_operand(),
862                rm.as_operand(),
863                imm3.as_operand(),
864            ],
865        );
866    }
867    fn addsx_sxtx(
868        &mut self,
869        rd: impl OperandCast,
870        rn: impl OperandCast,
871        rm: impl OperandCast,
872        imm3: impl OperandCast,
873    ) {
874        return self.emit_n(
875            Opcode::ADDSx_sxtx as _,
876            &[
877                rd.as_operand(),
878                rn.as_operand(),
879                rm.as_operand(),
880                imm3.as_operand(),
881            ],
882        );
883    }
884    fn subx_uxtb(
885        &mut self,
886        rd: impl OperandCast,
887        rn: impl OperandCast,
888        rm: impl OperandCast,
889        imm3: impl OperandCast,
890    ) {
891        return self.emit_n(
892            Opcode::SUBx_uxtb as _,
893            &[
894                rd.as_operand(),
895                rn.as_operand(),
896                rm.as_operand(),
897                imm3.as_operand(),
898            ],
899        );
900    }
901    fn subx_uxth(
902        &mut self,
903        rd: impl OperandCast,
904        rn: impl OperandCast,
905        rm: impl OperandCast,
906        imm3: impl OperandCast,
907    ) {
908        return self.emit_n(
909            Opcode::SUBx_uxth as _,
910            &[
911                rd.as_operand(),
912                rn.as_operand(),
913                rm.as_operand(),
914                imm3.as_operand(),
915            ],
916        );
917    }
918    fn subx_uxtw(
919        &mut self,
920        rd: impl OperandCast,
921        rn: impl OperandCast,
922        rm: impl OperandCast,
923        imm3: impl OperandCast,
924    ) {
925        return self.emit_n(
926            Opcode::SUBx_uxtw as _,
927            &[
928                rd.as_operand(),
929                rn.as_operand(),
930                rm.as_operand(),
931                imm3.as_operand(),
932            ],
933        );
934    }
935    fn subx_uxtx(
936        &mut self,
937        rd: impl OperandCast,
938        rn: impl OperandCast,
939        rm: impl OperandCast,
940        imm3: impl OperandCast,
941    ) {
942        return self.emit_n(
943            Opcode::SUBx_uxtx as _,
944            &[
945                rd.as_operand(),
946                rn.as_operand(),
947                rm.as_operand(),
948                imm3.as_operand(),
949            ],
950        );
951    }
952    fn subx_sxtb(
953        &mut self,
954        rd: impl OperandCast,
955        rn: impl OperandCast,
956        rm: impl OperandCast,
957        imm3: impl OperandCast,
958    ) {
959        return self.emit_n(
960            Opcode::SUBx_sxtb as _,
961            &[
962                rd.as_operand(),
963                rn.as_operand(),
964                rm.as_operand(),
965                imm3.as_operand(),
966            ],
967        );
968    }
969    fn subx_sxth(
970        &mut self,
971        rd: impl OperandCast,
972        rn: impl OperandCast,
973        rm: impl OperandCast,
974        imm3: impl OperandCast,
975    ) {
976        return self.emit_n(
977            Opcode::SUBx_sxth as _,
978            &[
979                rd.as_operand(),
980                rn.as_operand(),
981                rm.as_operand(),
982                imm3.as_operand(),
983            ],
984        );
985    }
986    fn subx_sxtw(
987        &mut self,
988        rd: impl OperandCast,
989        rn: impl OperandCast,
990        rm: impl OperandCast,
991        imm3: impl OperandCast,
992    ) {
993        return self.emit_n(
994            Opcode::SUBx_sxtw as _,
995            &[
996                rd.as_operand(),
997                rn.as_operand(),
998                rm.as_operand(),
999                imm3.as_operand(),
1000            ],
1001        );
1002    }
1003    fn subx_sxtx(
1004        &mut self,
1005        rd: impl OperandCast,
1006        rn: impl OperandCast,
1007        rm: impl OperandCast,
1008        imm3: impl OperandCast,
1009    ) {
1010        return self.emit_n(
1011            Opcode::SUBx_sxtx as _,
1012            &[
1013                rd.as_operand(),
1014                rn.as_operand(),
1015                rm.as_operand(),
1016                imm3.as_operand(),
1017            ],
1018        );
1019    }
1020    fn subsx_uxtb(
1021        &mut self,
1022        rd: impl OperandCast,
1023        rn: impl OperandCast,
1024        rm: impl OperandCast,
1025        imm3: impl OperandCast,
1026    ) {
1027        return self.emit_n(
1028            Opcode::SUBSx_uxtb as _,
1029            &[
1030                rd.as_operand(),
1031                rn.as_operand(),
1032                rm.as_operand(),
1033                imm3.as_operand(),
1034            ],
1035        );
1036    }
1037    fn subsx_uxth(
1038        &mut self,
1039        rd: impl OperandCast,
1040        rn: impl OperandCast,
1041        rm: impl OperandCast,
1042        imm3: impl OperandCast,
1043    ) {
1044        return self.emit_n(
1045            Opcode::SUBSx_uxth as _,
1046            &[
1047                rd.as_operand(),
1048                rn.as_operand(),
1049                rm.as_operand(),
1050                imm3.as_operand(),
1051            ],
1052        );
1053    }
1054    fn subsx_uxtw(
1055        &mut self,
1056        rd: impl OperandCast,
1057        rn: impl OperandCast,
1058        rm: impl OperandCast,
1059        imm3: impl OperandCast,
1060    ) {
1061        return self.emit_n(
1062            Opcode::SUBSx_uxtw as _,
1063            &[
1064                rd.as_operand(),
1065                rn.as_operand(),
1066                rm.as_operand(),
1067                imm3.as_operand(),
1068            ],
1069        );
1070    }
1071    fn subsx_uxtx(
1072        &mut self,
1073        rd: impl OperandCast,
1074        rn: impl OperandCast,
1075        rm: impl OperandCast,
1076        imm3: impl OperandCast,
1077    ) {
1078        return self.emit_n(
1079            Opcode::SUBSx_uxtx as _,
1080            &[
1081                rd.as_operand(),
1082                rn.as_operand(),
1083                rm.as_operand(),
1084                imm3.as_operand(),
1085            ],
1086        );
1087    }
1088    fn subsx_sxtb(
1089        &mut self,
1090        rd: impl OperandCast,
1091        rn: impl OperandCast,
1092        rm: impl OperandCast,
1093        imm3: impl OperandCast,
1094    ) {
1095        return self.emit_n(
1096            Opcode::SUBSx_sxtb as _,
1097            &[
1098                rd.as_operand(),
1099                rn.as_operand(),
1100                rm.as_operand(),
1101                imm3.as_operand(),
1102            ],
1103        );
1104    }
1105    fn subsx_sxth(
1106        &mut self,
1107        rd: impl OperandCast,
1108        rn: impl OperandCast,
1109        rm: impl OperandCast,
1110        imm3: impl OperandCast,
1111    ) {
1112        return self.emit_n(
1113            Opcode::SUBSx_sxth as _,
1114            &[
1115                rd.as_operand(),
1116                rn.as_operand(),
1117                rm.as_operand(),
1118                imm3.as_operand(),
1119            ],
1120        );
1121    }
1122    fn subsx_sxtw(
1123        &mut self,
1124        rd: impl OperandCast,
1125        rn: impl OperandCast,
1126        rm: impl OperandCast,
1127        imm3: impl OperandCast,
1128    ) {
1129        return self.emit_n(
1130            Opcode::SUBSx_sxtw as _,
1131            &[
1132                rd.as_operand(),
1133                rn.as_operand(),
1134                rm.as_operand(),
1135                imm3.as_operand(),
1136            ],
1137        );
1138    }
1139    fn subsx_sxtx(
1140        &mut self,
1141        rd: impl OperandCast,
1142        rn: impl OperandCast,
1143        rm: impl OperandCast,
1144        imm3: impl OperandCast,
1145    ) {
1146        return self.emit_n(
1147            Opcode::SUBSx_sxtx as _,
1148            &[
1149                rd.as_operand(),
1150                rn.as_operand(),
1151                rm.as_operand(),
1152                imm3.as_operand(),
1153            ],
1154        );
1155    }
1156    fn cmnw_uxtb(&mut self, rn: impl OperandCast, rm: impl OperandCast, imm3: impl OperandCast) {
1157        return self.emit_n(
1158            Opcode::CMNw_uxtb as _,
1159            &[rn.as_operand(), rm.as_operand(), imm3.as_operand()],
1160        );
1161    }
1162    fn cmnw_uxth(&mut self, rn: impl OperandCast, rm: impl OperandCast, imm3: impl OperandCast) {
1163        return self.emit_n(
1164            Opcode::CMNw_uxth as _,
1165            &[rn.as_operand(), rm.as_operand(), imm3.as_operand()],
1166        );
1167    }
1168    fn cmnw_uxtw(&mut self, rn: impl OperandCast, rm: impl OperandCast, imm3: impl OperandCast) {
1169        return self.emit_n(
1170            Opcode::CMNw_uxtw as _,
1171            &[rn.as_operand(), rm.as_operand(), imm3.as_operand()],
1172        );
1173    }
1174    fn cmnw_uxtx(&mut self, rn: impl OperandCast, rm: impl OperandCast, imm3: impl OperandCast) {
1175        return self.emit_n(
1176            Opcode::CMNw_uxtx as _,
1177            &[rn.as_operand(), rm.as_operand(), imm3.as_operand()],
1178        );
1179    }
1180    fn cmnw_sxtb(&mut self, rn: impl OperandCast, rm: impl OperandCast, imm3: impl OperandCast) {
1181        return self.emit_n(
1182            Opcode::CMNw_sxtb as _,
1183            &[rn.as_operand(), rm.as_operand(), imm3.as_operand()],
1184        );
1185    }
1186    fn cmnw_sxth(&mut self, rn: impl OperandCast, rm: impl OperandCast, imm3: impl OperandCast) {
1187        return self.emit_n(
1188            Opcode::CMNw_sxth as _,
1189            &[rn.as_operand(), rm.as_operand(), imm3.as_operand()],
1190        );
1191    }
1192    fn cmnw_sxtw(&mut self, rn: impl OperandCast, rm: impl OperandCast, imm3: impl OperandCast) {
1193        return self.emit_n(
1194            Opcode::CMNw_sxtw as _,
1195            &[rn.as_operand(), rm.as_operand(), imm3.as_operand()],
1196        );
1197    }
1198    fn cmnw_sxtx(&mut self, rn: impl OperandCast, rm: impl OperandCast, imm3: impl OperandCast) {
1199        return self.emit_n(
1200            Opcode::CMNw_sxtx as _,
1201            &[rn.as_operand(), rm.as_operand(), imm3.as_operand()],
1202        );
1203    }
1204    fn cmpw_uxtb(&mut self, rn: impl OperandCast, rm: impl OperandCast, imm3: impl OperandCast) {
1205        return self.emit_n(
1206            Opcode::CMPw_uxtb as _,
1207            &[rn.as_operand(), rm.as_operand(), imm3.as_operand()],
1208        );
1209    }
1210    fn cmpw_uxth(&mut self, rn: impl OperandCast, rm: impl OperandCast, imm3: impl OperandCast) {
1211        return self.emit_n(
1212            Opcode::CMPw_uxth as _,
1213            &[rn.as_operand(), rm.as_operand(), imm3.as_operand()],
1214        );
1215    }
1216    fn cmpw_uxtw(&mut self, rn: impl OperandCast, rm: impl OperandCast, imm3: impl OperandCast) {
1217        return self.emit_n(
1218            Opcode::CMPw_uxtw as _,
1219            &[rn.as_operand(), rm.as_operand(), imm3.as_operand()],
1220        );
1221    }
1222    fn cmpw_uxtx(&mut self, rn: impl OperandCast, rm: impl OperandCast, imm3: impl OperandCast) {
1223        return self.emit_n(
1224            Opcode::CMPw_uxtx as _,
1225            &[rn.as_operand(), rm.as_operand(), imm3.as_operand()],
1226        );
1227    }
1228    fn cmpw_sxtb(&mut self, rn: impl OperandCast, rm: impl OperandCast, imm3: impl OperandCast) {
1229        return self.emit_n(
1230            Opcode::CMPw_sxtb as _,
1231            &[rn.as_operand(), rm.as_operand(), imm3.as_operand()],
1232        );
1233    }
1234    fn cmpw_sxth(&mut self, rn: impl OperandCast, rm: impl OperandCast, imm3: impl OperandCast) {
1235        return self.emit_n(
1236            Opcode::CMPw_sxth as _,
1237            &[rn.as_operand(), rm.as_operand(), imm3.as_operand()],
1238        );
1239    }
1240    fn cmpw_sxtw(&mut self, rn: impl OperandCast, rm: impl OperandCast, imm3: impl OperandCast) {
1241        return self.emit_n(
1242            Opcode::CMPw_sxtw as _,
1243            &[rn.as_operand(), rm.as_operand(), imm3.as_operand()],
1244        );
1245    }
1246    fn cmpw_sxtx(&mut self, rn: impl OperandCast, rm: impl OperandCast, imm3: impl OperandCast) {
1247        return self.emit_n(
1248            Opcode::CMPw_sxtx as _,
1249            &[rn.as_operand(), rm.as_operand(), imm3.as_operand()],
1250        );
1251    }
1252    fn cmnx_uxtb(&mut self, rn: impl OperandCast, rm: impl OperandCast, imm3: impl OperandCast) {
1253        return self.emit_n(
1254            Opcode::CMNx_uxtb as _,
1255            &[rn.as_operand(), rm.as_operand(), imm3.as_operand()],
1256        );
1257    }
1258    fn cmnx_uxth(&mut self, rn: impl OperandCast, rm: impl OperandCast, imm3: impl OperandCast) {
1259        return self.emit_n(
1260            Opcode::CMNx_uxth as _,
1261            &[rn.as_operand(), rm.as_operand(), imm3.as_operand()],
1262        );
1263    }
1264    fn cmnx_uxtw(&mut self, rn: impl OperandCast, rm: impl OperandCast, imm3: impl OperandCast) {
1265        return self.emit_n(
1266            Opcode::CMNx_uxtw as _,
1267            &[rn.as_operand(), rm.as_operand(), imm3.as_operand()],
1268        );
1269    }
1270    fn cmnx_uxtx(&mut self, rn: impl OperandCast, rm: impl OperandCast, imm3: impl OperandCast) {
1271        return self.emit_n(
1272            Opcode::CMNx_uxtx as _,
1273            &[rn.as_operand(), rm.as_operand(), imm3.as_operand()],
1274        );
1275    }
1276    fn cmnx_sxtb(&mut self, rn: impl OperandCast, rm: impl OperandCast, imm3: impl OperandCast) {
1277        return self.emit_n(
1278            Opcode::CMNx_sxtb as _,
1279            &[rn.as_operand(), rm.as_operand(), imm3.as_operand()],
1280        );
1281    }
1282    fn cmnx_sxth(&mut self, rn: impl OperandCast, rm: impl OperandCast, imm3: impl OperandCast) {
1283        return self.emit_n(
1284            Opcode::CMNx_sxth as _,
1285            &[rn.as_operand(), rm.as_operand(), imm3.as_operand()],
1286        );
1287    }
1288    fn cmnx_sxtw(&mut self, rn: impl OperandCast, rm: impl OperandCast, imm3: impl OperandCast) {
1289        return self.emit_n(
1290            Opcode::CMNx_sxtw as _,
1291            &[rn.as_operand(), rm.as_operand(), imm3.as_operand()],
1292        );
1293    }
1294    fn cmnx_sxtx(&mut self, rn: impl OperandCast, rm: impl OperandCast, imm3: impl OperandCast) {
1295        return self.emit_n(
1296            Opcode::CMNx_sxtx as _,
1297            &[rn.as_operand(), rm.as_operand(), imm3.as_operand()],
1298        );
1299    }
1300    fn cmpx_uxtb(&mut self, rn: impl OperandCast, rm: impl OperandCast, imm3: impl OperandCast) {
1301        return self.emit_n(
1302            Opcode::CMPx_uxtb as _,
1303            &[rn.as_operand(), rm.as_operand(), imm3.as_operand()],
1304        );
1305    }
1306    fn cmpx_uxth(&mut self, rn: impl OperandCast, rm: impl OperandCast, imm3: impl OperandCast) {
1307        return self.emit_n(
1308            Opcode::CMPx_uxth as _,
1309            &[rn.as_operand(), rm.as_operand(), imm3.as_operand()],
1310        );
1311    }
1312    fn cmpx_uxtw(&mut self, rn: impl OperandCast, rm: impl OperandCast, imm3: impl OperandCast) {
1313        return self.emit_n(
1314            Opcode::CMPx_uxtw as _,
1315            &[rn.as_operand(), rm.as_operand(), imm3.as_operand()],
1316        );
1317    }
1318    fn cmpx_uxtx(&mut self, rn: impl OperandCast, rm: impl OperandCast, imm3: impl OperandCast) {
1319        return self.emit_n(
1320            Opcode::CMPx_uxtx as _,
1321            &[rn.as_operand(), rm.as_operand(), imm3.as_operand()],
1322        );
1323    }
1324    fn cmpx_sxtb(&mut self, rn: impl OperandCast, rm: impl OperandCast, imm3: impl OperandCast) {
1325        return self.emit_n(
1326            Opcode::CMPx_sxtb as _,
1327            &[rn.as_operand(), rm.as_operand(), imm3.as_operand()],
1328        );
1329    }
1330    fn cmpx_sxth(&mut self, rn: impl OperandCast, rm: impl OperandCast, imm3: impl OperandCast) {
1331        return self.emit_n(
1332            Opcode::CMPx_sxth as _,
1333            &[rn.as_operand(), rm.as_operand(), imm3.as_operand()],
1334        );
1335    }
1336    fn cmpx_sxtw(&mut self, rn: impl OperandCast, rm: impl OperandCast, imm3: impl OperandCast) {
1337        return self.emit_n(
1338            Opcode::CMPx_sxtw as _,
1339            &[rn.as_operand(), rm.as_operand(), imm3.as_operand()],
1340        );
1341    }
1342    fn cmpx_sxtx(&mut self, rn: impl OperandCast, rm: impl OperandCast, imm3: impl OperandCast) {
1343        return self.emit_n(
1344            Opcode::CMPx_sxtx as _,
1345            &[rn.as_operand(), rm.as_operand(), imm3.as_operand()],
1346        );
1347    }
1348    fn addwi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
1349        return self.emit_n(
1350            Opcode::ADDwi as _,
1351            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
1352        );
1353    }
1354    fn addswi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
1355        return self.emit_n(
1356            Opcode::ADDSwi as _,
1357            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
1358        );
1359    }
1360    fn subwi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
1361        return self.emit_n(
1362            Opcode::SUBwi as _,
1363            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
1364        );
1365    }
1366    fn subswi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
1367        return self.emit_n(
1368            Opcode::SUBSwi as _,
1369            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
1370        );
1371    }
1372    fn addxi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
1373        return self.emit_n(
1374            Opcode::ADDxi as _,
1375            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
1376        );
1377    }
1378    fn addsxi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
1379        return self.emit_n(
1380            Opcode::ADDSxi as _,
1381            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
1382        );
1383    }
1384    fn subxi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
1385        return self.emit_n(
1386            Opcode::SUBxi as _,
1387            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
1388        );
1389    }
1390    fn subsxi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
1391        return self.emit_n(
1392            Opcode::SUBSxi as _,
1393            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
1394        );
1395    }
1396    fn cmnwi(&mut self, rn: impl OperandCast, imm: impl OperandCast) {
1397        return self.emit_n(Opcode::CMNwi as _, &[rn.as_operand(), imm.as_operand()]);
1398    }
1399    fn cmpwi(&mut self, rn: impl OperandCast, imm: impl OperandCast) {
1400        return self.emit_n(Opcode::CMPwi as _, &[rn.as_operand(), imm.as_operand()]);
1401    }
1402    fn cmnxi(&mut self, rn: impl OperandCast, imm: impl OperandCast) {
1403        return self.emit_n(Opcode::CMNxi as _, &[rn.as_operand(), imm.as_operand()]);
1404    }
1405    fn cmpxi(&mut self, rn: impl OperandCast, imm: impl OperandCast) {
1406        return self.emit_n(Opcode::CMPxi as _, &[rn.as_operand(), imm.as_operand()]);
1407    }
1408    fn mov_spw(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
1409        return self.emit_n(Opcode::MOV_SPw as _, &[rd.as_operand(), rn.as_operand()]);
1410    }
1411    fn mov_spx(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
1412        return self.emit_n(Opcode::MOV_SPx as _, &[rd.as_operand(), rn.as_operand()]);
1413    }
1414    fn addw_lsl(
1415        &mut self,
1416        rd: impl OperandCast,
1417        rn: impl OperandCast,
1418        rm: impl OperandCast,
1419        imm6: impl OperandCast,
1420    ) {
1421        return self.emit_n(
1422            Opcode::ADDw_lsl as _,
1423            &[
1424                rd.as_operand(),
1425                rn.as_operand(),
1426                rm.as_operand(),
1427                imm6.as_operand(),
1428            ],
1429        );
1430    }
1431    fn addw_lsr(
1432        &mut self,
1433        rd: impl OperandCast,
1434        rn: impl OperandCast,
1435        rm: impl OperandCast,
1436        imm6: impl OperandCast,
1437    ) {
1438        return self.emit_n(
1439            Opcode::ADDw_lsr as _,
1440            &[
1441                rd.as_operand(),
1442                rn.as_operand(),
1443                rm.as_operand(),
1444                imm6.as_operand(),
1445            ],
1446        );
1447    }
1448    fn addw_asr(
1449        &mut self,
1450        rd: impl OperandCast,
1451        rn: impl OperandCast,
1452        rm: impl OperandCast,
1453        imm6: impl OperandCast,
1454    ) {
1455        return self.emit_n(
1456            Opcode::ADDw_asr as _,
1457            &[
1458                rd.as_operand(),
1459                rn.as_operand(),
1460                rm.as_operand(),
1461                imm6.as_operand(),
1462            ],
1463        );
1464    }
1465    fn addsw_lsl(
1466        &mut self,
1467        rd: impl OperandCast,
1468        rn: impl OperandCast,
1469        rm: impl OperandCast,
1470        imm6: impl OperandCast,
1471    ) {
1472        return self.emit_n(
1473            Opcode::ADDSw_lsl as _,
1474            &[
1475                rd.as_operand(),
1476                rn.as_operand(),
1477                rm.as_operand(),
1478                imm6.as_operand(),
1479            ],
1480        );
1481    }
1482    fn addsw_lsr(
1483        &mut self,
1484        rd: impl OperandCast,
1485        rn: impl OperandCast,
1486        rm: impl OperandCast,
1487        imm6: impl OperandCast,
1488    ) {
1489        return self.emit_n(
1490            Opcode::ADDSw_lsr as _,
1491            &[
1492                rd.as_operand(),
1493                rn.as_operand(),
1494                rm.as_operand(),
1495                imm6.as_operand(),
1496            ],
1497        );
1498    }
1499    fn addsw_asr(
1500        &mut self,
1501        rd: impl OperandCast,
1502        rn: impl OperandCast,
1503        rm: impl OperandCast,
1504        imm6: impl OperandCast,
1505    ) {
1506        return self.emit_n(
1507            Opcode::ADDSw_asr as _,
1508            &[
1509                rd.as_operand(),
1510                rn.as_operand(),
1511                rm.as_operand(),
1512                imm6.as_operand(),
1513            ],
1514        );
1515    }
1516    fn subw_lsl(
1517        &mut self,
1518        rd: impl OperandCast,
1519        rn: impl OperandCast,
1520        rm: impl OperandCast,
1521        imm6: impl OperandCast,
1522    ) {
1523        return self.emit_n(
1524            Opcode::SUBw_lsl as _,
1525            &[
1526                rd.as_operand(),
1527                rn.as_operand(),
1528                rm.as_operand(),
1529                imm6.as_operand(),
1530            ],
1531        );
1532    }
1533    fn subw_lsr(
1534        &mut self,
1535        rd: impl OperandCast,
1536        rn: impl OperandCast,
1537        rm: impl OperandCast,
1538        imm6: impl OperandCast,
1539    ) {
1540        return self.emit_n(
1541            Opcode::SUBw_lsr as _,
1542            &[
1543                rd.as_operand(),
1544                rn.as_operand(),
1545                rm.as_operand(),
1546                imm6.as_operand(),
1547            ],
1548        );
1549    }
1550    fn subw_asr(
1551        &mut self,
1552        rd: impl OperandCast,
1553        rn: impl OperandCast,
1554        rm: impl OperandCast,
1555        imm6: impl OperandCast,
1556    ) {
1557        return self.emit_n(
1558            Opcode::SUBw_asr as _,
1559            &[
1560                rd.as_operand(),
1561                rn.as_operand(),
1562                rm.as_operand(),
1563                imm6.as_operand(),
1564            ],
1565        );
1566    }
1567    fn subsw_lsl(
1568        &mut self,
1569        rd: impl OperandCast,
1570        rn: impl OperandCast,
1571        rm: impl OperandCast,
1572        imm6: impl OperandCast,
1573    ) {
1574        return self.emit_n(
1575            Opcode::SUBSw_lsl as _,
1576            &[
1577                rd.as_operand(),
1578                rn.as_operand(),
1579                rm.as_operand(),
1580                imm6.as_operand(),
1581            ],
1582        );
1583    }
1584    fn subsw_lsr(
1585        &mut self,
1586        rd: impl OperandCast,
1587        rn: impl OperandCast,
1588        rm: impl OperandCast,
1589        imm6: impl OperandCast,
1590    ) {
1591        return self.emit_n(
1592            Opcode::SUBSw_lsr as _,
1593            &[
1594                rd.as_operand(),
1595                rn.as_operand(),
1596                rm.as_operand(),
1597                imm6.as_operand(),
1598            ],
1599        );
1600    }
1601    fn subsw_asr(
1602        &mut self,
1603        rd: impl OperandCast,
1604        rn: impl OperandCast,
1605        rm: impl OperandCast,
1606        imm6: impl OperandCast,
1607    ) {
1608        return self.emit_n(
1609            Opcode::SUBSw_asr as _,
1610            &[
1611                rd.as_operand(),
1612                rn.as_operand(),
1613                rm.as_operand(),
1614                imm6.as_operand(),
1615            ],
1616        );
1617    }
1618    fn addx_lsl(
1619        &mut self,
1620        rd: impl OperandCast,
1621        rn: impl OperandCast,
1622        rm: impl OperandCast,
1623        imm6: impl OperandCast,
1624    ) {
1625        return self.emit_n(
1626            Opcode::ADDx_lsl as _,
1627            &[
1628                rd.as_operand(),
1629                rn.as_operand(),
1630                rm.as_operand(),
1631                imm6.as_operand(),
1632            ],
1633        );
1634    }
1635    fn addx_lsr(
1636        &mut self,
1637        rd: impl OperandCast,
1638        rn: impl OperandCast,
1639        rm: impl OperandCast,
1640        imm6: impl OperandCast,
1641    ) {
1642        return self.emit_n(
1643            Opcode::ADDx_lsr as _,
1644            &[
1645                rd.as_operand(),
1646                rn.as_operand(),
1647                rm.as_operand(),
1648                imm6.as_operand(),
1649            ],
1650        );
1651    }
1652    fn addx_asr(
1653        &mut self,
1654        rd: impl OperandCast,
1655        rn: impl OperandCast,
1656        rm: impl OperandCast,
1657        imm6: impl OperandCast,
1658    ) {
1659        return self.emit_n(
1660            Opcode::ADDx_asr as _,
1661            &[
1662                rd.as_operand(),
1663                rn.as_operand(),
1664                rm.as_operand(),
1665                imm6.as_operand(),
1666            ],
1667        );
1668    }
1669    fn addsx_lsl(
1670        &mut self,
1671        rd: impl OperandCast,
1672        rn: impl OperandCast,
1673        rm: impl OperandCast,
1674        imm6: impl OperandCast,
1675    ) {
1676        return self.emit_n(
1677            Opcode::ADDSx_lsl as _,
1678            &[
1679                rd.as_operand(),
1680                rn.as_operand(),
1681                rm.as_operand(),
1682                imm6.as_operand(),
1683            ],
1684        );
1685    }
1686    fn addsx_lsr(
1687        &mut self,
1688        rd: impl OperandCast,
1689        rn: impl OperandCast,
1690        rm: impl OperandCast,
1691        imm6: impl OperandCast,
1692    ) {
1693        return self.emit_n(
1694            Opcode::ADDSx_lsr as _,
1695            &[
1696                rd.as_operand(),
1697                rn.as_operand(),
1698                rm.as_operand(),
1699                imm6.as_operand(),
1700            ],
1701        );
1702    }
1703    fn addsx_asr(
1704        &mut self,
1705        rd: impl OperandCast,
1706        rn: impl OperandCast,
1707        rm: impl OperandCast,
1708        imm6: impl OperandCast,
1709    ) {
1710        return self.emit_n(
1711            Opcode::ADDSx_asr as _,
1712            &[
1713                rd.as_operand(),
1714                rn.as_operand(),
1715                rm.as_operand(),
1716                imm6.as_operand(),
1717            ],
1718        );
1719    }
1720    fn subx_lsl(
1721        &mut self,
1722        rd: impl OperandCast,
1723        rn: impl OperandCast,
1724        rm: impl OperandCast,
1725        imm6: impl OperandCast,
1726    ) {
1727        return self.emit_n(
1728            Opcode::SUBx_lsl as _,
1729            &[
1730                rd.as_operand(),
1731                rn.as_operand(),
1732                rm.as_operand(),
1733                imm6.as_operand(),
1734            ],
1735        );
1736    }
1737    fn subx_lsr(
1738        &mut self,
1739        rd: impl OperandCast,
1740        rn: impl OperandCast,
1741        rm: impl OperandCast,
1742        imm6: impl OperandCast,
1743    ) {
1744        return self.emit_n(
1745            Opcode::SUBx_lsr as _,
1746            &[
1747                rd.as_operand(),
1748                rn.as_operand(),
1749                rm.as_operand(),
1750                imm6.as_operand(),
1751            ],
1752        );
1753    }
1754    fn subx_asr(
1755        &mut self,
1756        rd: impl OperandCast,
1757        rn: impl OperandCast,
1758        rm: impl OperandCast,
1759        imm6: impl OperandCast,
1760    ) {
1761        return self.emit_n(
1762            Opcode::SUBx_asr as _,
1763            &[
1764                rd.as_operand(),
1765                rn.as_operand(),
1766                rm.as_operand(),
1767                imm6.as_operand(),
1768            ],
1769        );
1770    }
1771    fn subsx_lsl(
1772        &mut self,
1773        rd: impl OperandCast,
1774        rn: impl OperandCast,
1775        rm: impl OperandCast,
1776        imm6: impl OperandCast,
1777    ) {
1778        return self.emit_n(
1779            Opcode::SUBSx_lsl as _,
1780            &[
1781                rd.as_operand(),
1782                rn.as_operand(),
1783                rm.as_operand(),
1784                imm6.as_operand(),
1785            ],
1786        );
1787    }
1788    fn subsx_lsr(
1789        &mut self,
1790        rd: impl OperandCast,
1791        rn: impl OperandCast,
1792        rm: impl OperandCast,
1793        imm6: impl OperandCast,
1794    ) {
1795        return self.emit_n(
1796            Opcode::SUBSx_lsr as _,
1797            &[
1798                rd.as_operand(),
1799                rn.as_operand(),
1800                rm.as_operand(),
1801                imm6.as_operand(),
1802            ],
1803        );
1804    }
1805    fn subsx_asr(
1806        &mut self,
1807        rd: impl OperandCast,
1808        rn: impl OperandCast,
1809        rm: impl OperandCast,
1810        imm6: impl OperandCast,
1811    ) {
1812        return self.emit_n(
1813            Opcode::SUBSx_asr as _,
1814            &[
1815                rd.as_operand(),
1816                rn.as_operand(),
1817                rm.as_operand(),
1818                imm6.as_operand(),
1819            ],
1820        );
1821    }
1822    fn addw(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
1823        return self.emit_n(
1824            Opcode::ADDw as _,
1825            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
1826        );
1827    }
1828    fn addsw(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
1829        return self.emit_n(
1830            Opcode::ADDSw as _,
1831            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
1832        );
1833    }
1834    fn subw(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
1835        return self.emit_n(
1836            Opcode::SUBw as _,
1837            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
1838        );
1839    }
1840    fn subsw(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
1841        return self.emit_n(
1842            Opcode::SUBSw as _,
1843            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
1844        );
1845    }
1846    fn addx(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
1847        return self.emit_n(
1848            Opcode::ADDx as _,
1849            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
1850        );
1851    }
1852    fn addsx(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
1853        return self.emit_n(
1854            Opcode::ADDSx as _,
1855            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
1856        );
1857    }
1858    fn subx(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
1859        return self.emit_n(
1860            Opcode::SUBx as _,
1861            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
1862        );
1863    }
1864    fn subsx(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
1865        return self.emit_n(
1866            Opcode::SUBSx as _,
1867            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
1868        );
1869    }
1870    fn cmnw_lsl(&mut self, rn: impl OperandCast, rm: impl OperandCast, imm6: impl OperandCast) {
1871        return self.emit_n(
1872            Opcode::CMNw_lsl as _,
1873            &[rn.as_operand(), rm.as_operand(), imm6.as_operand()],
1874        );
1875    }
1876    fn cmnw_lsr(&mut self, rn: impl OperandCast, rm: impl OperandCast, imm6: impl OperandCast) {
1877        return self.emit_n(
1878            Opcode::CMNw_lsr as _,
1879            &[rn.as_operand(), rm.as_operand(), imm6.as_operand()],
1880        );
1881    }
1882    fn cmnw_asr(&mut self, rn: impl OperandCast, rm: impl OperandCast, imm6: impl OperandCast) {
1883        return self.emit_n(
1884            Opcode::CMNw_asr as _,
1885            &[rn.as_operand(), rm.as_operand(), imm6.as_operand()],
1886        );
1887    }
1888    fn cmpw_lsl(&mut self, rn: impl OperandCast, rm: impl OperandCast, imm6: impl OperandCast) {
1889        return self.emit_n(
1890            Opcode::CMPw_lsl as _,
1891            &[rn.as_operand(), rm.as_operand(), imm6.as_operand()],
1892        );
1893    }
1894    fn cmpw_lsr(&mut self, rn: impl OperandCast, rm: impl OperandCast, imm6: impl OperandCast) {
1895        return self.emit_n(
1896            Opcode::CMPw_lsr as _,
1897            &[rn.as_operand(), rm.as_operand(), imm6.as_operand()],
1898        );
1899    }
1900    fn cmpw_asr(&mut self, rn: impl OperandCast, rm: impl OperandCast, imm6: impl OperandCast) {
1901        return self.emit_n(
1902            Opcode::CMPw_asr as _,
1903            &[rn.as_operand(), rm.as_operand(), imm6.as_operand()],
1904        );
1905    }
1906    fn cmnx_lsl(&mut self, rn: impl OperandCast, rm: impl OperandCast, imm6: impl OperandCast) {
1907        return self.emit_n(
1908            Opcode::CMNx_lsl as _,
1909            &[rn.as_operand(), rm.as_operand(), imm6.as_operand()],
1910        );
1911    }
1912    fn cmnx_lsr(&mut self, rn: impl OperandCast, rm: impl OperandCast, imm6: impl OperandCast) {
1913        return self.emit_n(
1914            Opcode::CMNx_lsr as _,
1915            &[rn.as_operand(), rm.as_operand(), imm6.as_operand()],
1916        );
1917    }
1918    fn cmnx_asr(&mut self, rn: impl OperandCast, rm: impl OperandCast, imm6: impl OperandCast) {
1919        return self.emit_n(
1920            Opcode::CMNx_asr as _,
1921            &[rn.as_operand(), rm.as_operand(), imm6.as_operand()],
1922        );
1923    }
1924    fn cmpx_lsl(&mut self, rn: impl OperandCast, rm: impl OperandCast, imm6: impl OperandCast) {
1925        return self.emit_n(
1926            Opcode::CMPx_lsl as _,
1927            &[rn.as_operand(), rm.as_operand(), imm6.as_operand()],
1928        );
1929    }
1930    fn cmpx_lsr(&mut self, rn: impl OperandCast, rm: impl OperandCast, imm6: impl OperandCast) {
1931        return self.emit_n(
1932            Opcode::CMPx_lsr as _,
1933            &[rn.as_operand(), rm.as_operand(), imm6.as_operand()],
1934        );
1935    }
1936    fn cmpx_asr(&mut self, rn: impl OperandCast, rm: impl OperandCast, imm6: impl OperandCast) {
1937        return self.emit_n(
1938            Opcode::CMPx_asr as _,
1939            &[rn.as_operand(), rm.as_operand(), imm6.as_operand()],
1940        );
1941    }
1942    fn cmnw(&mut self, rn: impl OperandCast, rm: impl OperandCast) {
1943        return self.emit_n(Opcode::CMNw as _, &[rn.as_operand(), rm.as_operand()]);
1944    }
1945    fn cmpw(&mut self, rn: impl OperandCast, rm: impl OperandCast) {
1946        return self.emit_n(Opcode::CMPw as _, &[rn.as_operand(), rm.as_operand()]);
1947    }
1948    fn cmnx(&mut self, rn: impl OperandCast, rm: impl OperandCast) {
1949        return self.emit_n(Opcode::CMNx as _, &[rn.as_operand(), rm.as_operand()]);
1950    }
1951    fn cmpx(&mut self, rn: impl OperandCast, rm: impl OperandCast) {
1952        return self.emit_n(Opcode::CMPx as _, &[rn.as_operand(), rm.as_operand()]);
1953    }
1954    fn negw_lsl(&mut self, rd: impl OperandCast, rm: impl OperandCast, imm6: impl OperandCast) {
1955        return self.emit_n(
1956            Opcode::NEGw_lsl as _,
1957            &[rd.as_operand(), rm.as_operand(), imm6.as_operand()],
1958        );
1959    }
1960    fn negw_lsr(&mut self, rd: impl OperandCast, rm: impl OperandCast, imm6: impl OperandCast) {
1961        return self.emit_n(
1962            Opcode::NEGw_lsr as _,
1963            &[rd.as_operand(), rm.as_operand(), imm6.as_operand()],
1964        );
1965    }
1966    fn negw_asr(&mut self, rd: impl OperandCast, rm: impl OperandCast, imm6: impl OperandCast) {
1967        return self.emit_n(
1968            Opcode::NEGw_asr as _,
1969            &[rd.as_operand(), rm.as_operand(), imm6.as_operand()],
1970        );
1971    }
1972    fn negsw_lsl(&mut self, rd: impl OperandCast, rm: impl OperandCast, imm6: impl OperandCast) {
1973        return self.emit_n(
1974            Opcode::NEGSw_lsl as _,
1975            &[rd.as_operand(), rm.as_operand(), imm6.as_operand()],
1976        );
1977    }
1978    fn negsw_lsr(&mut self, rd: impl OperandCast, rm: impl OperandCast, imm6: impl OperandCast) {
1979        return self.emit_n(
1980            Opcode::NEGSw_lsr as _,
1981            &[rd.as_operand(), rm.as_operand(), imm6.as_operand()],
1982        );
1983    }
1984    fn negsw_asr(&mut self, rd: impl OperandCast, rm: impl OperandCast, imm6: impl OperandCast) {
1985        return self.emit_n(
1986            Opcode::NEGSw_asr as _,
1987            &[rd.as_operand(), rm.as_operand(), imm6.as_operand()],
1988        );
1989    }
1990    fn negx_lsl(&mut self, rd: impl OperandCast, rm: impl OperandCast, imm6: impl OperandCast) {
1991        return self.emit_n(
1992            Opcode::NEGx_lsl as _,
1993            &[rd.as_operand(), rm.as_operand(), imm6.as_operand()],
1994        );
1995    }
1996    fn negx_lsr(&mut self, rd: impl OperandCast, rm: impl OperandCast, imm6: impl OperandCast) {
1997        return self.emit_n(
1998            Opcode::NEGx_lsr as _,
1999            &[rd.as_operand(), rm.as_operand(), imm6.as_operand()],
2000        );
2001    }
2002    fn negx_asr(&mut self, rd: impl OperandCast, rm: impl OperandCast, imm6: impl OperandCast) {
2003        return self.emit_n(
2004            Opcode::NEGx_asr as _,
2005            &[rd.as_operand(), rm.as_operand(), imm6.as_operand()],
2006        );
2007    }
2008    fn negsx_lsl(&mut self, rd: impl OperandCast, rm: impl OperandCast, imm6: impl OperandCast) {
2009        return self.emit_n(
2010            Opcode::NEGSx_lsl as _,
2011            &[rd.as_operand(), rm.as_operand(), imm6.as_operand()],
2012        );
2013    }
2014    fn negsx_lsr(&mut self, rd: impl OperandCast, rm: impl OperandCast, imm6: impl OperandCast) {
2015        return self.emit_n(
2016            Opcode::NEGSx_lsr as _,
2017            &[rd.as_operand(), rm.as_operand(), imm6.as_operand()],
2018        );
2019    }
2020    fn negsx_asr(&mut self, rd: impl OperandCast, rm: impl OperandCast, imm6: impl OperandCast) {
2021        return self.emit_n(
2022            Opcode::NEGSx_asr as _,
2023            &[rd.as_operand(), rm.as_operand(), imm6.as_operand()],
2024        );
2025    }
2026    fn negw(&mut self, rd: impl OperandCast, rm: impl OperandCast) {
2027        return self.emit_n(Opcode::NEGw as _, &[rd.as_operand(), rm.as_operand()]);
2028    }
2029    fn negsw(&mut self, rd: impl OperandCast, rm: impl OperandCast) {
2030        return self.emit_n(Opcode::NEGSw as _, &[rd.as_operand(), rm.as_operand()]);
2031    }
2032    fn negx(&mut self, rd: impl OperandCast, rm: impl OperandCast) {
2033        return self.emit_n(Opcode::NEGx as _, &[rd.as_operand(), rm.as_operand()]);
2034    }
2035    fn negsx(&mut self, rd: impl OperandCast, rm: impl OperandCast) {
2036        return self.emit_n(Opcode::NEGSx as _, &[rd.as_operand(), rm.as_operand()]);
2037    }
2038    fn adr(&mut self, rd: impl OperandCast, immloimmhi: impl OperandCast) {
2039        return self.emit_n(
2040            Opcode::ADR as _,
2041            &[rd.as_operand(), immloimmhi.as_operand()],
2042        );
2043    }
2044    fn adrp(&mut self, rd: impl OperandCast, immloimmhi: impl OperandCast) {
2045        return self.emit_n(
2046            Opcode::ADRP as _,
2047            &[rd.as_operand(), immloimmhi.as_operand()],
2048        );
2049    }
2050    fn andwi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
2051        return self.emit_n(
2052            Opcode::ANDwi as _,
2053            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
2054        );
2055    }
2056    fn orrwi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
2057        return self.emit_n(
2058            Opcode::ORRwi as _,
2059            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
2060        );
2061    }
2062    fn eorwi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
2063        return self.emit_n(
2064            Opcode::EORwi as _,
2065            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
2066        );
2067    }
2068    fn andswi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
2069        return self.emit_n(
2070            Opcode::ANDSwi as _,
2071            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
2072        );
2073    }
2074    fn andxi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
2075        return self.emit_n(
2076            Opcode::ANDxi as _,
2077            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
2078        );
2079    }
2080    fn orrxi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
2081        return self.emit_n(
2082            Opcode::ORRxi as _,
2083            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
2084        );
2085    }
2086    fn eorxi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
2087        return self.emit_n(
2088            Opcode::EORxi as _,
2089            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
2090        );
2091    }
2092    fn andsxi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
2093        return self.emit_n(
2094            Opcode::ANDSxi as _,
2095            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
2096        );
2097    }
2098    fn tstwi(&mut self, rn: impl OperandCast, imm: impl OperandCast) {
2099        return self.emit_n(Opcode::TSTwi as _, &[rn.as_operand(), imm.as_operand()]);
2100    }
2101    fn tstxi(&mut self, rn: impl OperandCast, imm: impl OperandCast) {
2102        return self.emit_n(Opcode::TSTxi as _, &[rn.as_operand(), imm.as_operand()]);
2103    }
2104    fn andw_lsl(
2105        &mut self,
2106        rd: impl OperandCast,
2107        rn: impl OperandCast,
2108        rm: impl OperandCast,
2109        imm6: impl OperandCast,
2110    ) {
2111        return self.emit_n(
2112            Opcode::ANDw_lsl as _,
2113            &[
2114                rd.as_operand(),
2115                rn.as_operand(),
2116                rm.as_operand(),
2117                imm6.as_operand(),
2118            ],
2119        );
2120    }
2121    fn bicw_lsl(
2122        &mut self,
2123        rd: impl OperandCast,
2124        rn: impl OperandCast,
2125        rm: impl OperandCast,
2126        imm6: impl OperandCast,
2127    ) {
2128        return self.emit_n(
2129            Opcode::BICw_lsl as _,
2130            &[
2131                rd.as_operand(),
2132                rn.as_operand(),
2133                rm.as_operand(),
2134                imm6.as_operand(),
2135            ],
2136        );
2137    }
2138    fn andw_lsr(
2139        &mut self,
2140        rd: impl OperandCast,
2141        rn: impl OperandCast,
2142        rm: impl OperandCast,
2143        imm6: impl OperandCast,
2144    ) {
2145        return self.emit_n(
2146            Opcode::ANDw_lsr as _,
2147            &[
2148                rd.as_operand(),
2149                rn.as_operand(),
2150                rm.as_operand(),
2151                imm6.as_operand(),
2152            ],
2153        );
2154    }
2155    fn bicw_lsr(
2156        &mut self,
2157        rd: impl OperandCast,
2158        rn: impl OperandCast,
2159        rm: impl OperandCast,
2160        imm6: impl OperandCast,
2161    ) {
2162        return self.emit_n(
2163            Opcode::BICw_lsr as _,
2164            &[
2165                rd.as_operand(),
2166                rn.as_operand(),
2167                rm.as_operand(),
2168                imm6.as_operand(),
2169            ],
2170        );
2171    }
2172    fn andw_asr(
2173        &mut self,
2174        rd: impl OperandCast,
2175        rn: impl OperandCast,
2176        rm: impl OperandCast,
2177        imm6: impl OperandCast,
2178    ) {
2179        return self.emit_n(
2180            Opcode::ANDw_asr as _,
2181            &[
2182                rd.as_operand(),
2183                rn.as_operand(),
2184                rm.as_operand(),
2185                imm6.as_operand(),
2186            ],
2187        );
2188    }
2189    fn bicw_asr(
2190        &mut self,
2191        rd: impl OperandCast,
2192        rn: impl OperandCast,
2193        rm: impl OperandCast,
2194        imm6: impl OperandCast,
2195    ) {
2196        return self.emit_n(
2197            Opcode::BICw_asr as _,
2198            &[
2199                rd.as_operand(),
2200                rn.as_operand(),
2201                rm.as_operand(),
2202                imm6.as_operand(),
2203            ],
2204        );
2205    }
2206    fn andw_ror(
2207        &mut self,
2208        rd: impl OperandCast,
2209        rn: impl OperandCast,
2210        rm: impl OperandCast,
2211        imm6: impl OperandCast,
2212    ) {
2213        return self.emit_n(
2214            Opcode::ANDw_ror as _,
2215            &[
2216                rd.as_operand(),
2217                rn.as_operand(),
2218                rm.as_operand(),
2219                imm6.as_operand(),
2220            ],
2221        );
2222    }
2223    fn bicw_ror(
2224        &mut self,
2225        rd: impl OperandCast,
2226        rn: impl OperandCast,
2227        rm: impl OperandCast,
2228        imm6: impl OperandCast,
2229    ) {
2230        return self.emit_n(
2231            Opcode::BICw_ror as _,
2232            &[
2233                rd.as_operand(),
2234                rn.as_operand(),
2235                rm.as_operand(),
2236                imm6.as_operand(),
2237            ],
2238        );
2239    }
2240    fn orrw_lsl(
2241        &mut self,
2242        rd: impl OperandCast,
2243        rn: impl OperandCast,
2244        rm: impl OperandCast,
2245        imm6: impl OperandCast,
2246    ) {
2247        return self.emit_n(
2248            Opcode::ORRw_lsl as _,
2249            &[
2250                rd.as_operand(),
2251                rn.as_operand(),
2252                rm.as_operand(),
2253                imm6.as_operand(),
2254            ],
2255        );
2256    }
2257    fn ornw_lsl(
2258        &mut self,
2259        rd: impl OperandCast,
2260        rn: impl OperandCast,
2261        rm: impl OperandCast,
2262        imm6: impl OperandCast,
2263    ) {
2264        return self.emit_n(
2265            Opcode::ORNw_lsl as _,
2266            &[
2267                rd.as_operand(),
2268                rn.as_operand(),
2269                rm.as_operand(),
2270                imm6.as_operand(),
2271            ],
2272        );
2273    }
2274    fn orrw_lsr(
2275        &mut self,
2276        rd: impl OperandCast,
2277        rn: impl OperandCast,
2278        rm: impl OperandCast,
2279        imm6: impl OperandCast,
2280    ) {
2281        return self.emit_n(
2282            Opcode::ORRw_lsr as _,
2283            &[
2284                rd.as_operand(),
2285                rn.as_operand(),
2286                rm.as_operand(),
2287                imm6.as_operand(),
2288            ],
2289        );
2290    }
2291    fn ornw_lsr(
2292        &mut self,
2293        rd: impl OperandCast,
2294        rn: impl OperandCast,
2295        rm: impl OperandCast,
2296        imm6: impl OperandCast,
2297    ) {
2298        return self.emit_n(
2299            Opcode::ORNw_lsr as _,
2300            &[
2301                rd.as_operand(),
2302                rn.as_operand(),
2303                rm.as_operand(),
2304                imm6.as_operand(),
2305            ],
2306        );
2307    }
2308    fn orrw_asr(
2309        &mut self,
2310        rd: impl OperandCast,
2311        rn: impl OperandCast,
2312        rm: impl OperandCast,
2313        imm6: impl OperandCast,
2314    ) {
2315        return self.emit_n(
2316            Opcode::ORRw_asr as _,
2317            &[
2318                rd.as_operand(),
2319                rn.as_operand(),
2320                rm.as_operand(),
2321                imm6.as_operand(),
2322            ],
2323        );
2324    }
2325    fn ornw_asr(
2326        &mut self,
2327        rd: impl OperandCast,
2328        rn: impl OperandCast,
2329        rm: impl OperandCast,
2330        imm6: impl OperandCast,
2331    ) {
2332        return self.emit_n(
2333            Opcode::ORNw_asr as _,
2334            &[
2335                rd.as_operand(),
2336                rn.as_operand(),
2337                rm.as_operand(),
2338                imm6.as_operand(),
2339            ],
2340        );
2341    }
2342    fn orrw_ror(
2343        &mut self,
2344        rd: impl OperandCast,
2345        rn: impl OperandCast,
2346        rm: impl OperandCast,
2347        imm6: impl OperandCast,
2348    ) {
2349        return self.emit_n(
2350            Opcode::ORRw_ror as _,
2351            &[
2352                rd.as_operand(),
2353                rn.as_operand(),
2354                rm.as_operand(),
2355                imm6.as_operand(),
2356            ],
2357        );
2358    }
2359    fn ornw_ror(
2360        &mut self,
2361        rd: impl OperandCast,
2362        rn: impl OperandCast,
2363        rm: impl OperandCast,
2364        imm6: impl OperandCast,
2365    ) {
2366        return self.emit_n(
2367            Opcode::ORNw_ror as _,
2368            &[
2369                rd.as_operand(),
2370                rn.as_operand(),
2371                rm.as_operand(),
2372                imm6.as_operand(),
2373            ],
2374        );
2375    }
2376    fn eorw_lsl(
2377        &mut self,
2378        rd: impl OperandCast,
2379        rn: impl OperandCast,
2380        rm: impl OperandCast,
2381        imm6: impl OperandCast,
2382    ) {
2383        return self.emit_n(
2384            Opcode::EORw_lsl as _,
2385            &[
2386                rd.as_operand(),
2387                rn.as_operand(),
2388                rm.as_operand(),
2389                imm6.as_operand(),
2390            ],
2391        );
2392    }
2393    fn eonw_lsl(
2394        &mut self,
2395        rd: impl OperandCast,
2396        rn: impl OperandCast,
2397        rm: impl OperandCast,
2398        imm6: impl OperandCast,
2399    ) {
2400        return self.emit_n(
2401            Opcode::EONw_lsl as _,
2402            &[
2403                rd.as_operand(),
2404                rn.as_operand(),
2405                rm.as_operand(),
2406                imm6.as_operand(),
2407            ],
2408        );
2409    }
2410    fn eorw_lsr(
2411        &mut self,
2412        rd: impl OperandCast,
2413        rn: impl OperandCast,
2414        rm: impl OperandCast,
2415        imm6: impl OperandCast,
2416    ) {
2417        return self.emit_n(
2418            Opcode::EORw_lsr as _,
2419            &[
2420                rd.as_operand(),
2421                rn.as_operand(),
2422                rm.as_operand(),
2423                imm6.as_operand(),
2424            ],
2425        );
2426    }
2427    fn eonw_lsr(
2428        &mut self,
2429        rd: impl OperandCast,
2430        rn: impl OperandCast,
2431        rm: impl OperandCast,
2432        imm6: impl OperandCast,
2433    ) {
2434        return self.emit_n(
2435            Opcode::EONw_lsr as _,
2436            &[
2437                rd.as_operand(),
2438                rn.as_operand(),
2439                rm.as_operand(),
2440                imm6.as_operand(),
2441            ],
2442        );
2443    }
2444    fn eorw_asr(
2445        &mut self,
2446        rd: impl OperandCast,
2447        rn: impl OperandCast,
2448        rm: impl OperandCast,
2449        imm6: impl OperandCast,
2450    ) {
2451        return self.emit_n(
2452            Opcode::EORw_asr as _,
2453            &[
2454                rd.as_operand(),
2455                rn.as_operand(),
2456                rm.as_operand(),
2457                imm6.as_operand(),
2458            ],
2459        );
2460    }
2461    fn eonw_asr(
2462        &mut self,
2463        rd: impl OperandCast,
2464        rn: impl OperandCast,
2465        rm: impl OperandCast,
2466        imm6: impl OperandCast,
2467    ) {
2468        return self.emit_n(
2469            Opcode::EONw_asr as _,
2470            &[
2471                rd.as_operand(),
2472                rn.as_operand(),
2473                rm.as_operand(),
2474                imm6.as_operand(),
2475            ],
2476        );
2477    }
2478    fn eorw_ror(
2479        &mut self,
2480        rd: impl OperandCast,
2481        rn: impl OperandCast,
2482        rm: impl OperandCast,
2483        imm6: impl OperandCast,
2484    ) {
2485        return self.emit_n(
2486            Opcode::EORw_ror as _,
2487            &[
2488                rd.as_operand(),
2489                rn.as_operand(),
2490                rm.as_operand(),
2491                imm6.as_operand(),
2492            ],
2493        );
2494    }
2495    fn eonw_ror(
2496        &mut self,
2497        rd: impl OperandCast,
2498        rn: impl OperandCast,
2499        rm: impl OperandCast,
2500        imm6: impl OperandCast,
2501    ) {
2502        return self.emit_n(
2503            Opcode::EONw_ror as _,
2504            &[
2505                rd.as_operand(),
2506                rn.as_operand(),
2507                rm.as_operand(),
2508                imm6.as_operand(),
2509            ],
2510        );
2511    }
2512    fn andsw_lsl(
2513        &mut self,
2514        rd: impl OperandCast,
2515        rn: impl OperandCast,
2516        rm: impl OperandCast,
2517        imm6: impl OperandCast,
2518    ) {
2519        return self.emit_n(
2520            Opcode::ANDSw_lsl as _,
2521            &[
2522                rd.as_operand(),
2523                rn.as_operand(),
2524                rm.as_operand(),
2525                imm6.as_operand(),
2526            ],
2527        );
2528    }
2529    fn bicsw_lsl(
2530        &mut self,
2531        rd: impl OperandCast,
2532        rn: impl OperandCast,
2533        rm: impl OperandCast,
2534        imm6: impl OperandCast,
2535    ) {
2536        return self.emit_n(
2537            Opcode::BICSw_lsl as _,
2538            &[
2539                rd.as_operand(),
2540                rn.as_operand(),
2541                rm.as_operand(),
2542                imm6.as_operand(),
2543            ],
2544        );
2545    }
2546    fn andsw_lsr(
2547        &mut self,
2548        rd: impl OperandCast,
2549        rn: impl OperandCast,
2550        rm: impl OperandCast,
2551        imm6: impl OperandCast,
2552    ) {
2553        return self.emit_n(
2554            Opcode::ANDSw_lsr as _,
2555            &[
2556                rd.as_operand(),
2557                rn.as_operand(),
2558                rm.as_operand(),
2559                imm6.as_operand(),
2560            ],
2561        );
2562    }
2563    fn bicsw_lsr(
2564        &mut self,
2565        rd: impl OperandCast,
2566        rn: impl OperandCast,
2567        rm: impl OperandCast,
2568        imm6: impl OperandCast,
2569    ) {
2570        return self.emit_n(
2571            Opcode::BICSw_lsr as _,
2572            &[
2573                rd.as_operand(),
2574                rn.as_operand(),
2575                rm.as_operand(),
2576                imm6.as_operand(),
2577            ],
2578        );
2579    }
2580    fn andsw_asr(
2581        &mut self,
2582        rd: impl OperandCast,
2583        rn: impl OperandCast,
2584        rm: impl OperandCast,
2585        imm6: impl OperandCast,
2586    ) {
2587        return self.emit_n(
2588            Opcode::ANDSw_asr as _,
2589            &[
2590                rd.as_operand(),
2591                rn.as_operand(),
2592                rm.as_operand(),
2593                imm6.as_operand(),
2594            ],
2595        );
2596    }
2597    fn bicsw_asr(
2598        &mut self,
2599        rd: impl OperandCast,
2600        rn: impl OperandCast,
2601        rm: impl OperandCast,
2602        imm6: impl OperandCast,
2603    ) {
2604        return self.emit_n(
2605            Opcode::BICSw_asr as _,
2606            &[
2607                rd.as_operand(),
2608                rn.as_operand(),
2609                rm.as_operand(),
2610                imm6.as_operand(),
2611            ],
2612        );
2613    }
2614    fn andsw_ror(
2615        &mut self,
2616        rd: impl OperandCast,
2617        rn: impl OperandCast,
2618        rm: impl OperandCast,
2619        imm6: impl OperandCast,
2620    ) {
2621        return self.emit_n(
2622            Opcode::ANDSw_ror as _,
2623            &[
2624                rd.as_operand(),
2625                rn.as_operand(),
2626                rm.as_operand(),
2627                imm6.as_operand(),
2628            ],
2629        );
2630    }
2631    fn bicsw_ror(
2632        &mut self,
2633        rd: impl OperandCast,
2634        rn: impl OperandCast,
2635        rm: impl OperandCast,
2636        imm6: impl OperandCast,
2637    ) {
2638        return self.emit_n(
2639            Opcode::BICSw_ror as _,
2640            &[
2641                rd.as_operand(),
2642                rn.as_operand(),
2643                rm.as_operand(),
2644                imm6.as_operand(),
2645            ],
2646        );
2647    }
2648    fn andx_lsl(
2649        &mut self,
2650        rd: impl OperandCast,
2651        rn: impl OperandCast,
2652        rm: impl OperandCast,
2653        imm6: impl OperandCast,
2654    ) {
2655        return self.emit_n(
2656            Opcode::ANDx_lsl as _,
2657            &[
2658                rd.as_operand(),
2659                rn.as_operand(),
2660                rm.as_operand(),
2661                imm6.as_operand(),
2662            ],
2663        );
2664    }
2665    fn bicx_lsl(
2666        &mut self,
2667        rd: impl OperandCast,
2668        rn: impl OperandCast,
2669        rm: impl OperandCast,
2670        imm6: impl OperandCast,
2671    ) {
2672        return self.emit_n(
2673            Opcode::BICx_lsl as _,
2674            &[
2675                rd.as_operand(),
2676                rn.as_operand(),
2677                rm.as_operand(),
2678                imm6.as_operand(),
2679            ],
2680        );
2681    }
2682    fn andx_lsr(
2683        &mut self,
2684        rd: impl OperandCast,
2685        rn: impl OperandCast,
2686        rm: impl OperandCast,
2687        imm6: impl OperandCast,
2688    ) {
2689        return self.emit_n(
2690            Opcode::ANDx_lsr as _,
2691            &[
2692                rd.as_operand(),
2693                rn.as_operand(),
2694                rm.as_operand(),
2695                imm6.as_operand(),
2696            ],
2697        );
2698    }
2699    fn bicx_lsr(
2700        &mut self,
2701        rd: impl OperandCast,
2702        rn: impl OperandCast,
2703        rm: impl OperandCast,
2704        imm6: impl OperandCast,
2705    ) {
2706        return self.emit_n(
2707            Opcode::BICx_lsr as _,
2708            &[
2709                rd.as_operand(),
2710                rn.as_operand(),
2711                rm.as_operand(),
2712                imm6.as_operand(),
2713            ],
2714        );
2715    }
2716    fn andx_asr(
2717        &mut self,
2718        rd: impl OperandCast,
2719        rn: impl OperandCast,
2720        rm: impl OperandCast,
2721        imm6: impl OperandCast,
2722    ) {
2723        return self.emit_n(
2724            Opcode::ANDx_asr as _,
2725            &[
2726                rd.as_operand(),
2727                rn.as_operand(),
2728                rm.as_operand(),
2729                imm6.as_operand(),
2730            ],
2731        );
2732    }
2733    fn bicx_asr(
2734        &mut self,
2735        rd: impl OperandCast,
2736        rn: impl OperandCast,
2737        rm: impl OperandCast,
2738        imm6: impl OperandCast,
2739    ) {
2740        return self.emit_n(
2741            Opcode::BICx_asr as _,
2742            &[
2743                rd.as_operand(),
2744                rn.as_operand(),
2745                rm.as_operand(),
2746                imm6.as_operand(),
2747            ],
2748        );
2749    }
2750    fn andx_ror(
2751        &mut self,
2752        rd: impl OperandCast,
2753        rn: impl OperandCast,
2754        rm: impl OperandCast,
2755        imm6: impl OperandCast,
2756    ) {
2757        return self.emit_n(
2758            Opcode::ANDx_ror as _,
2759            &[
2760                rd.as_operand(),
2761                rn.as_operand(),
2762                rm.as_operand(),
2763                imm6.as_operand(),
2764            ],
2765        );
2766    }
2767    fn bicx_ror(
2768        &mut self,
2769        rd: impl OperandCast,
2770        rn: impl OperandCast,
2771        rm: impl OperandCast,
2772        imm6: impl OperandCast,
2773    ) {
2774        return self.emit_n(
2775            Opcode::BICx_ror as _,
2776            &[
2777                rd.as_operand(),
2778                rn.as_operand(),
2779                rm.as_operand(),
2780                imm6.as_operand(),
2781            ],
2782        );
2783    }
2784    fn orrx_lsl(
2785        &mut self,
2786        rd: impl OperandCast,
2787        rn: impl OperandCast,
2788        rm: impl OperandCast,
2789        imm6: impl OperandCast,
2790    ) {
2791        return self.emit_n(
2792            Opcode::ORRx_lsl as _,
2793            &[
2794                rd.as_operand(),
2795                rn.as_operand(),
2796                rm.as_operand(),
2797                imm6.as_operand(),
2798            ],
2799        );
2800    }
2801    fn ornx_lsl(
2802        &mut self,
2803        rd: impl OperandCast,
2804        rn: impl OperandCast,
2805        rm: impl OperandCast,
2806        imm6: impl OperandCast,
2807    ) {
2808        return self.emit_n(
2809            Opcode::ORNx_lsl as _,
2810            &[
2811                rd.as_operand(),
2812                rn.as_operand(),
2813                rm.as_operand(),
2814                imm6.as_operand(),
2815            ],
2816        );
2817    }
2818    fn orrx_lsr(
2819        &mut self,
2820        rd: impl OperandCast,
2821        rn: impl OperandCast,
2822        rm: impl OperandCast,
2823        imm6: impl OperandCast,
2824    ) {
2825        return self.emit_n(
2826            Opcode::ORRx_lsr as _,
2827            &[
2828                rd.as_operand(),
2829                rn.as_operand(),
2830                rm.as_operand(),
2831                imm6.as_operand(),
2832            ],
2833        );
2834    }
2835    fn ornx_lsr(
2836        &mut self,
2837        rd: impl OperandCast,
2838        rn: impl OperandCast,
2839        rm: impl OperandCast,
2840        imm6: impl OperandCast,
2841    ) {
2842        return self.emit_n(
2843            Opcode::ORNx_lsr as _,
2844            &[
2845                rd.as_operand(),
2846                rn.as_operand(),
2847                rm.as_operand(),
2848                imm6.as_operand(),
2849            ],
2850        );
2851    }
2852    fn orrx_asr(
2853        &mut self,
2854        rd: impl OperandCast,
2855        rn: impl OperandCast,
2856        rm: impl OperandCast,
2857        imm6: impl OperandCast,
2858    ) {
2859        return self.emit_n(
2860            Opcode::ORRx_asr as _,
2861            &[
2862                rd.as_operand(),
2863                rn.as_operand(),
2864                rm.as_operand(),
2865                imm6.as_operand(),
2866            ],
2867        );
2868    }
2869    fn ornx_asr(
2870        &mut self,
2871        rd: impl OperandCast,
2872        rn: impl OperandCast,
2873        rm: impl OperandCast,
2874        imm6: impl OperandCast,
2875    ) {
2876        return self.emit_n(
2877            Opcode::ORNx_asr as _,
2878            &[
2879                rd.as_operand(),
2880                rn.as_operand(),
2881                rm.as_operand(),
2882                imm6.as_operand(),
2883            ],
2884        );
2885    }
2886    fn orrx_ror(
2887        &mut self,
2888        rd: impl OperandCast,
2889        rn: impl OperandCast,
2890        rm: impl OperandCast,
2891        imm6: impl OperandCast,
2892    ) {
2893        return self.emit_n(
2894            Opcode::ORRx_ror as _,
2895            &[
2896                rd.as_operand(),
2897                rn.as_operand(),
2898                rm.as_operand(),
2899                imm6.as_operand(),
2900            ],
2901        );
2902    }
2903    fn ornx_ror(
2904        &mut self,
2905        rd: impl OperandCast,
2906        rn: impl OperandCast,
2907        rm: impl OperandCast,
2908        imm6: impl OperandCast,
2909    ) {
2910        return self.emit_n(
2911            Opcode::ORNx_ror as _,
2912            &[
2913                rd.as_operand(),
2914                rn.as_operand(),
2915                rm.as_operand(),
2916                imm6.as_operand(),
2917            ],
2918        );
2919    }
2920    fn eorx_lsl(
2921        &mut self,
2922        rd: impl OperandCast,
2923        rn: impl OperandCast,
2924        rm: impl OperandCast,
2925        imm6: impl OperandCast,
2926    ) {
2927        return self.emit_n(
2928            Opcode::EORx_lsl as _,
2929            &[
2930                rd.as_operand(),
2931                rn.as_operand(),
2932                rm.as_operand(),
2933                imm6.as_operand(),
2934            ],
2935        );
2936    }
2937    fn eonx_lsl(
2938        &mut self,
2939        rd: impl OperandCast,
2940        rn: impl OperandCast,
2941        rm: impl OperandCast,
2942        imm6: impl OperandCast,
2943    ) {
2944        return self.emit_n(
2945            Opcode::EONx_lsl as _,
2946            &[
2947                rd.as_operand(),
2948                rn.as_operand(),
2949                rm.as_operand(),
2950                imm6.as_operand(),
2951            ],
2952        );
2953    }
2954    fn eorx_lsr(
2955        &mut self,
2956        rd: impl OperandCast,
2957        rn: impl OperandCast,
2958        rm: impl OperandCast,
2959        imm6: impl OperandCast,
2960    ) {
2961        return self.emit_n(
2962            Opcode::EORx_lsr as _,
2963            &[
2964                rd.as_operand(),
2965                rn.as_operand(),
2966                rm.as_operand(),
2967                imm6.as_operand(),
2968            ],
2969        );
2970    }
2971    fn eonx_lsr(
2972        &mut self,
2973        rd: impl OperandCast,
2974        rn: impl OperandCast,
2975        rm: impl OperandCast,
2976        imm6: impl OperandCast,
2977    ) {
2978        return self.emit_n(
2979            Opcode::EONx_lsr as _,
2980            &[
2981                rd.as_operand(),
2982                rn.as_operand(),
2983                rm.as_operand(),
2984                imm6.as_operand(),
2985            ],
2986        );
2987    }
2988    fn eorx_asr(
2989        &mut self,
2990        rd: impl OperandCast,
2991        rn: impl OperandCast,
2992        rm: impl OperandCast,
2993        imm6: impl OperandCast,
2994    ) {
2995        return self.emit_n(
2996            Opcode::EORx_asr as _,
2997            &[
2998                rd.as_operand(),
2999                rn.as_operand(),
3000                rm.as_operand(),
3001                imm6.as_operand(),
3002            ],
3003        );
3004    }
3005    fn eonx_asr(
3006        &mut self,
3007        rd: impl OperandCast,
3008        rn: impl OperandCast,
3009        rm: impl OperandCast,
3010        imm6: impl OperandCast,
3011    ) {
3012        return self.emit_n(
3013            Opcode::EONx_asr as _,
3014            &[
3015                rd.as_operand(),
3016                rn.as_operand(),
3017                rm.as_operand(),
3018                imm6.as_operand(),
3019            ],
3020        );
3021    }
3022    fn eorx_ror(
3023        &mut self,
3024        rd: impl OperandCast,
3025        rn: impl OperandCast,
3026        rm: impl OperandCast,
3027        imm6: impl OperandCast,
3028    ) {
3029        return self.emit_n(
3030            Opcode::EORx_ror as _,
3031            &[
3032                rd.as_operand(),
3033                rn.as_operand(),
3034                rm.as_operand(),
3035                imm6.as_operand(),
3036            ],
3037        );
3038    }
3039    fn eonx_ror(
3040        &mut self,
3041        rd: impl OperandCast,
3042        rn: impl OperandCast,
3043        rm: impl OperandCast,
3044        imm6: impl OperandCast,
3045    ) {
3046        return self.emit_n(
3047            Opcode::EONx_ror as _,
3048            &[
3049                rd.as_operand(),
3050                rn.as_operand(),
3051                rm.as_operand(),
3052                imm6.as_operand(),
3053            ],
3054        );
3055    }
3056    fn andsx_lsl(
3057        &mut self,
3058        rd: impl OperandCast,
3059        rn: impl OperandCast,
3060        rm: impl OperandCast,
3061        imm6: impl OperandCast,
3062    ) {
3063        return self.emit_n(
3064            Opcode::ANDSx_lsl as _,
3065            &[
3066                rd.as_operand(),
3067                rn.as_operand(),
3068                rm.as_operand(),
3069                imm6.as_operand(),
3070            ],
3071        );
3072    }
3073    fn bicsx_lsl(
3074        &mut self,
3075        rd: impl OperandCast,
3076        rn: impl OperandCast,
3077        rm: impl OperandCast,
3078        imm6: impl OperandCast,
3079    ) {
3080        return self.emit_n(
3081            Opcode::BICSx_lsl as _,
3082            &[
3083                rd.as_operand(),
3084                rn.as_operand(),
3085                rm.as_operand(),
3086                imm6.as_operand(),
3087            ],
3088        );
3089    }
3090    fn andsx_lsr(
3091        &mut self,
3092        rd: impl OperandCast,
3093        rn: impl OperandCast,
3094        rm: impl OperandCast,
3095        imm6: impl OperandCast,
3096    ) {
3097        return self.emit_n(
3098            Opcode::ANDSx_lsr as _,
3099            &[
3100                rd.as_operand(),
3101                rn.as_operand(),
3102                rm.as_operand(),
3103                imm6.as_operand(),
3104            ],
3105        );
3106    }
3107    fn bicsx_lsr(
3108        &mut self,
3109        rd: impl OperandCast,
3110        rn: impl OperandCast,
3111        rm: impl OperandCast,
3112        imm6: impl OperandCast,
3113    ) {
3114        return self.emit_n(
3115            Opcode::BICSx_lsr as _,
3116            &[
3117                rd.as_operand(),
3118                rn.as_operand(),
3119                rm.as_operand(),
3120                imm6.as_operand(),
3121            ],
3122        );
3123    }
3124    fn andsx_asr(
3125        &mut self,
3126        rd: impl OperandCast,
3127        rn: impl OperandCast,
3128        rm: impl OperandCast,
3129        imm6: impl OperandCast,
3130    ) {
3131        return self.emit_n(
3132            Opcode::ANDSx_asr as _,
3133            &[
3134                rd.as_operand(),
3135                rn.as_operand(),
3136                rm.as_operand(),
3137                imm6.as_operand(),
3138            ],
3139        );
3140    }
3141    fn bicsx_asr(
3142        &mut self,
3143        rd: impl OperandCast,
3144        rn: impl OperandCast,
3145        rm: impl OperandCast,
3146        imm6: impl OperandCast,
3147    ) {
3148        return self.emit_n(
3149            Opcode::BICSx_asr as _,
3150            &[
3151                rd.as_operand(),
3152                rn.as_operand(),
3153                rm.as_operand(),
3154                imm6.as_operand(),
3155            ],
3156        );
3157    }
3158    fn andsx_ror(
3159        &mut self,
3160        rd: impl OperandCast,
3161        rn: impl OperandCast,
3162        rm: impl OperandCast,
3163        imm6: impl OperandCast,
3164    ) {
3165        return self.emit_n(
3166            Opcode::ANDSx_ror as _,
3167            &[
3168                rd.as_operand(),
3169                rn.as_operand(),
3170                rm.as_operand(),
3171                imm6.as_operand(),
3172            ],
3173        );
3174    }
3175    fn bicsx_ror(
3176        &mut self,
3177        rd: impl OperandCast,
3178        rn: impl OperandCast,
3179        rm: impl OperandCast,
3180        imm6: impl OperandCast,
3181    ) {
3182        return self.emit_n(
3183            Opcode::BICSx_ror as _,
3184            &[
3185                rd.as_operand(),
3186                rn.as_operand(),
3187                rm.as_operand(),
3188                imm6.as_operand(),
3189            ],
3190        );
3191    }
3192    fn andw(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
3193        return self.emit_n(
3194            Opcode::ANDw as _,
3195            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
3196        );
3197    }
3198    fn bicw(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
3199        return self.emit_n(
3200            Opcode::BICw as _,
3201            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
3202        );
3203    }
3204    fn orrw(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
3205        return self.emit_n(
3206            Opcode::ORRw as _,
3207            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
3208        );
3209    }
3210    fn ornw(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
3211        return self.emit_n(
3212            Opcode::ORNw as _,
3213            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
3214        );
3215    }
3216    fn eorw(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
3217        return self.emit_n(
3218            Opcode::EORw as _,
3219            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
3220        );
3221    }
3222    fn eonw(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
3223        return self.emit_n(
3224            Opcode::EONw as _,
3225            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
3226        );
3227    }
3228    fn andsw(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
3229        return self.emit_n(
3230            Opcode::ANDSw as _,
3231            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
3232        );
3233    }
3234    fn bicsw(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
3235        return self.emit_n(
3236            Opcode::BICSw as _,
3237            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
3238        );
3239    }
3240    fn andx(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
3241        return self.emit_n(
3242            Opcode::ANDx as _,
3243            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
3244        );
3245    }
3246    fn bicx(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
3247        return self.emit_n(
3248            Opcode::BICx as _,
3249            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
3250        );
3251    }
3252    fn orrx(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
3253        return self.emit_n(
3254            Opcode::ORRx as _,
3255            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
3256        );
3257    }
3258    fn ornx(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
3259        return self.emit_n(
3260            Opcode::ORNx as _,
3261            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
3262        );
3263    }
3264    fn eorx(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
3265        return self.emit_n(
3266            Opcode::EORx as _,
3267            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
3268        );
3269    }
3270    fn eonx(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
3271        return self.emit_n(
3272            Opcode::EONx as _,
3273            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
3274        );
3275    }
3276    fn andsx(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
3277        return self.emit_n(
3278            Opcode::ANDSx as _,
3279            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
3280        );
3281    }
3282    fn bicsx(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
3283        return self.emit_n(
3284            Opcode::BICSx as _,
3285            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
3286        );
3287    }
3288    fn tstw_lsl(&mut self, rn: impl OperandCast, rm: impl OperandCast, imm6: impl OperandCast) {
3289        return self.emit_n(
3290            Opcode::TSTw_lsl as _,
3291            &[rn.as_operand(), rm.as_operand(), imm6.as_operand()],
3292        );
3293    }
3294    fn tstw_lsr(&mut self, rn: impl OperandCast, rm: impl OperandCast, imm6: impl OperandCast) {
3295        return self.emit_n(
3296            Opcode::TSTw_lsr as _,
3297            &[rn.as_operand(), rm.as_operand(), imm6.as_operand()],
3298        );
3299    }
3300    fn tstw_asr(&mut self, rn: impl OperandCast, rm: impl OperandCast, imm6: impl OperandCast) {
3301        return self.emit_n(
3302            Opcode::TSTw_asr as _,
3303            &[rn.as_operand(), rm.as_operand(), imm6.as_operand()],
3304        );
3305    }
3306    fn tstw_ror(&mut self, rn: impl OperandCast, rm: impl OperandCast, imm6: impl OperandCast) {
3307        return self.emit_n(
3308            Opcode::TSTw_ror as _,
3309            &[rn.as_operand(), rm.as_operand(), imm6.as_operand()],
3310        );
3311    }
3312    fn tstx_lsl(&mut self, rn: impl OperandCast, rm: impl OperandCast, imm6: impl OperandCast) {
3313        return self.emit_n(
3314            Opcode::TSTx_lsl as _,
3315            &[rn.as_operand(), rm.as_operand(), imm6.as_operand()],
3316        );
3317    }
3318    fn tstx_lsr(&mut self, rn: impl OperandCast, rm: impl OperandCast, imm6: impl OperandCast) {
3319        return self.emit_n(
3320            Opcode::TSTx_lsr as _,
3321            &[rn.as_operand(), rm.as_operand(), imm6.as_operand()],
3322        );
3323    }
3324    fn tstx_asr(&mut self, rn: impl OperandCast, rm: impl OperandCast, imm6: impl OperandCast) {
3325        return self.emit_n(
3326            Opcode::TSTx_asr as _,
3327            &[rn.as_operand(), rm.as_operand(), imm6.as_operand()],
3328        );
3329    }
3330    fn tstx_ror(&mut self, rn: impl OperandCast, rm: impl OperandCast, imm6: impl OperandCast) {
3331        return self.emit_n(
3332            Opcode::TSTx_ror as _,
3333            &[rn.as_operand(), rm.as_operand(), imm6.as_operand()],
3334        );
3335    }
3336    fn tstw(&mut self, rn: impl OperandCast, rm: impl OperandCast) {
3337        return self.emit_n(Opcode::TSTw as _, &[rn.as_operand(), rm.as_operand()]);
3338    }
3339    fn tstx(&mut self, rn: impl OperandCast, rm: impl OperandCast) {
3340        return self.emit_n(Opcode::TSTx as _, &[rn.as_operand(), rm.as_operand()]);
3341    }
3342    fn mvnw_lsl(&mut self, rd: impl OperandCast, rm: impl OperandCast, imm6: impl OperandCast) {
3343        return self.emit_n(
3344            Opcode::MVNw_lsl as _,
3345            &[rd.as_operand(), rm.as_operand(), imm6.as_operand()],
3346        );
3347    }
3348    fn mvnw_lsr(&mut self, rd: impl OperandCast, rm: impl OperandCast, imm6: impl OperandCast) {
3349        return self.emit_n(
3350            Opcode::MVNw_lsr as _,
3351            &[rd.as_operand(), rm.as_operand(), imm6.as_operand()],
3352        );
3353    }
3354    fn mvnw_asr(&mut self, rd: impl OperandCast, rm: impl OperandCast, imm6: impl OperandCast) {
3355        return self.emit_n(
3356            Opcode::MVNw_asr as _,
3357            &[rd.as_operand(), rm.as_operand(), imm6.as_operand()],
3358        );
3359    }
3360    fn mvnw_ror(&mut self, rd: impl OperandCast, rm: impl OperandCast, imm6: impl OperandCast) {
3361        return self.emit_n(
3362            Opcode::MVNw_ror as _,
3363            &[rd.as_operand(), rm.as_operand(), imm6.as_operand()],
3364        );
3365    }
3366    fn mvnx_lsl(&mut self, rd: impl OperandCast, rm: impl OperandCast, imm6: impl OperandCast) {
3367        return self.emit_n(
3368            Opcode::MVNx_lsl as _,
3369            &[rd.as_operand(), rm.as_operand(), imm6.as_operand()],
3370        );
3371    }
3372    fn mvnx_lsr(&mut self, rd: impl OperandCast, rm: impl OperandCast, imm6: impl OperandCast) {
3373        return self.emit_n(
3374            Opcode::MVNx_lsr as _,
3375            &[rd.as_operand(), rm.as_operand(), imm6.as_operand()],
3376        );
3377    }
3378    fn mvnx_asr(&mut self, rd: impl OperandCast, rm: impl OperandCast, imm6: impl OperandCast) {
3379        return self.emit_n(
3380            Opcode::MVNx_asr as _,
3381            &[rd.as_operand(), rm.as_operand(), imm6.as_operand()],
3382        );
3383    }
3384    fn mvnx_ror(&mut self, rd: impl OperandCast, rm: impl OperandCast, imm6: impl OperandCast) {
3385        return self.emit_n(
3386            Opcode::MVNx_ror as _,
3387            &[rd.as_operand(), rm.as_operand(), imm6.as_operand()],
3388        );
3389    }
3390    fn mvnw(&mut self, rd: impl OperandCast, rm: impl OperandCast) {
3391        return self.emit_n(Opcode::MVNw as _, &[rd.as_operand(), rm.as_operand()]);
3392    }
3393    fn mvnx(&mut self, rd: impl OperandCast, rm: impl OperandCast) {
3394        return self.emit_n(Opcode::MVNx as _, &[rd.as_operand(), rm.as_operand()]);
3395    }
3396    fn movw(&mut self, rd: impl OperandCast, rm: impl OperandCast) {
3397        return self.emit_n(Opcode::MOVw as _, &[rd.as_operand(), rm.as_operand()]);
3398    }
3399    fn movx(&mut self, rd: impl OperandCast, rm: impl OperandCast) {
3400        return self.emit_n(Opcode::MOVx as _, &[rd.as_operand(), rm.as_operand()]);
3401    }
3402    fn lslvw(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
3403        return self.emit_n(
3404            Opcode::LSLVw as _,
3405            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
3406        );
3407    }
3408    fn lsrvw(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
3409        return self.emit_n(
3410            Opcode::LSRVw as _,
3411            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
3412        );
3413    }
3414    fn asrvw(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
3415        return self.emit_n(
3416            Opcode::ASRVw as _,
3417            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
3418        );
3419    }
3420    fn rorvw(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
3421        return self.emit_n(
3422            Opcode::RORVw as _,
3423            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
3424        );
3425    }
3426    fn lslvx(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
3427        return self.emit_n(
3428            Opcode::LSLVx as _,
3429            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
3430        );
3431    }
3432    fn lsrvx(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
3433        return self.emit_n(
3434            Opcode::LSRVx as _,
3435            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
3436        );
3437    }
3438    fn asrvx(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
3439        return self.emit_n(
3440            Opcode::ASRVx as _,
3441            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
3442        );
3443    }
3444    fn rorvx(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
3445        return self.emit_n(
3446            Opcode::RORVx as _,
3447            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
3448        );
3449    }
3450    fn maddw(
3451        &mut self,
3452        rd: impl OperandCast,
3453        rn: impl OperandCast,
3454        rm: impl OperandCast,
3455        ra: impl OperandCast,
3456    ) {
3457        return self.emit_n(
3458            Opcode::MADDw as _,
3459            &[
3460                rd.as_operand(),
3461                rn.as_operand(),
3462                rm.as_operand(),
3463                ra.as_operand(),
3464            ],
3465        );
3466    }
3467    fn msubw(
3468        &mut self,
3469        rd: impl OperandCast,
3470        rn: impl OperandCast,
3471        rm: impl OperandCast,
3472        ra: impl OperandCast,
3473    ) {
3474        return self.emit_n(
3475            Opcode::MSUBw as _,
3476            &[
3477                rd.as_operand(),
3478                rn.as_operand(),
3479                rm.as_operand(),
3480                ra.as_operand(),
3481            ],
3482        );
3483    }
3484    fn maddx(
3485        &mut self,
3486        rd: impl OperandCast,
3487        rn: impl OperandCast,
3488        rm: impl OperandCast,
3489        ra: impl OperandCast,
3490    ) {
3491        return self.emit_n(
3492            Opcode::MADDx as _,
3493            &[
3494                rd.as_operand(),
3495                rn.as_operand(),
3496                rm.as_operand(),
3497                ra.as_operand(),
3498            ],
3499        );
3500    }
3501    fn msubx(
3502        &mut self,
3503        rd: impl OperandCast,
3504        rn: impl OperandCast,
3505        rm: impl OperandCast,
3506        ra: impl OperandCast,
3507    ) {
3508        return self.emit_n(
3509            Opcode::MSUBx as _,
3510            &[
3511                rd.as_operand(),
3512                rn.as_operand(),
3513                rm.as_operand(),
3514                ra.as_operand(),
3515            ],
3516        );
3517    }
3518    fn mulw(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
3519        return self.emit_n(
3520            Opcode::MULw as _,
3521            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
3522        );
3523    }
3524    fn mnegw(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
3525        return self.emit_n(
3526            Opcode::MNEGw as _,
3527            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
3528        );
3529    }
3530    fn mulx(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
3531        return self.emit_n(
3532            Opcode::MULx as _,
3533            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
3534        );
3535    }
3536    fn mnegx(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
3537        return self.emit_n(
3538            Opcode::MNEGx as _,
3539            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
3540        );
3541    }
3542    fn smaddl(
3543        &mut self,
3544        rd: impl OperandCast,
3545        rn: impl OperandCast,
3546        rm: impl OperandCast,
3547        ra: impl OperandCast,
3548    ) {
3549        return self.emit_n(
3550            Opcode::SMADDL as _,
3551            &[
3552                rd.as_operand(),
3553                rn.as_operand(),
3554                rm.as_operand(),
3555                ra.as_operand(),
3556            ],
3557        );
3558    }
3559    fn smsubl(
3560        &mut self,
3561        rd: impl OperandCast,
3562        rn: impl OperandCast,
3563        rm: impl OperandCast,
3564        ra: impl OperandCast,
3565    ) {
3566        return self.emit_n(
3567            Opcode::SMSUBL as _,
3568            &[
3569                rd.as_operand(),
3570                rn.as_operand(),
3571                rm.as_operand(),
3572                ra.as_operand(),
3573            ],
3574        );
3575    }
3576    fn umaddl(
3577        &mut self,
3578        rd: impl OperandCast,
3579        rn: impl OperandCast,
3580        rm: impl OperandCast,
3581        ra: impl OperandCast,
3582    ) {
3583        return self.emit_n(
3584            Opcode::UMADDL as _,
3585            &[
3586                rd.as_operand(),
3587                rn.as_operand(),
3588                rm.as_operand(),
3589                ra.as_operand(),
3590            ],
3591        );
3592    }
3593    fn umsubl(
3594        &mut self,
3595        rd: impl OperandCast,
3596        rn: impl OperandCast,
3597        rm: impl OperandCast,
3598        ra: impl OperandCast,
3599    ) {
3600        return self.emit_n(
3601            Opcode::UMSUBL as _,
3602            &[
3603                rd.as_operand(),
3604                rn.as_operand(),
3605                rm.as_operand(),
3606                ra.as_operand(),
3607            ],
3608        );
3609    }
3610    fn smull(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
3611        return self.emit_n(
3612            Opcode::SMULL as _,
3613            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
3614        );
3615    }
3616    fn smnegl(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
3617        return self.emit_n(
3618            Opcode::SMNEGL as _,
3619            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
3620        );
3621    }
3622    fn umull(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
3623        return self.emit_n(
3624            Opcode::UMULL as _,
3625            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
3626        );
3627    }
3628    fn umnegl(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
3629        return self.emit_n(
3630            Opcode::UMNEGL as _,
3631            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
3632        );
3633    }
3634    fn smulh(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
3635        return self.emit_n(
3636            Opcode::SMULH as _,
3637            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
3638        );
3639    }
3640    fn umulh(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
3641        return self.emit_n(
3642            Opcode::UMULH as _,
3643            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
3644        );
3645    }
3646    fn bcond(&mut self, bcond: impl OperandCast, imm19: impl OperandCast) {
3647        return self.emit_n(
3648            Opcode::BCOND as _,
3649            &[bcond.as_operand(), imm19.as_operand()],
3650        );
3651    }
3652    fn bccond(&mut self, bcond: impl OperandCast, imm19: impl OperandCast) {
3653        return self.emit_n(
3654            Opcode::BCCOND as _,
3655            &[bcond.as_operand(), imm19.as_operand()],
3656        );
3657    }
3658    fn b(&mut self, imm26: impl OperandCast) {
3659        return self.emit_n(Opcode::B as _, &[imm26.as_operand()]);
3660    }
3661    fn bl(&mut self, imm26: impl OperandCast) {
3662        return self.emit_n(Opcode::BL as _, &[imm26.as_operand()]);
3663    }
3664    fn sbfmw(
3665        &mut self,
3666        rd: impl OperandCast,
3667        rn: impl OperandCast,
3668        immr: impl OperandCast,
3669        imms: impl OperandCast,
3670    ) {
3671        return self.emit_n(
3672            Opcode::SBFMw as _,
3673            &[
3674                rd.as_operand(),
3675                rn.as_operand(),
3676                immr.as_operand(),
3677                imms.as_operand(),
3678            ],
3679        );
3680    }
3681    fn bfmw(
3682        &mut self,
3683        rd: impl OperandCast,
3684        rn: impl OperandCast,
3685        immr: impl OperandCast,
3686        imms: impl OperandCast,
3687    ) {
3688        return self.emit_n(
3689            Opcode::BFMw as _,
3690            &[
3691                rd.as_operand(),
3692                rn.as_operand(),
3693                immr.as_operand(),
3694                imms.as_operand(),
3695            ],
3696        );
3697    }
3698    fn ubfmw(
3699        &mut self,
3700        rd: impl OperandCast,
3701        rn: impl OperandCast,
3702        immr: impl OperandCast,
3703        imms: impl OperandCast,
3704    ) {
3705        return self.emit_n(
3706            Opcode::UBFMw as _,
3707            &[
3708                rd.as_operand(),
3709                rn.as_operand(),
3710                immr.as_operand(),
3711                imms.as_operand(),
3712            ],
3713        );
3714    }
3715    fn sbfmx(
3716        &mut self,
3717        rd: impl OperandCast,
3718        rn: impl OperandCast,
3719        immr: impl OperandCast,
3720        imms: impl OperandCast,
3721    ) {
3722        return self.emit_n(
3723            Opcode::SBFMx as _,
3724            &[
3725                rd.as_operand(),
3726                rn.as_operand(),
3727                immr.as_operand(),
3728                imms.as_operand(),
3729            ],
3730        );
3731    }
3732    fn bfmx(
3733        &mut self,
3734        rd: impl OperandCast,
3735        rn: impl OperandCast,
3736        immr: impl OperandCast,
3737        imms: impl OperandCast,
3738    ) {
3739        return self.emit_n(
3740            Opcode::BFMx as _,
3741            &[
3742                rd.as_operand(),
3743                rn.as_operand(),
3744                immr.as_operand(),
3745                imms.as_operand(),
3746            ],
3747        );
3748    }
3749    fn ubfmx(
3750        &mut self,
3751        rd: impl OperandCast,
3752        rn: impl OperandCast,
3753        immr: impl OperandCast,
3754        imms: impl OperandCast,
3755    ) {
3756        return self.emit_n(
3757            Opcode::UBFMx as _,
3758            &[
3759                rd.as_operand(),
3760                rn.as_operand(),
3761                immr.as_operand(),
3762                imms.as_operand(),
3763            ],
3764        );
3765    }
3766    fn asrwi(&mut self, rd: impl OperandCast, rn: impl OperandCast, immr: impl OperandCast) {
3767        return self.emit_n(
3768            Opcode::ASRwi as _,
3769            &[rd.as_operand(), rn.as_operand(), immr.as_operand()],
3770        );
3771    }
3772    fn lsrwi(&mut self, rd: impl OperandCast, rn: impl OperandCast, immr: impl OperandCast) {
3773        return self.emit_n(
3774            Opcode::LSRwi as _,
3775            &[rd.as_operand(), rn.as_operand(), immr.as_operand()],
3776        );
3777    }
3778    fn asrxi(&mut self, rd: impl OperandCast, rn: impl OperandCast, immr: impl OperandCast) {
3779        return self.emit_n(
3780            Opcode::ASRxi as _,
3781            &[rd.as_operand(), rn.as_operand(), immr.as_operand()],
3782        );
3783    }
3784    fn lsrxi(&mut self, rd: impl OperandCast, rn: impl OperandCast, immr: impl OperandCast) {
3785        return self.emit_n(
3786            Opcode::LSRxi as _,
3787            &[rd.as_operand(), rn.as_operand(), immr.as_operand()],
3788        );
3789    }
3790    fn lslwi(&mut self, rd: impl OperandCast, rn: impl OperandCast, lsl: impl OperandCast) {
3791        return self.emit_n(
3792            Opcode::LSLwi as _,
3793            &[rd.as_operand(), rn.as_operand(), lsl.as_operand()],
3794        );
3795    }
3796    fn lslxi(&mut self, rd: impl OperandCast, rn: impl OperandCast, lsl: impl OperandCast) {
3797        return self.emit_n(
3798            Opcode::LSLxi as _,
3799            &[rd.as_operand(), rn.as_operand(), lsl.as_operand()],
3800        );
3801    }
3802    fn sbfxw(
3803        &mut self,
3804        rd: impl OperandCast,
3805        rn: impl OperandCast,
3806        lsb: impl OperandCast,
3807        width: impl OperandCast,
3808    ) {
3809        return self.emit_n(
3810            Opcode::SBFXw as _,
3811            &[
3812                rd.as_operand(),
3813                rn.as_operand(),
3814                lsb.as_operand(),
3815                width.as_operand(),
3816            ],
3817        );
3818    }
3819    fn bfxilw(
3820        &mut self,
3821        rd: impl OperandCast,
3822        rn: impl OperandCast,
3823        lsb: impl OperandCast,
3824        width: impl OperandCast,
3825    ) {
3826        return self.emit_n(
3827            Opcode::BFXILw as _,
3828            &[
3829                rd.as_operand(),
3830                rn.as_operand(),
3831                lsb.as_operand(),
3832                width.as_operand(),
3833            ],
3834        );
3835    }
3836    fn ubfxw(
3837        &mut self,
3838        rd: impl OperandCast,
3839        rn: impl OperandCast,
3840        lsb: impl OperandCast,
3841        width: impl OperandCast,
3842    ) {
3843        return self.emit_n(
3844            Opcode::UBFXw as _,
3845            &[
3846                rd.as_operand(),
3847                rn.as_operand(),
3848                lsb.as_operand(),
3849                width.as_operand(),
3850            ],
3851        );
3852    }
3853    fn sbfxx(
3854        &mut self,
3855        rd: impl OperandCast,
3856        rn: impl OperandCast,
3857        lsb: impl OperandCast,
3858        width: impl OperandCast,
3859    ) {
3860        return self.emit_n(
3861            Opcode::SBFXx as _,
3862            &[
3863                rd.as_operand(),
3864                rn.as_operand(),
3865                lsb.as_operand(),
3866                width.as_operand(),
3867            ],
3868        );
3869    }
3870    fn bfxilx(
3871        &mut self,
3872        rd: impl OperandCast,
3873        rn: impl OperandCast,
3874        lsb: impl OperandCast,
3875        width: impl OperandCast,
3876    ) {
3877        return self.emit_n(
3878            Opcode::BFXILx as _,
3879            &[
3880                rd.as_operand(),
3881                rn.as_operand(),
3882                lsb.as_operand(),
3883                width.as_operand(),
3884            ],
3885        );
3886    }
3887    fn ubfxx(
3888        &mut self,
3889        rd: impl OperandCast,
3890        rn: impl OperandCast,
3891        lsb: impl OperandCast,
3892        width: impl OperandCast,
3893    ) {
3894        return self.emit_n(
3895            Opcode::UBFXx as _,
3896            &[
3897                rd.as_operand(),
3898                rn.as_operand(),
3899                lsb.as_operand(),
3900                width.as_operand(),
3901            ],
3902        );
3903    }
3904    fn sbfizw(
3905        &mut self,
3906        rd: impl OperandCast,
3907        rn: impl OperandCast,
3908        lsb: impl OperandCast,
3909        width: impl OperandCast,
3910    ) {
3911        return self.emit_n(
3912            Opcode::SBFIZw as _,
3913            &[
3914                rd.as_operand(),
3915                rn.as_operand(),
3916                lsb.as_operand(),
3917                width.as_operand(),
3918            ],
3919        );
3920    }
3921    fn bfiw(
3922        &mut self,
3923        rd: impl OperandCast,
3924        rn: impl OperandCast,
3925        lsb: impl OperandCast,
3926        width: impl OperandCast,
3927    ) {
3928        return self.emit_n(
3929            Opcode::BFIw as _,
3930            &[
3931                rd.as_operand(),
3932                rn.as_operand(),
3933                lsb.as_operand(),
3934                width.as_operand(),
3935            ],
3936        );
3937    }
3938    fn ubfizw(
3939        &mut self,
3940        rd: impl OperandCast,
3941        rn: impl OperandCast,
3942        lsb: impl OperandCast,
3943        width: impl OperandCast,
3944    ) {
3945        return self.emit_n(
3946            Opcode::UBFIZw as _,
3947            &[
3948                rd.as_operand(),
3949                rn.as_operand(),
3950                lsb.as_operand(),
3951                width.as_operand(),
3952            ],
3953        );
3954    }
3955    fn sbfizx(
3956        &mut self,
3957        rd: impl OperandCast,
3958        rn: impl OperandCast,
3959        lsb: impl OperandCast,
3960        width: impl OperandCast,
3961    ) {
3962        return self.emit_n(
3963            Opcode::SBFIZx as _,
3964            &[
3965                rd.as_operand(),
3966                rn.as_operand(),
3967                lsb.as_operand(),
3968                width.as_operand(),
3969            ],
3970        );
3971    }
3972    fn bfix(
3973        &mut self,
3974        rd: impl OperandCast,
3975        rn: impl OperandCast,
3976        lsb: impl OperandCast,
3977        width: impl OperandCast,
3978    ) {
3979        return self.emit_n(
3980            Opcode::BFIx as _,
3981            &[
3982                rd.as_operand(),
3983                rn.as_operand(),
3984                lsb.as_operand(),
3985                width.as_operand(),
3986            ],
3987        );
3988    }
3989    fn ubfizx(
3990        &mut self,
3991        rd: impl OperandCast,
3992        rn: impl OperandCast,
3993        lsb: impl OperandCast,
3994        width: impl OperandCast,
3995    ) {
3996        return self.emit_n(
3997            Opcode::UBFIZx as _,
3998            &[
3999                rd.as_operand(),
4000                rn.as_operand(),
4001                lsb.as_operand(),
4002                width.as_operand(),
4003            ],
4004        );
4005    }
4006    fn bfcw(&mut self, rd: impl OperandCast, lsb: impl OperandCast, width: impl OperandCast) {
4007        return self.emit_n(
4008            Opcode::BFCw as _,
4009            &[rd.as_operand(), lsb.as_operand(), width.as_operand()],
4010        );
4011    }
4012    fn bfcx(&mut self, rd: impl OperandCast, lsb: impl OperandCast, width: impl OperandCast) {
4013        return self.emit_n(
4014            Opcode::BFCx as _,
4015            &[rd.as_operand(), lsb.as_operand(), width.as_operand()],
4016        );
4017    }
4018    fn sxtbw(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
4019        return self.emit_n(Opcode::SXTBw as _, &[rd.as_operand(), rn.as_operand()]);
4020    }
4021    fn uxtbw(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
4022        return self.emit_n(Opcode::UXTBw as _, &[rd.as_operand(), rn.as_operand()]);
4023    }
4024    fn sxtbx(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
4025        return self.emit_n(Opcode::SXTBx as _, &[rd.as_operand(), rn.as_operand()]);
4026    }
4027    fn sxthw(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
4028        return self.emit_n(Opcode::SXTHw as _, &[rd.as_operand(), rn.as_operand()]);
4029    }
4030    fn uxthw(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
4031        return self.emit_n(Opcode::UXTHw as _, &[rd.as_operand(), rn.as_operand()]);
4032    }
4033    fn sxthx(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
4034        return self.emit_n(Opcode::SXTHx as _, &[rd.as_operand(), rn.as_operand()]);
4035    }
4036    fn sxtwx(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
4037        return self.emit_n(Opcode::SXTWx as _, &[rd.as_operand(), rn.as_operand()]);
4038    }
4039    fn br(&mut self, rn: impl OperandCast) {
4040        return self.emit_n(Opcode::BR as _, &[rn.as_operand()]);
4041    }
4042    fn braaz(&mut self, rn: impl OperandCast) {
4043        return self.emit_n(Opcode::BRAAZ as _, &[rn.as_operand()]);
4044    }
4045    fn brabz(&mut self, rn: impl OperandCast) {
4046        return self.emit_n(Opcode::BRABZ as _, &[rn.as_operand()]);
4047    }
4048    fn blr(&mut self, rn: impl OperandCast) {
4049        return self.emit_n(Opcode::BLR as _, &[rn.as_operand()]);
4050    }
4051    fn blraaz(&mut self, rn: impl OperandCast) {
4052        return self.emit_n(Opcode::BLRAAZ as _, &[rn.as_operand()]);
4053    }
4054    fn blrabz(&mut self, rn: impl OperandCast) {
4055        return self.emit_n(Opcode::BLRABZ as _, &[rn.as_operand()]);
4056    }
4057    fn ret(&mut self, rn: impl OperandCast) {
4058        return self.emit_n(Opcode::RET as _, &[rn.as_operand()]);
4059    }
4060    fn retaa(&mut self) {
4061        return self.emit_n(Opcode::RETAA as _, &[]);
4062    }
4063    fn retab(&mut self) {
4064        return self.emit_n(Opcode::RETAB as _, &[]);
4065    }
4066    fn braa(&mut self, rn: impl OperandCast, rm: impl OperandCast) {
4067        return self.emit_n(Opcode::BRAA as _, &[rn.as_operand(), rm.as_operand()]);
4068    }
4069    fn brab(&mut self, rn: impl OperandCast, rm: impl OperandCast) {
4070        return self.emit_n(Opcode::BRAB as _, &[rn.as_operand(), rm.as_operand()]);
4071    }
4072    fn blraa(&mut self, rn: impl OperandCast, rm: impl OperandCast) {
4073        return self.emit_n(Opcode::BLRAA as _, &[rn.as_operand(), rm.as_operand()]);
4074    }
4075    fn blrab(&mut self, rn: impl OperandCast, rm: impl OperandCast) {
4076        return self.emit_n(Opcode::BLRAB as _, &[rn.as_operand(), rm.as_operand()]);
4077    }
4078    fn brk(&mut self, imm16: impl OperandCast) {
4079        return self.emit_n(Opcode::BRK as _, &[imm16.as_operand()]);
4080    }
4081    fn cbzw(&mut self, rt: impl OperandCast, imm19: impl OperandCast) {
4082        return self.emit_n(Opcode::CBZw as _, &[rt.as_operand(), imm19.as_operand()]);
4083    }
4084    fn cbnzw(&mut self, rt: impl OperandCast, imm19: impl OperandCast) {
4085        return self.emit_n(Opcode::CBNZw as _, &[rt.as_operand(), imm19.as_operand()]);
4086    }
4087    fn cbzx(&mut self, rt: impl OperandCast, imm19: impl OperandCast) {
4088        return self.emit_n(Opcode::CBZx as _, &[rt.as_operand(), imm19.as_operand()]);
4089    }
4090    fn cbnzx(&mut self, rt: impl OperandCast, imm19: impl OperandCast) {
4091        return self.emit_n(Opcode::CBNZx as _, &[rt.as_operand(), imm19.as_operand()]);
4092    }
4093    fn tbz(&mut self, rt: impl OperandCast, bit: impl OperandCast, imm14: impl OperandCast) {
4094        return self.emit_n(
4095            Opcode::TBZ as _,
4096            &[rt.as_operand(), bit.as_operand(), imm14.as_operand()],
4097        );
4098    }
4099    fn tbnz(&mut self, rt: impl OperandCast, bit: impl OperandCast, imm14: impl OperandCast) {
4100        return self.emit_n(
4101            Opcode::TBNZ as _,
4102            &[rt.as_operand(), bit.as_operand(), imm14.as_operand()],
4103        );
4104    }
4105    fn ccmnwi(
4106        &mut self,
4107        rn: impl OperandCast,
4108        imm5: impl OperandCast,
4109        nzcv: impl OperandCast,
4110        cond: impl OperandCast,
4111    ) {
4112        return self.emit_n(
4113            Opcode::CCMNwi as _,
4114            &[
4115                rn.as_operand(),
4116                imm5.as_operand(),
4117                nzcv.as_operand(),
4118                cond.as_operand(),
4119            ],
4120        );
4121    }
4122    fn ccmpwi(
4123        &mut self,
4124        rn: impl OperandCast,
4125        imm5: impl OperandCast,
4126        nzcv: impl OperandCast,
4127        cond: impl OperandCast,
4128    ) {
4129        return self.emit_n(
4130            Opcode::CCMPwi as _,
4131            &[
4132                rn.as_operand(),
4133                imm5.as_operand(),
4134                nzcv.as_operand(),
4135                cond.as_operand(),
4136            ],
4137        );
4138    }
4139    fn ccmnxi(
4140        &mut self,
4141        rn: impl OperandCast,
4142        imm5: impl OperandCast,
4143        nzcv: impl OperandCast,
4144        cond: impl OperandCast,
4145    ) {
4146        return self.emit_n(
4147            Opcode::CCMNxi as _,
4148            &[
4149                rn.as_operand(),
4150                imm5.as_operand(),
4151                nzcv.as_operand(),
4152                cond.as_operand(),
4153            ],
4154        );
4155    }
4156    fn ccmpxi(
4157        &mut self,
4158        rn: impl OperandCast,
4159        imm5: impl OperandCast,
4160        nzcv: impl OperandCast,
4161        cond: impl OperandCast,
4162    ) {
4163        return self.emit_n(
4164            Opcode::CCMPxi as _,
4165            &[
4166                rn.as_operand(),
4167                imm5.as_operand(),
4168                nzcv.as_operand(),
4169                cond.as_operand(),
4170            ],
4171        );
4172    }
4173    fn ccmnw(
4174        &mut self,
4175        rn: impl OperandCast,
4176        rm: impl OperandCast,
4177        nzcv: impl OperandCast,
4178        cond: impl OperandCast,
4179    ) {
4180        return self.emit_n(
4181            Opcode::CCMNw as _,
4182            &[
4183                rn.as_operand(),
4184                rm.as_operand(),
4185                nzcv.as_operand(),
4186                cond.as_operand(),
4187            ],
4188        );
4189    }
4190    fn ccmpw(
4191        &mut self,
4192        rn: impl OperandCast,
4193        rm: impl OperandCast,
4194        nzcv: impl OperandCast,
4195        cond: impl OperandCast,
4196    ) {
4197        return self.emit_n(
4198            Opcode::CCMPw as _,
4199            &[
4200                rn.as_operand(),
4201                rm.as_operand(),
4202                nzcv.as_operand(),
4203                cond.as_operand(),
4204            ],
4205        );
4206    }
4207    fn ccmnx(
4208        &mut self,
4209        rn: impl OperandCast,
4210        rm: impl OperandCast,
4211        nzcv: impl OperandCast,
4212        cond: impl OperandCast,
4213    ) {
4214        return self.emit_n(
4215            Opcode::CCMNx as _,
4216            &[
4217                rn.as_operand(),
4218                rm.as_operand(),
4219                nzcv.as_operand(),
4220                cond.as_operand(),
4221            ],
4222        );
4223    }
4224    fn ccmpx(
4225        &mut self,
4226        rn: impl OperandCast,
4227        rm: impl OperandCast,
4228        nzcv: impl OperandCast,
4229        cond: impl OperandCast,
4230    ) {
4231        return self.emit_n(
4232            Opcode::CCMPx as _,
4233            &[
4234                rn.as_operand(),
4235                rm.as_operand(),
4236                nzcv.as_operand(),
4237                cond.as_operand(),
4238            ],
4239        );
4240    }
4241    fn clrex(&mut self) {
4242        return self.emit_n(Opcode::CLREX as _, &[]);
4243    }
4244    fn dsb(&mut self, crm: impl OperandCast) {
4245        return self.emit_n(Opcode::DSB as _, &[crm.as_operand()]);
4246    }
4247    fn dmb(&mut self, crm: impl OperandCast) {
4248        return self.emit_n(Opcode::DMB as _, &[crm.as_operand()]);
4249    }
4250    fn isb(&mut self, crm: impl OperandCast) {
4251        return self.emit_n(Opcode::ISB as _, &[crm.as_operand()]);
4252    }
4253    fn ssbb(&mut self) {
4254        return self.emit_n(Opcode::SSBB as _, &[]);
4255    }
4256    fn hint(&mut self, imm: impl OperandCast) {
4257        return self.emit_n(Opcode::HINT as _, &[imm.as_operand()]);
4258    }
4259    fn nop(&mut self) {
4260        return self.emit_n(Opcode::NOP as _, &[]);
4261    }
4262    fn r#yield(&mut self) {
4263        return self.emit_n(Opcode::YIELD as _, &[]);
4264    }
4265    fn wfe(&mut self) {
4266        return self.emit_n(Opcode::WFE as _, &[]);
4267    }
4268    fn wfi(&mut self) {
4269        return self.emit_n(Opcode::WFI as _, &[]);
4270    }
4271    fn sev(&mut self) {
4272        return self.emit_n(Opcode::SEV as _, &[]);
4273    }
4274    fn sevl(&mut self) {
4275        return self.emit_n(Opcode::SEVL as _, &[]);
4276    }
4277    fn dgh(&mut self) {
4278        return self.emit_n(Opcode::DGH as _, &[]);
4279    }
4280    fn xpaclri(&mut self) {
4281        return self.emit_n(Opcode::XPACLRI as _, &[]);
4282    }
4283    fn pacia1716(&mut self) {
4284        return self.emit_n(Opcode::PACIA1716 as _, &[]);
4285    }
4286    fn pacib1716(&mut self) {
4287        return self.emit_n(Opcode::PACIB1716 as _, &[]);
4288    }
4289    fn autia1716(&mut self) {
4290        return self.emit_n(Opcode::AUTIA1716 as _, &[]);
4291    }
4292    fn autib1716(&mut self) {
4293        return self.emit_n(Opcode::AUTIB1716 as _, &[]);
4294    }
4295    fn esb(&mut self) {
4296        return self.emit_n(Opcode::ESB as _, &[]);
4297    }
4298    fn csdb(&mut self) {
4299        return self.emit_n(Opcode::CSDB as _, &[]);
4300    }
4301    fn clrbhb(&mut self) {
4302        return self.emit_n(Opcode::CLRBHB as _, &[]);
4303    }
4304    fn paciaz(&mut self) {
4305        return self.emit_n(Opcode::PACIAZ as _, &[]);
4306    }
4307    fn paciasp(&mut self) {
4308        return self.emit_n(Opcode::PACIASP as _, &[]);
4309    }
4310    fn pacibz(&mut self) {
4311        return self.emit_n(Opcode::PACIBZ as _, &[]);
4312    }
4313    fn pacibsp(&mut self) {
4314        return self.emit_n(Opcode::PACIBSP as _, &[]);
4315    }
4316    fn autiaz(&mut self) {
4317        return self.emit_n(Opcode::AUTIAZ as _, &[]);
4318    }
4319    fn autiasp(&mut self) {
4320        return self.emit_n(Opcode::AUTIASP as _, &[]);
4321    }
4322    fn autibz(&mut self) {
4323        return self.emit_n(Opcode::AUTIBZ as _, &[]);
4324    }
4325    fn autibsp(&mut self) {
4326        return self.emit_n(Opcode::AUTIBSP as _, &[]);
4327    }
4328    fn bti(&mut self) {
4329        return self.emit_n(Opcode::BTI as _, &[]);
4330    }
4331    fn btic(&mut self) {
4332        return self.emit_n(Opcode::BTIc as _, &[]);
4333    }
4334    fn btij(&mut self) {
4335        return self.emit_n(Opcode::BTIj as _, &[]);
4336    }
4337    fn btijc(&mut self) {
4338        return self.emit_n(Opcode::BTIjc as _, &[]);
4339    }
4340    fn chkfeat(&mut self) {
4341        return self.emit_n(Opcode::CHKFEAT as _, &[]);
4342    }
4343    fn hlt(&mut self, imm16: impl OperandCast) {
4344        return self.emit_n(Opcode::HLT as _, &[imm16.as_operand()]);
4345    }
4346    fn svc(&mut self, imm16: impl OperandCast) {
4347        return self.emit_n(Opcode::SVC as _, &[imm16.as_operand()]);
4348    }
4349    fn hvc(&mut self, imm16: impl OperandCast) {
4350        return self.emit_n(Opcode::HVC as _, &[imm16.as_operand()]);
4351    }
4352    fn smc(&mut self, imm16: impl OperandCast) {
4353        return self.emit_n(Opcode::SMC as _, &[imm16.as_operand()]);
4354    }
4355    fn dcps1(&mut self, imm16: impl OperandCast) {
4356        return self.emit_n(Opcode::DCPS1 as _, &[imm16.as_operand()]);
4357    }
4358    fn dcps2(&mut self, imm16: impl OperandCast) {
4359        return self.emit_n(Opcode::DCPS2 as _, &[imm16.as_operand()]);
4360    }
4361    fn dcps3(&mut self, imm16: impl OperandCast) {
4362        return self.emit_n(Opcode::DCPS3 as _, &[imm16.as_operand()]);
4363    }
4364    fn eret(&mut self) {
4365        return self.emit_n(Opcode::ERET as _, &[]);
4366    }
4367    fn eretaa(&mut self) {
4368        return self.emit_n(Opcode::ERETAA as _, &[]);
4369    }
4370    fn eretab(&mut self) {
4371        return self.emit_n(Opcode::ERETAB as _, &[]);
4372    }
4373    fn drps(&mut self) {
4374        return self.emit_n(Opcode::DRPS as _, &[]);
4375    }
4376    fn clzw(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
4377        return self.emit_n(Opcode::CLZw as _, &[rd.as_operand(), rn.as_operand()]);
4378    }
4379    fn clsw(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
4380        return self.emit_n(Opcode::CLSw as _, &[rd.as_operand(), rn.as_operand()]);
4381    }
4382    fn ctzw(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
4383        return self.emit_n(Opcode::CTZw as _, &[rd.as_operand(), rn.as_operand()]);
4384    }
4385    fn cntw(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
4386        return self.emit_n(Opcode::CNTw as _, &[rd.as_operand(), rn.as_operand()]);
4387    }
4388    fn absw(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
4389        return self.emit_n(Opcode::ABSw as _, &[rd.as_operand(), rn.as_operand()]);
4390    }
4391    fn clzx(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
4392        return self.emit_n(Opcode::CLZx as _, &[rd.as_operand(), rn.as_operand()]);
4393    }
4394    fn clsx(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
4395        return self.emit_n(Opcode::CLSx as _, &[rd.as_operand(), rn.as_operand()]);
4396    }
4397    fn ctzx(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
4398        return self.emit_n(Opcode::CTZx as _, &[rd.as_operand(), rn.as_operand()]);
4399    }
4400    fn cntx(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
4401        return self.emit_n(Opcode::CNTx as _, &[rd.as_operand(), rn.as_operand()]);
4402    }
4403    fn absx(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
4404        return self.emit_n(Opcode::ABSx as _, &[rd.as_operand(), rn.as_operand()]);
4405    }
4406    fn smaxwi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm8: impl OperandCast) {
4407        return self.emit_n(
4408            Opcode::SMAXwi as _,
4409            &[rd.as_operand(), rn.as_operand(), imm8.as_operand()],
4410        );
4411    }
4412    fn umaxwi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm8: impl OperandCast) {
4413        return self.emit_n(
4414            Opcode::UMAXwi as _,
4415            &[rd.as_operand(), rn.as_operand(), imm8.as_operand()],
4416        );
4417    }
4418    fn sminwi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm8: impl OperandCast) {
4419        return self.emit_n(
4420            Opcode::SMINwi as _,
4421            &[rd.as_operand(), rn.as_operand(), imm8.as_operand()],
4422        );
4423    }
4424    fn uminwi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm8: impl OperandCast) {
4425        return self.emit_n(
4426            Opcode::UMINwi as _,
4427            &[rd.as_operand(), rn.as_operand(), imm8.as_operand()],
4428        );
4429    }
4430    fn smaxxi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm8: impl OperandCast) {
4431        return self.emit_n(
4432            Opcode::SMAXxi as _,
4433            &[rd.as_operand(), rn.as_operand(), imm8.as_operand()],
4434        );
4435    }
4436    fn umaxxi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm8: impl OperandCast) {
4437        return self.emit_n(
4438            Opcode::UMAXxi as _,
4439            &[rd.as_operand(), rn.as_operand(), imm8.as_operand()],
4440        );
4441    }
4442    fn sminxi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm8: impl OperandCast) {
4443        return self.emit_n(
4444            Opcode::SMINxi as _,
4445            &[rd.as_operand(), rn.as_operand(), imm8.as_operand()],
4446        );
4447    }
4448    fn uminxi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm8: impl OperandCast) {
4449        return self.emit_n(
4450            Opcode::UMINxi as _,
4451            &[rd.as_operand(), rn.as_operand(), imm8.as_operand()],
4452        );
4453    }
4454    fn smaxw(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
4455        return self.emit_n(
4456            Opcode::SMAXw as _,
4457            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
4458        );
4459    }
4460    fn umaxw(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
4461        return self.emit_n(
4462            Opcode::UMAXw as _,
4463            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
4464        );
4465    }
4466    fn sminw(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
4467        return self.emit_n(
4468            Opcode::SMINw as _,
4469            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
4470        );
4471    }
4472    fn uminw(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
4473        return self.emit_n(
4474            Opcode::UMINw as _,
4475            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
4476        );
4477    }
4478    fn smaxx(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
4479        return self.emit_n(
4480            Opcode::SMAXx as _,
4481            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
4482        );
4483    }
4484    fn umaxx(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
4485        return self.emit_n(
4486            Opcode::UMAXx as _,
4487            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
4488        );
4489    }
4490    fn sminx(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
4491        return self.emit_n(
4492            Opcode::SMINx as _,
4493            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
4494        );
4495    }
4496    fn uminx(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
4497        return self.emit_n(
4498            Opcode::UMINx as _,
4499            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
4500        );
4501    }
4502    fn cselw(
4503        &mut self,
4504        rd: impl OperandCast,
4505        rn: impl OperandCast,
4506        rm: impl OperandCast,
4507        cond: impl OperandCast,
4508    ) {
4509        return self.emit_n(
4510            Opcode::CSELw as _,
4511            &[
4512                rd.as_operand(),
4513                rn.as_operand(),
4514                rm.as_operand(),
4515                cond.as_operand(),
4516            ],
4517        );
4518    }
4519    fn csincw(
4520        &mut self,
4521        rd: impl OperandCast,
4522        rn: impl OperandCast,
4523        rm: impl OperandCast,
4524        cond: impl OperandCast,
4525    ) {
4526        return self.emit_n(
4527            Opcode::CSINCw as _,
4528            &[
4529                rd.as_operand(),
4530                rn.as_operand(),
4531                rm.as_operand(),
4532                cond.as_operand(),
4533            ],
4534        );
4535    }
4536    fn csinvw(
4537        &mut self,
4538        rd: impl OperandCast,
4539        rn: impl OperandCast,
4540        rm: impl OperandCast,
4541        cond: impl OperandCast,
4542    ) {
4543        return self.emit_n(
4544            Opcode::CSINVw as _,
4545            &[
4546                rd.as_operand(),
4547                rn.as_operand(),
4548                rm.as_operand(),
4549                cond.as_operand(),
4550            ],
4551        );
4552    }
4553    fn csnegw(
4554        &mut self,
4555        rd: impl OperandCast,
4556        rn: impl OperandCast,
4557        rm: impl OperandCast,
4558        cond: impl OperandCast,
4559    ) {
4560        return self.emit_n(
4561            Opcode::CSNEGw as _,
4562            &[
4563                rd.as_operand(),
4564                rn.as_operand(),
4565                rm.as_operand(),
4566                cond.as_operand(),
4567            ],
4568        );
4569    }
4570    fn cselx(
4571        &mut self,
4572        rd: impl OperandCast,
4573        rn: impl OperandCast,
4574        rm: impl OperandCast,
4575        cond: impl OperandCast,
4576    ) {
4577        return self.emit_n(
4578            Opcode::CSELx as _,
4579            &[
4580                rd.as_operand(),
4581                rn.as_operand(),
4582                rm.as_operand(),
4583                cond.as_operand(),
4584            ],
4585        );
4586    }
4587    fn csincx(
4588        &mut self,
4589        rd: impl OperandCast,
4590        rn: impl OperandCast,
4591        rm: impl OperandCast,
4592        cond: impl OperandCast,
4593    ) {
4594        return self.emit_n(
4595            Opcode::CSINCx as _,
4596            &[
4597                rd.as_operand(),
4598                rn.as_operand(),
4599                rm.as_operand(),
4600                cond.as_operand(),
4601            ],
4602        );
4603    }
4604    fn csinvx(
4605        &mut self,
4606        rd: impl OperandCast,
4607        rn: impl OperandCast,
4608        rm: impl OperandCast,
4609        cond: impl OperandCast,
4610    ) {
4611        return self.emit_n(
4612            Opcode::CSINVx as _,
4613            &[
4614                rd.as_operand(),
4615                rn.as_operand(),
4616                rm.as_operand(),
4617                cond.as_operand(),
4618            ],
4619        );
4620    }
4621    fn csnegx(
4622        &mut self,
4623        rd: impl OperandCast,
4624        rn: impl OperandCast,
4625        rm: impl OperandCast,
4626        cond: impl OperandCast,
4627    ) {
4628        return self.emit_n(
4629            Opcode::CSNEGx as _,
4630            &[
4631                rd.as_operand(),
4632                rn.as_operand(),
4633                rm.as_operand(),
4634                cond.as_operand(),
4635            ],
4636        );
4637    }
4638    fn cincw(&mut self, rd: impl OperandCast, rn: impl OperandCast, cond: impl OperandCast) {
4639        return self.emit_n(
4640            Opcode::CINCw as _,
4641            &[rd.as_operand(), rn.as_operand(), cond.as_operand()],
4642        );
4643    }
4644    fn cinvw(&mut self, rd: impl OperandCast, rn: impl OperandCast, cond: impl OperandCast) {
4645        return self.emit_n(
4646            Opcode::CINVw as _,
4647            &[rd.as_operand(), rn.as_operand(), cond.as_operand()],
4648        );
4649    }
4650    fn cnegw(&mut self, rd: impl OperandCast, rn: impl OperandCast, cond: impl OperandCast) {
4651        return self.emit_n(
4652            Opcode::CNEGw as _,
4653            &[rd.as_operand(), rn.as_operand(), cond.as_operand()],
4654        );
4655    }
4656    fn cincx(&mut self, rd: impl OperandCast, rn: impl OperandCast, cond: impl OperandCast) {
4657        return self.emit_n(
4658            Opcode::CINCx as _,
4659            &[rd.as_operand(), rn.as_operand(), cond.as_operand()],
4660        );
4661    }
4662    fn cinvx(&mut self, rd: impl OperandCast, rn: impl OperandCast, cond: impl OperandCast) {
4663        return self.emit_n(
4664            Opcode::CINVx as _,
4665            &[rd.as_operand(), rn.as_operand(), cond.as_operand()],
4666        );
4667    }
4668    fn cnegx(&mut self, rd: impl OperandCast, rn: impl OperandCast, cond: impl OperandCast) {
4669        return self.emit_n(
4670            Opcode::CNEGx as _,
4671            &[rd.as_operand(), rn.as_operand(), cond.as_operand()],
4672        );
4673    }
4674    fn csetw(&mut self, rd: impl OperandCast, cond: impl OperandCast) {
4675        return self.emit_n(Opcode::CSETw as _, &[rd.as_operand(), cond.as_operand()]);
4676    }
4677    fn csetmw(&mut self, rd: impl OperandCast, cond: impl OperandCast) {
4678        return self.emit_n(Opcode::CSETMw as _, &[rd.as_operand(), cond.as_operand()]);
4679    }
4680    fn csetx(&mut self, rd: impl OperandCast, cond: impl OperandCast) {
4681        return self.emit_n(Opcode::CSETx as _, &[rd.as_operand(), cond.as_operand()]);
4682    }
4683    fn csetmx(&mut self, rd: impl OperandCast, cond: impl OperandCast) {
4684        return self.emit_n(Opcode::CSETMx as _, &[rd.as_operand(), cond.as_operand()]);
4685    }
4686    fn extrw(
4687        &mut self,
4688        rd: impl OperandCast,
4689        rn: impl OperandCast,
4690        rm: impl OperandCast,
4691        imms: impl OperandCast,
4692    ) {
4693        return self.emit_n(
4694            Opcode::EXTRw as _,
4695            &[
4696                rd.as_operand(),
4697                rn.as_operand(),
4698                rm.as_operand(),
4699                imms.as_operand(),
4700            ],
4701        );
4702    }
4703    fn extrx(
4704        &mut self,
4705        rd: impl OperandCast,
4706        rn: impl OperandCast,
4707        rm: impl OperandCast,
4708        imms: impl OperandCast,
4709    ) {
4710        return self.emit_n(
4711            Opcode::EXTRx as _,
4712            &[
4713                rd.as_operand(),
4714                rn.as_operand(),
4715                rm.as_operand(),
4716                imms.as_operand(),
4717            ],
4718        );
4719    }
4720    fn rorwi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imms: impl OperandCast) {
4721        return self.emit_n(
4722            Opcode::RORwi as _,
4723            &[rd.as_operand(), rn.as_operand(), imms.as_operand()],
4724        );
4725    }
4726    fn rorxi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imms: impl OperandCast) {
4727        return self.emit_n(
4728            Opcode::RORxi as _,
4729            &[rd.as_operand(), rn.as_operand(), imms.as_operand()],
4730        );
4731    }
4732    fn movnw(&mut self, rd: impl OperandCast, imm16: impl OperandCast) {
4733        return self.emit_n(Opcode::MOVNw as _, &[rd.as_operand(), imm16.as_operand()]);
4734    }
4735    fn movnw16(&mut self, rd: impl OperandCast, imm16: impl OperandCast) {
4736        return self.emit_n(Opcode::MOVNw16 as _, &[rd.as_operand(), imm16.as_operand()]);
4737    }
4738    fn movzw(&mut self, rd: impl OperandCast, imm16: impl OperandCast) {
4739        return self.emit_n(Opcode::MOVZw as _, &[rd.as_operand(), imm16.as_operand()]);
4740    }
4741    fn movzw16(&mut self, rd: impl OperandCast, imm16: impl OperandCast) {
4742        return self.emit_n(Opcode::MOVZw16 as _, &[rd.as_operand(), imm16.as_operand()]);
4743    }
4744    fn movkw(&mut self, rd: impl OperandCast, imm16: impl OperandCast) {
4745        return self.emit_n(Opcode::MOVKw as _, &[rd.as_operand(), imm16.as_operand()]);
4746    }
4747    fn movkw16(&mut self, rd: impl OperandCast, imm16: impl OperandCast) {
4748        return self.emit_n(Opcode::MOVKw16 as _, &[rd.as_operand(), imm16.as_operand()]);
4749    }
4750    fn movnx(&mut self, rd: impl OperandCast, imm16: impl OperandCast) {
4751        return self.emit_n(Opcode::MOVNx as _, &[rd.as_operand(), imm16.as_operand()]);
4752    }
4753    fn movnx16(&mut self, rd: impl OperandCast, imm16: impl OperandCast) {
4754        return self.emit_n(Opcode::MOVNx16 as _, &[rd.as_operand(), imm16.as_operand()]);
4755    }
4756    fn movnx32(&mut self, rd: impl OperandCast, imm16: impl OperandCast) {
4757        return self.emit_n(Opcode::MOVNx32 as _, &[rd.as_operand(), imm16.as_operand()]);
4758    }
4759    fn movnx48(&mut self, rd: impl OperandCast, imm16: impl OperandCast) {
4760        return self.emit_n(Opcode::MOVNx48 as _, &[rd.as_operand(), imm16.as_operand()]);
4761    }
4762    fn movzx(&mut self, rd: impl OperandCast, imm16: impl OperandCast) {
4763        return self.emit_n(Opcode::MOVZx as _, &[rd.as_operand(), imm16.as_operand()]);
4764    }
4765    fn movzx16(&mut self, rd: impl OperandCast, imm16: impl OperandCast) {
4766        return self.emit_n(Opcode::MOVZx16 as _, &[rd.as_operand(), imm16.as_operand()]);
4767    }
4768    fn movzx32(&mut self, rd: impl OperandCast, imm16: impl OperandCast) {
4769        return self.emit_n(Opcode::MOVZx32 as _, &[rd.as_operand(), imm16.as_operand()]);
4770    }
4771    fn movzx48(&mut self, rd: impl OperandCast, imm16: impl OperandCast) {
4772        return self.emit_n(Opcode::MOVZx48 as _, &[rd.as_operand(), imm16.as_operand()]);
4773    }
4774    fn movkx(&mut self, rd: impl OperandCast, imm16: impl OperandCast) {
4775        return self.emit_n(Opcode::MOVKx as _, &[rd.as_operand(), imm16.as_operand()]);
4776    }
4777    fn movkx16(&mut self, rd: impl OperandCast, imm16: impl OperandCast) {
4778        return self.emit_n(Opcode::MOVKx16 as _, &[rd.as_operand(), imm16.as_operand()]);
4779    }
4780    fn movkx32(&mut self, rd: impl OperandCast, imm16: impl OperandCast) {
4781        return self.emit_n(Opcode::MOVKx32 as _, &[rd.as_operand(), imm16.as_operand()]);
4782    }
4783    fn movkx48(&mut self, rd: impl OperandCast, imm16: impl OperandCast) {
4784        return self.emit_n(Opcode::MOVKx48 as _, &[rd.as_operand(), imm16.as_operand()]);
4785    }
4786    fn movnw_shift(&mut self, rd: impl OperandCast, imm16: impl OperandCast, hw: impl OperandCast) {
4787        return self.emit_n(
4788            Opcode::MOVNw_shift as _,
4789            &[rd.as_operand(), imm16.as_operand(), hw.as_operand()],
4790        );
4791    }
4792    fn movzw_shift(&mut self, rd: impl OperandCast, imm16: impl OperandCast, hw: impl OperandCast) {
4793        return self.emit_n(
4794            Opcode::MOVZw_shift as _,
4795            &[rd.as_operand(), imm16.as_operand(), hw.as_operand()],
4796        );
4797    }
4798    fn movkw_shift(&mut self, rd: impl OperandCast, imm16: impl OperandCast, hw: impl OperandCast) {
4799        return self.emit_n(
4800            Opcode::MOVKw_shift as _,
4801            &[rd.as_operand(), imm16.as_operand(), hw.as_operand()],
4802        );
4803    }
4804    fn movnx_shift(&mut self, rd: impl OperandCast, imm16: impl OperandCast, hw: impl OperandCast) {
4805        return self.emit_n(
4806            Opcode::MOVNx_shift as _,
4807            &[rd.as_operand(), imm16.as_operand(), hw.as_operand()],
4808        );
4809    }
4810    fn movzx_shift(&mut self, rd: impl OperandCast, imm16: impl OperandCast, hw: impl OperandCast) {
4811        return self.emit_n(
4812            Opcode::MOVZx_shift as _,
4813            &[rd.as_operand(), imm16.as_operand(), hw.as_operand()],
4814        );
4815    }
4816    fn movkx_shift(&mut self, rd: impl OperandCast, imm16: impl OperandCast, hw: impl OperandCast) {
4817        return self.emit_n(
4818            Opcode::MOVKx_shift as _,
4819            &[rd.as_operand(), imm16.as_operand(), hw.as_operand()],
4820        );
4821    }
4822    fn sys(&mut self, sysreg: impl OperandCast, rt: impl OperandCast) {
4823        return self.emit_n(Opcode::SYS as _, &[sysreg.as_operand(), rt.as_operand()]);
4824    }
4825    fn sysl(&mut self, rt: impl OperandCast, sysreg: impl OperandCast) {
4826        return self.emit_n(Opcode::SYSL as _, &[rt.as_operand(), sysreg.as_operand()]);
4827    }
4828    fn at_s1e1r(&mut self, rt: impl OperandCast) {
4829        return self.emit_n(Opcode::AT_S1E1R as _, &[rt.as_operand()]);
4830    }
4831    fn at_s1e1w(&mut self, rt: impl OperandCast) {
4832        return self.emit_n(Opcode::AT_S1E1W as _, &[rt.as_operand()]);
4833    }
4834    fn at_s1e0r(&mut self, rt: impl OperandCast) {
4835        return self.emit_n(Opcode::AT_S1E0R as _, &[rt.as_operand()]);
4836    }
4837    fn at_s1e0w(&mut self, rt: impl OperandCast) {
4838        return self.emit_n(Opcode::AT_S1E0W as _, &[rt.as_operand()]);
4839    }
4840    fn at_s1e1rp(&mut self, rt: impl OperandCast) {
4841        return self.emit_n(Opcode::AT_S1E1RP as _, &[rt.as_operand()]);
4842    }
4843    fn at_s1e1wp(&mut self, rt: impl OperandCast) {
4844        return self.emit_n(Opcode::AT_S1E1WP as _, &[rt.as_operand()]);
4845    }
4846    fn at_s1e2r(&mut self, rt: impl OperandCast) {
4847        return self.emit_n(Opcode::AT_S1E2R as _, &[rt.as_operand()]);
4848    }
4849    fn at_s1e2w(&mut self, rt: impl OperandCast) {
4850        return self.emit_n(Opcode::AT_S1E2W as _, &[rt.as_operand()]);
4851    }
4852    fn at_s12e1r(&mut self, rt: impl OperandCast) {
4853        return self.emit_n(Opcode::AT_S12E1R as _, &[rt.as_operand()]);
4854    }
4855    fn at_s12e1w(&mut self, rt: impl OperandCast) {
4856        return self.emit_n(Opcode::AT_S12E1W as _, &[rt.as_operand()]);
4857    }
4858    fn at_s12e0r(&mut self, rt: impl OperandCast) {
4859        return self.emit_n(Opcode::AT_S12E0R as _, &[rt.as_operand()]);
4860    }
4861    fn at_s12e0w(&mut self, rt: impl OperandCast) {
4862        return self.emit_n(Opcode::AT_S12E0W as _, &[rt.as_operand()]);
4863    }
4864    fn at_s1e3r(&mut self, rt: impl OperandCast) {
4865        return self.emit_n(Opcode::AT_S1E3R as _, &[rt.as_operand()]);
4866    }
4867    fn at_s1e3w(&mut self, rt: impl OperandCast) {
4868        return self.emit_n(Opcode::AT_S1E3W as _, &[rt.as_operand()]);
4869    }
4870    fn dc_ivac(&mut self, rt: impl OperandCast) {
4871        return self.emit_n(Opcode::DC_IVAC as _, &[rt.as_operand()]);
4872    }
4873    fn dc_isw(&mut self, rt: impl OperandCast) {
4874        return self.emit_n(Opcode::DC_ISW as _, &[rt.as_operand()]);
4875    }
4876    fn dc_igvac(&mut self, rt: impl OperandCast) {
4877        return self.emit_n(Opcode::DC_IGVAC as _, &[rt.as_operand()]);
4878    }
4879    fn dc_igsw(&mut self, rt: impl OperandCast) {
4880        return self.emit_n(Opcode::DC_IGSW as _, &[rt.as_operand()]);
4881    }
4882    fn dc_igdvac(&mut self, rt: impl OperandCast) {
4883        return self.emit_n(Opcode::DC_IGDVAC as _, &[rt.as_operand()]);
4884    }
4885    fn dc_igdsw(&mut self, rt: impl OperandCast) {
4886        return self.emit_n(Opcode::DC_IGDSW as _, &[rt.as_operand()]);
4887    }
4888    fn dc_csw(&mut self, rt: impl OperandCast) {
4889        return self.emit_n(Opcode::DC_CSW as _, &[rt.as_operand()]);
4890    }
4891    fn dc_cgsw(&mut self, rt: impl OperandCast) {
4892        return self.emit_n(Opcode::DC_CGSW as _, &[rt.as_operand()]);
4893    }
4894    fn dc_cgdsw(&mut self, rt: impl OperandCast) {
4895        return self.emit_n(Opcode::DC_CGDSW as _, &[rt.as_operand()]);
4896    }
4897    fn dc_cisw(&mut self, rt: impl OperandCast) {
4898        return self.emit_n(Opcode::DC_CISW as _, &[rt.as_operand()]);
4899    }
4900    fn dc_cigsw(&mut self, rt: impl OperandCast) {
4901        return self.emit_n(Opcode::DC_CIGSW as _, &[rt.as_operand()]);
4902    }
4903    fn dc_cigdsw(&mut self, rt: impl OperandCast) {
4904        return self.emit_n(Opcode::DC_CIGDSW as _, &[rt.as_operand()]);
4905    }
4906    fn dc_zva(&mut self, rt: impl OperandCast) {
4907        return self.emit_n(Opcode::DC_ZVA as _, &[rt.as_operand()]);
4908    }
4909    fn dc_gva(&mut self, rt: impl OperandCast) {
4910        return self.emit_n(Opcode::DC_GVA as _, &[rt.as_operand()]);
4911    }
4912    fn dc_gzva(&mut self, rt: impl OperandCast) {
4913        return self.emit_n(Opcode::DC_GZVA as _, &[rt.as_operand()]);
4914    }
4915    fn dc_cvac(&mut self, rt: impl OperandCast) {
4916        return self.emit_n(Opcode::DC_CVAC as _, &[rt.as_operand()]);
4917    }
4918    fn dc_cgvac(&mut self, rt: impl OperandCast) {
4919        return self.emit_n(Opcode::DC_CGVAC as _, &[rt.as_operand()]);
4920    }
4921    fn dc_cgdvac(&mut self, rt: impl OperandCast) {
4922        return self.emit_n(Opcode::DC_CGDVAC as _, &[rt.as_operand()]);
4923    }
4924    fn dc_cvau(&mut self, rt: impl OperandCast) {
4925        return self.emit_n(Opcode::DC_CVAU as _, &[rt.as_operand()]);
4926    }
4927    fn dc_cvap(&mut self, rt: impl OperandCast) {
4928        return self.emit_n(Opcode::DC_CVAP as _, &[rt.as_operand()]);
4929    }
4930    fn dc_cgvap(&mut self, rt: impl OperandCast) {
4931        return self.emit_n(Opcode::DC_CGVAP as _, &[rt.as_operand()]);
4932    }
4933    fn dc_cgdvap(&mut self, rt: impl OperandCast) {
4934        return self.emit_n(Opcode::DC_CGDVAP as _, &[rt.as_operand()]);
4935    }
4936    fn dc_cvadp(&mut self, rt: impl OperandCast) {
4937        return self.emit_n(Opcode::DC_CVADP as _, &[rt.as_operand()]);
4938    }
4939    fn dc_cgvadp(&mut self, rt: impl OperandCast) {
4940        return self.emit_n(Opcode::DC_CGVADP as _, &[rt.as_operand()]);
4941    }
4942    fn dc_cgdvadp(&mut self, rt: impl OperandCast) {
4943        return self.emit_n(Opcode::DC_CGDVADP as _, &[rt.as_operand()]);
4944    }
4945    fn dc_civac(&mut self, rt: impl OperandCast) {
4946        return self.emit_n(Opcode::DC_CIVAC as _, &[rt.as_operand()]);
4947    }
4948    fn dc_cigvac(&mut self, rt: impl OperandCast) {
4949        return self.emit_n(Opcode::DC_CIGVAC as _, &[rt.as_operand()]);
4950    }
4951    fn dc_cigdvac(&mut self, rt: impl OperandCast) {
4952        return self.emit_n(Opcode::DC_CIGDVAC as _, &[rt.as_operand()]);
4953    }
4954    fn ic_ialluis(&mut self) {
4955        return self.emit_n(Opcode::IC_IALLUIS as _, &[]);
4956    }
4957    fn ic_iallu(&mut self) {
4958        return self.emit_n(Opcode::IC_IALLU as _, &[]);
4959    }
4960    fn ic_ivau(&mut self, rt: impl OperandCast) {
4961        return self.emit_n(Opcode::IC_IVAU as _, &[rt.as_operand()]);
4962    }
4963    fn tlbi_vmalle1is(&mut self) {
4964        return self.emit_n(Opcode::TLBI_VMALLE1IS as _, &[]);
4965    }
4966    fn tlbi_vae1is(&mut self, rt: impl OperandCast) {
4967        return self.emit_n(Opcode::TLBI_VAE1IS as _, &[rt.as_operand()]);
4968    }
4969    fn tlbi_aside1is(&mut self, rt: impl OperandCast) {
4970        return self.emit_n(Opcode::TLBI_ASIDE1IS as _, &[rt.as_operand()]);
4971    }
4972    fn tlbi_vaae1is(&mut self, rt: impl OperandCast) {
4973        return self.emit_n(Opcode::TLBI_VAAE1IS as _, &[rt.as_operand()]);
4974    }
4975    fn tlbi_vale1is(&mut self, rt: impl OperandCast) {
4976        return self.emit_n(Opcode::TLBI_VALE1IS as _, &[rt.as_operand()]);
4977    }
4978    fn tlbi_vaale1is(&mut self, rt: impl OperandCast) {
4979        return self.emit_n(Opcode::TLBI_VAALE1IS as _, &[rt.as_operand()]);
4980    }
4981    fn tlbi_vmalle1(&mut self) {
4982        return self.emit_n(Opcode::TLBI_VMALLE1 as _, &[]);
4983    }
4984    fn tlbi_vae1(&mut self, rt: impl OperandCast) {
4985        return self.emit_n(Opcode::TLBI_VAE1 as _, &[rt.as_operand()]);
4986    }
4987    fn tlbi_aside1(&mut self, rt: impl OperandCast) {
4988        return self.emit_n(Opcode::TLBI_ASIDE1 as _, &[rt.as_operand()]);
4989    }
4990    fn tlbi_vaae1(&mut self, rt: impl OperandCast) {
4991        return self.emit_n(Opcode::TLBI_VAAE1 as _, &[rt.as_operand()]);
4992    }
4993    fn tlbi_vale1(&mut self, rt: impl OperandCast) {
4994        return self.emit_n(Opcode::TLBI_VALE1 as _, &[rt.as_operand()]);
4995    }
4996    fn tlbi_vaale1(&mut self, rt: impl OperandCast) {
4997        return self.emit_n(Opcode::TLBI_VAALE1 as _, &[rt.as_operand()]);
4998    }
4999    fn tlbi_ipas2e1is(&mut self, rt: impl OperandCast) {
5000        return self.emit_n(Opcode::TLBI_IPAS2E1IS as _, &[rt.as_operand()]);
5001    }
5002    fn tlbi_ipas2le1is(&mut self, rt: impl OperandCast) {
5003        return self.emit_n(Opcode::TLBI_IPAS2LE1IS as _, &[rt.as_operand()]);
5004    }
5005    fn tlbi_alle2is(&mut self) {
5006        return self.emit_n(Opcode::TLBI_ALLE2IS as _, &[]);
5007    }
5008    fn tlbi_vae2is(&mut self, rt: impl OperandCast) {
5009        return self.emit_n(Opcode::TLBI_VAE2IS as _, &[rt.as_operand()]);
5010    }
5011    fn tlbi_alle1is(&mut self) {
5012        return self.emit_n(Opcode::TLBI_ALLE1IS as _, &[]);
5013    }
5014    fn tlbi_vale2is(&mut self, rt: impl OperandCast) {
5015        return self.emit_n(Opcode::TLBI_VALE2IS as _, &[rt.as_operand()]);
5016    }
5017    fn tlbi_vmalls12e1is(&mut self) {
5018        return self.emit_n(Opcode::TLBI_VMALLS12E1IS as _, &[]);
5019    }
5020    fn tlbi_ipas2e1(&mut self, rt: impl OperandCast) {
5021        return self.emit_n(Opcode::TLBI_IPAS2E1 as _, &[rt.as_operand()]);
5022    }
5023    fn tlbi_ipas2le1(&mut self, rt: impl OperandCast) {
5024        return self.emit_n(Opcode::TLBI_IPAS2LE1 as _, &[rt.as_operand()]);
5025    }
5026    fn tlbi_alle2(&mut self) {
5027        return self.emit_n(Opcode::TLBI_ALLE2 as _, &[]);
5028    }
5029    fn tlbi_vae2(&mut self, rt: impl OperandCast) {
5030        return self.emit_n(Opcode::TLBI_VAE2 as _, &[rt.as_operand()]);
5031    }
5032    fn tlbi_alle1(&mut self) {
5033        return self.emit_n(Opcode::TLBI_ALLE1 as _, &[]);
5034    }
5035    fn tlbi_vale2(&mut self, rt: impl OperandCast) {
5036        return self.emit_n(Opcode::TLBI_VALE2 as _, &[rt.as_operand()]);
5037    }
5038    fn tlbi_vmalls12e1(&mut self) {
5039        return self.emit_n(Opcode::TLBI_VMALLS12E1 as _, &[]);
5040    }
5041    fn tlbi_alle3is(&mut self) {
5042        return self.emit_n(Opcode::TLBI_ALLE3IS as _, &[]);
5043    }
5044    fn tlbi_vae3is(&mut self, rt: impl OperandCast) {
5045        return self.emit_n(Opcode::TLBI_VAE3IS as _, &[rt.as_operand()]);
5046    }
5047    fn tlbi_vale3is(&mut self, rt: impl OperandCast) {
5048        return self.emit_n(Opcode::TLBI_VALE3IS as _, &[rt.as_operand()]);
5049    }
5050    fn tlbi_alle3(&mut self) {
5051        return self.emit_n(Opcode::TLBI_ALLE3 as _, &[]);
5052    }
5053    fn tlbi_vae3(&mut self, rt: impl OperandCast) {
5054        return self.emit_n(Opcode::TLBI_VAE3 as _, &[rt.as_operand()]);
5055    }
5056    fn tlbi_vale3(&mut self, rt: impl OperandCast) {
5057        return self.emit_n(Opcode::TLBI_VALE3 as _, &[rt.as_operand()]);
5058    }
5059    fn tlbi_vmalle1os(&mut self) {
5060        return self.emit_n(Opcode::TLBI_VMALLE1OS as _, &[]);
5061    }
5062    fn tlbi_vae1os(&mut self, rt: impl OperandCast) {
5063        return self.emit_n(Opcode::TLBI_VAE1OS as _, &[rt.as_operand()]);
5064    }
5065    fn tlbi_aside1os(&mut self, rt: impl OperandCast) {
5066        return self.emit_n(Opcode::TLBI_ASIDE1OS as _, &[rt.as_operand()]);
5067    }
5068    fn tlbi_vaae1os(&mut self, rt: impl OperandCast) {
5069        return self.emit_n(Opcode::TLBI_VAAE1OS as _, &[rt.as_operand()]);
5070    }
5071    fn tlbi_vale1os(&mut self, rt: impl OperandCast) {
5072        return self.emit_n(Opcode::TLBI_VALE1OS as _, &[rt.as_operand()]);
5073    }
5074    fn tlbi_vaale1os(&mut self, rt: impl OperandCast) {
5075        return self.emit_n(Opcode::TLBI_VAALE1OS as _, &[rt.as_operand()]);
5076    }
5077    fn tlbi_alle2os(&mut self) {
5078        return self.emit_n(Opcode::TLBI_ALLE2OS as _, &[]);
5079    }
5080    fn tlbi_vae2os(&mut self, rt: impl OperandCast) {
5081        return self.emit_n(Opcode::TLBI_VAE2OS as _, &[rt.as_operand()]);
5082    }
5083    fn tlbi_alle1os(&mut self) {
5084        return self.emit_n(Opcode::TLBI_ALLE1OS as _, &[]);
5085    }
5086    fn tlbi_vale2os(&mut self, rt: impl OperandCast) {
5087        return self.emit_n(Opcode::TLBI_VALE2OS as _, &[rt.as_operand()]);
5088    }
5089    fn tlbi_vmalls12e1os(&mut self) {
5090        return self.emit_n(Opcode::TLBI_VMALLS12E1OS as _, &[]);
5091    }
5092    fn tlbi_ipas2e1os(&mut self, rt: impl OperandCast) {
5093        return self.emit_n(Opcode::TLBI_IPAS2E1OS as _, &[rt.as_operand()]);
5094    }
5095    fn tlbi_ipas2le1os(&mut self, rt: impl OperandCast) {
5096        return self.emit_n(Opcode::TLBI_IPAS2LE1OS as _, &[rt.as_operand()]);
5097    }
5098    fn tlbi_alle3os(&mut self) {
5099        return self.emit_n(Opcode::TLBI_ALLE3OS as _, &[]);
5100    }
5101    fn tlbi_vae3os(&mut self, rt: impl OperandCast) {
5102        return self.emit_n(Opcode::TLBI_VAE3OS as _, &[rt.as_operand()]);
5103    }
5104    fn tlbi_vale3os(&mut self, rt: impl OperandCast) {
5105        return self.emit_n(Opcode::TLBI_VALE3OS as _, &[rt.as_operand()]);
5106    }
5107    fn tlbi_rvae1is(&mut self, rt: impl OperandCast) {
5108        return self.emit_n(Opcode::TLBI_RVAE1IS as _, &[rt.as_operand()]);
5109    }
5110    fn tlbi_rvaae1is(&mut self, rt: impl OperandCast) {
5111        return self.emit_n(Opcode::TLBI_RVAAE1IS as _, &[rt.as_operand()]);
5112    }
5113    fn tlbi_rvale1is(&mut self, rt: impl OperandCast) {
5114        return self.emit_n(Opcode::TLBI_RVALE1IS as _, &[rt.as_operand()]);
5115    }
5116    fn tlbi_rvaale1is(&mut self, rt: impl OperandCast) {
5117        return self.emit_n(Opcode::TLBI_RVAALE1IS as _, &[rt.as_operand()]);
5118    }
5119    fn tlbi_rvae1os(&mut self, rt: impl OperandCast) {
5120        return self.emit_n(Opcode::TLBI_RVAE1OS as _, &[rt.as_operand()]);
5121    }
5122    fn tlbi_rvaae1os(&mut self, rt: impl OperandCast) {
5123        return self.emit_n(Opcode::TLBI_RVAAE1OS as _, &[rt.as_operand()]);
5124    }
5125    fn tlbi_rvale1os(&mut self, rt: impl OperandCast) {
5126        return self.emit_n(Opcode::TLBI_RVALE1OS as _, &[rt.as_operand()]);
5127    }
5128    fn tlbi_rvaale1os(&mut self, rt: impl OperandCast) {
5129        return self.emit_n(Opcode::TLBI_RVAALE1OS as _, &[rt.as_operand()]);
5130    }
5131    fn tlbi_rvae1(&mut self, rt: impl OperandCast) {
5132        return self.emit_n(Opcode::TLBI_RVAE1 as _, &[rt.as_operand()]);
5133    }
5134    fn tlbi_rvaae1(&mut self, rt: impl OperandCast) {
5135        return self.emit_n(Opcode::TLBI_RVAAE1 as _, &[rt.as_operand()]);
5136    }
5137    fn tlbi_rvale1(&mut self, rt: impl OperandCast) {
5138        return self.emit_n(Opcode::TLBI_RVALE1 as _, &[rt.as_operand()]);
5139    }
5140    fn tlbi_rvaale1(&mut self, rt: impl OperandCast) {
5141        return self.emit_n(Opcode::TLBI_RVAALE1 as _, &[rt.as_operand()]);
5142    }
5143    fn tlbi_ripas2e1is(&mut self, rt: impl OperandCast) {
5144        return self.emit_n(Opcode::TLBI_RIPAS2E1IS as _, &[rt.as_operand()]);
5145    }
5146    fn tlbi_ripas2le1is(&mut self, rt: impl OperandCast) {
5147        return self.emit_n(Opcode::TLBI_RIPAS2LE1IS as _, &[rt.as_operand()]);
5148    }
5149    fn tlbi_rvae2is(&mut self, rt: impl OperandCast) {
5150        return self.emit_n(Opcode::TLBI_RVAE2IS as _, &[rt.as_operand()]);
5151    }
5152    fn tlbi_rvale2is(&mut self, rt: impl OperandCast) {
5153        return self.emit_n(Opcode::TLBI_RVALE2IS as _, &[rt.as_operand()]);
5154    }
5155    fn tlbi_ripas2e1(&mut self, rt: impl OperandCast) {
5156        return self.emit_n(Opcode::TLBI_RIPAS2E1 as _, &[rt.as_operand()]);
5157    }
5158    fn tlbi_ripas2e1os(&mut self, rt: impl OperandCast) {
5159        return self.emit_n(Opcode::TLBI_RIPAS2E1OS as _, &[rt.as_operand()]);
5160    }
5161    fn tlbi_ripas2le1(&mut self, rt: impl OperandCast) {
5162        return self.emit_n(Opcode::TLBI_RIPAS2LE1 as _, &[rt.as_operand()]);
5163    }
5164    fn tlbi_ripas2le1os(&mut self, rt: impl OperandCast) {
5165        return self.emit_n(Opcode::TLBI_RIPAS2LE1OS as _, &[rt.as_operand()]);
5166    }
5167    fn tlbi_rvae2os(&mut self, rt: impl OperandCast) {
5168        return self.emit_n(Opcode::TLBI_RVAE2OS as _, &[rt.as_operand()]);
5169    }
5170    fn tlbi_rvale2os(&mut self, rt: impl OperandCast) {
5171        return self.emit_n(Opcode::TLBI_RVALE2OS as _, &[rt.as_operand()]);
5172    }
5173    fn tlbi_rvae2(&mut self, rt: impl OperandCast) {
5174        return self.emit_n(Opcode::TLBI_RVAE2 as _, &[rt.as_operand()]);
5175    }
5176    fn tlbi_rvale2(&mut self, rt: impl OperandCast) {
5177        return self.emit_n(Opcode::TLBI_RVALE2 as _, &[rt.as_operand()]);
5178    }
5179    fn tlbi_rvae3is(&mut self, rt: impl OperandCast) {
5180        return self.emit_n(Opcode::TLBI_RVAE3IS as _, &[rt.as_operand()]);
5181    }
5182    fn tlbi_rvale3is(&mut self, rt: impl OperandCast) {
5183        return self.emit_n(Opcode::TLBI_RVALE3IS as _, &[rt.as_operand()]);
5184    }
5185    fn tlbi_rvae3os(&mut self, rt: impl OperandCast) {
5186        return self.emit_n(Opcode::TLBI_RVAE3OS as _, &[rt.as_operand()]);
5187    }
5188    fn tlbi_rvale3os(&mut self, rt: impl OperandCast) {
5189        return self.emit_n(Opcode::TLBI_RVALE3OS as _, &[rt.as_operand()]);
5190    }
5191    fn tlbi_rvae3(&mut self, rt: impl OperandCast) {
5192        return self.emit_n(Opcode::TLBI_RVAE3 as _, &[rt.as_operand()]);
5193    }
5194    fn tlbi_rvale3(&mut self, rt: impl OperandCast) {
5195        return self.emit_n(Opcode::TLBI_RVALE3 as _, &[rt.as_operand()]);
5196    }
5197    fn msr(&mut self, sysreg: impl OperandCast, rt: impl OperandCast) {
5198        return self.emit_n(Opcode::MSR as _, &[sysreg.as_operand(), rt.as_operand()]);
5199    }
5200    fn mrs(&mut self, rt: impl OperandCast, sysreg: impl OperandCast) {
5201        return self.emit_n(Opcode::MRS as _, &[rt.as_operand(), sysreg.as_operand()]);
5202    }
5203    fn msri(&mut self, op1: impl OperandCast, op2: impl OperandCast, crm: impl OperandCast) {
5204        return self.emit_n(
5205            Opcode::MSRi as _,
5206            &[op1.as_operand(), op2.as_operand(), crm.as_operand()],
5207        );
5208    }
5209    fn msri_uao(&mut self, crm: impl OperandCast) {
5210        return self.emit_n(Opcode::MSRi_UAO as _, &[crm.as_operand()]);
5211    }
5212    fn msri_pan(&mut self, crm: impl OperandCast) {
5213        return self.emit_n(Opcode::MSRi_PAN as _, &[crm.as_operand()]);
5214    }
5215    fn msri_spsel(&mut self, crm: impl OperandCast) {
5216        return self.emit_n(Opcode::MSRi_SPSel as _, &[crm.as_operand()]);
5217    }
5218    fn msri_ssbs(&mut self, crm: impl OperandCast) {
5219        return self.emit_n(Opcode::MSRi_SSBS as _, &[crm.as_operand()]);
5220    }
5221    fn msri_dit(&mut self, crm: impl OperandCast) {
5222        return self.emit_n(Opcode::MSRi_DIT as _, &[crm.as_operand()]);
5223    }
5224    fn msri_tco(&mut self, crm: impl OperandCast) {
5225        return self.emit_n(Opcode::MSRi_TCO as _, &[crm.as_operand()]);
5226    }
5227    fn msri_daifset(&mut self, crm: impl OperandCast) {
5228        return self.emit_n(Opcode::MSRi_DAIFSet as _, &[crm.as_operand()]);
5229    }
5230    fn msri_daifclr(&mut self, crm: impl OperandCast) {
5231        return self.emit_n(Opcode::MSRi_DAIFClr as _, &[crm.as_operand()]);
5232    }
5233    fn msri_allint(&mut self, crm: impl OperandCast) {
5234        return self.emit_n(Opcode::MSRi_ALLINT as _, &[crm.as_operand()]);
5235    }
5236    fn msri_pm(&mut self, crm: impl OperandCast) {
5237        return self.emit_n(Opcode::MSRi_PM as _, &[crm.as_operand()]);
5238    }
5239    fn rbitw(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
5240        return self.emit_n(Opcode::RBITw as _, &[rd.as_operand(), rn.as_operand()]);
5241    }
5242    fn rev16w(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
5243        return self.emit_n(Opcode::REV16w as _, &[rd.as_operand(), rn.as_operand()]);
5244    }
5245    fn rev32w(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
5246        return self.emit_n(Opcode::REV32w as _, &[rd.as_operand(), rn.as_operand()]);
5247    }
5248    fn rbitx(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
5249        return self.emit_n(Opcode::RBITx as _, &[rd.as_operand(), rn.as_operand()]);
5250    }
5251    fn rev16x(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
5252        return self.emit_n(Opcode::REV16x as _, &[rd.as_operand(), rn.as_operand()]);
5253    }
5254    fn rev32x(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
5255        return self.emit_n(Opcode::REV32x as _, &[rd.as_operand(), rn.as_operand()]);
5256    }
5257    fn rev64x(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
5258        return self.emit_n(Opcode::REV64x as _, &[rd.as_operand(), rn.as_operand()]);
5259    }
5260    fn udivw(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
5261        return self.emit_n(
5262            Opcode::UDIVw as _,
5263            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
5264        );
5265    }
5266    fn sdivw(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
5267        return self.emit_n(
5268            Opcode::SDIVw as _,
5269            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
5270        );
5271    }
5272    fn udivx(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
5273        return self.emit_n(
5274            Opcode::UDIVx as _,
5275            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
5276        );
5277    }
5278    fn sdivx(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
5279        return self.emit_n(
5280            Opcode::SDIVx as _,
5281            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
5282        );
5283    }
5284    fn stllrb(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
5285        return self.emit_n(Opcode::STLLRB as _, &[rt.as_operand(), rn.as_operand()]);
5286    }
5287    fn stlrb(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
5288        return self.emit_n(Opcode::STLRB as _, &[rt.as_operand(), rn.as_operand()]);
5289    }
5290    fn ldlarb(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
5291        return self.emit_n(Opcode::LDLARB as _, &[rt.as_operand(), rn.as_operand()]);
5292    }
5293    fn ldarb(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
5294        return self.emit_n(Opcode::LDARB as _, &[rt.as_operand(), rn.as_operand()]);
5295    }
5296    fn stllrh(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
5297        return self.emit_n(Opcode::STLLRH as _, &[rt.as_operand(), rn.as_operand()]);
5298    }
5299    fn stlrh(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
5300        return self.emit_n(Opcode::STLRH as _, &[rt.as_operand(), rn.as_operand()]);
5301    }
5302    fn ldlarh(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
5303        return self.emit_n(Opcode::LDLARH as _, &[rt.as_operand(), rn.as_operand()]);
5304    }
5305    fn ldarh(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
5306        return self.emit_n(Opcode::LDARH as _, &[rt.as_operand(), rn.as_operand()]);
5307    }
5308    fn stllrw(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
5309        return self.emit_n(Opcode::STLLRw as _, &[rt.as_operand(), rn.as_operand()]);
5310    }
5311    fn stlrw(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
5312        return self.emit_n(Opcode::STLRw as _, &[rt.as_operand(), rn.as_operand()]);
5313    }
5314    fn ldlarw(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
5315        return self.emit_n(Opcode::LDLARw as _, &[rt.as_operand(), rn.as_operand()]);
5316    }
5317    fn ldarw(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
5318        return self.emit_n(Opcode::LDARw as _, &[rt.as_operand(), rn.as_operand()]);
5319    }
5320    fn stllrx(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
5321        return self.emit_n(Opcode::STLLRx as _, &[rt.as_operand(), rn.as_operand()]);
5322    }
5323    fn stlrx(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
5324        return self.emit_n(Opcode::STLRx as _, &[rt.as_operand(), rn.as_operand()]);
5325    }
5326    fn ldlarx(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
5327        return self.emit_n(Opcode::LDLARx as _, &[rt.as_operand(), rn.as_operand()]);
5328    }
5329    fn ldarx(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
5330        return self.emit_n(Opcode::LDARx as _, &[rt.as_operand(), rn.as_operand()]);
5331    }
5332    fn stxrbw(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
5333        return self.emit_n(
5334            Opcode::STXRBw as _,
5335            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
5336        );
5337    }
5338    fn stlxrbw(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
5339        return self.emit_n(
5340            Opcode::STLXRBw as _,
5341            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
5342        );
5343    }
5344    fn ldxrbw(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
5345        return self.emit_n(Opcode::LDXRBw as _, &[rt.as_operand(), rn.as_operand()]);
5346    }
5347    fn ldaxrbw(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
5348        return self.emit_n(Opcode::LDAXRBw as _, &[rt.as_operand(), rn.as_operand()]);
5349    }
5350    fn stxrhw(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
5351        return self.emit_n(
5352            Opcode::STXRHw as _,
5353            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
5354        );
5355    }
5356    fn stlxrhw(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
5357        return self.emit_n(
5358            Opcode::STLXRHw as _,
5359            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
5360        );
5361    }
5362    fn ldxrhw(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
5363        return self.emit_n(Opcode::LDXRHw as _, &[rt.as_operand(), rn.as_operand()]);
5364    }
5365    fn ldaxrhw(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
5366        return self.emit_n(Opcode::LDAXRHw as _, &[rt.as_operand(), rn.as_operand()]);
5367    }
5368    fn stxrw(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
5369        return self.emit_n(
5370            Opcode::STXRw as _,
5371            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
5372        );
5373    }
5374    fn stlxrw(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
5375        return self.emit_n(
5376            Opcode::STLXRw as _,
5377            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
5378        );
5379    }
5380    fn stxpw(
5381        &mut self,
5382        rs: impl OperandCast,
5383        rt: impl OperandCast,
5384        rt2: impl OperandCast,
5385        rn: impl OperandCast,
5386    ) {
5387        return self.emit_n(
5388            Opcode::STXPw as _,
5389            &[
5390                rs.as_operand(),
5391                rt.as_operand(),
5392                rt2.as_operand(),
5393                rn.as_operand(),
5394            ],
5395        );
5396    }
5397    fn stlxpw(
5398        &mut self,
5399        rs: impl OperandCast,
5400        rt: impl OperandCast,
5401        rt2: impl OperandCast,
5402        rn: impl OperandCast,
5403    ) {
5404        return self.emit_n(
5405            Opcode::STLXPw as _,
5406            &[
5407                rs.as_operand(),
5408                rt.as_operand(),
5409                rt2.as_operand(),
5410                rn.as_operand(),
5411            ],
5412        );
5413    }
5414    fn ldxrw(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
5415        return self.emit_n(Opcode::LDXRw as _, &[rt.as_operand(), rn.as_operand()]);
5416    }
5417    fn ldaxrw(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
5418        return self.emit_n(Opcode::LDAXRw as _, &[rt.as_operand(), rn.as_operand()]);
5419    }
5420    fn ldxpw(&mut self, rt: impl OperandCast, rt2: impl OperandCast, rn: impl OperandCast) {
5421        return self.emit_n(
5422            Opcode::LDXPw as _,
5423            &[rt.as_operand(), rt2.as_operand(), rn.as_operand()],
5424        );
5425    }
5426    fn ldaxpw(&mut self, rt: impl OperandCast, rt2: impl OperandCast, rn: impl OperandCast) {
5427        return self.emit_n(
5428            Opcode::LDAXPw as _,
5429            &[rt.as_operand(), rt2.as_operand(), rn.as_operand()],
5430        );
5431    }
5432    fn stxrx(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
5433        return self.emit_n(
5434            Opcode::STXRx as _,
5435            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
5436        );
5437    }
5438    fn stlxrx(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
5439        return self.emit_n(
5440            Opcode::STLXRx as _,
5441            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
5442        );
5443    }
5444    fn stxpx(
5445        &mut self,
5446        rs: impl OperandCast,
5447        rt: impl OperandCast,
5448        rt2: impl OperandCast,
5449        rn: impl OperandCast,
5450    ) {
5451        return self.emit_n(
5452            Opcode::STXPx as _,
5453            &[
5454                rs.as_operand(),
5455                rt.as_operand(),
5456                rt2.as_operand(),
5457                rn.as_operand(),
5458            ],
5459        );
5460    }
5461    fn stlxpx(
5462        &mut self,
5463        rs: impl OperandCast,
5464        rt: impl OperandCast,
5465        rt2: impl OperandCast,
5466        rn: impl OperandCast,
5467    ) {
5468        return self.emit_n(
5469            Opcode::STLXPx as _,
5470            &[
5471                rs.as_operand(),
5472                rt.as_operand(),
5473                rt2.as_operand(),
5474                rn.as_operand(),
5475            ],
5476        );
5477    }
5478    fn ldxrx(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
5479        return self.emit_n(Opcode::LDXRx as _, &[rt.as_operand(), rn.as_operand()]);
5480    }
5481    fn ldaxrx(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
5482        return self.emit_n(Opcode::LDAXRx as _, &[rt.as_operand(), rn.as_operand()]);
5483    }
5484    fn ldxpx(&mut self, rt: impl OperandCast, rt2: impl OperandCast, rn: impl OperandCast) {
5485        return self.emit_n(
5486            Opcode::LDXPx as _,
5487            &[rt.as_operand(), rt2.as_operand(), rn.as_operand()],
5488        );
5489    }
5490    fn ldaxpx(&mut self, rt: impl OperandCast, rt2: impl OperandCast, rn: impl OperandCast) {
5491        return self.emit_n(
5492            Opcode::LDAXPx as _,
5493            &[rt.as_operand(), rt2.as_operand(), rn.as_operand()],
5494        );
5495    }
5496    fn stnpw(
5497        &mut self,
5498        rt: impl OperandCast,
5499        rt2: impl OperandCast,
5500        rn: impl OperandCast,
5501        imm7: impl OperandCast,
5502    ) {
5503        return self.emit_n(
5504            Opcode::STNPw as _,
5505            &[
5506                rt.as_operand(),
5507                rt2.as_operand(),
5508                rn.as_operand(),
5509                imm7.as_operand(),
5510            ],
5511        );
5512    }
5513    fn ldnpw(
5514        &mut self,
5515        rt: impl OperandCast,
5516        rt2: impl OperandCast,
5517        rn: impl OperandCast,
5518        imm7: impl OperandCast,
5519    ) {
5520        return self.emit_n(
5521            Opcode::LDNPw as _,
5522            &[
5523                rt.as_operand(),
5524                rt2.as_operand(),
5525                rn.as_operand(),
5526                imm7.as_operand(),
5527            ],
5528        );
5529    }
5530    fn stnpx(
5531        &mut self,
5532        rt: impl OperandCast,
5533        rt2: impl OperandCast,
5534        rn: impl OperandCast,
5535        imm7: impl OperandCast,
5536    ) {
5537        return self.emit_n(
5538            Opcode::STNPx as _,
5539            &[
5540                rt.as_operand(),
5541                rt2.as_operand(),
5542                rn.as_operand(),
5543                imm7.as_operand(),
5544            ],
5545        );
5546    }
5547    fn ldnpx(
5548        &mut self,
5549        rt: impl OperandCast,
5550        rt2: impl OperandCast,
5551        rn: impl OperandCast,
5552        imm7: impl OperandCast,
5553    ) {
5554        return self.emit_n(
5555            Opcode::LDNPx as _,
5556            &[
5557                rt.as_operand(),
5558                rt2.as_operand(),
5559                rn.as_operand(),
5560                imm7.as_operand(),
5561            ],
5562        );
5563    }
5564    fn stpw_post(
5565        &mut self,
5566        rt: impl OperandCast,
5567        rt2: impl OperandCast,
5568        rn: impl OperandCast,
5569        imm7: impl OperandCast,
5570    ) {
5571        return self.emit_n(
5572            Opcode::STPw_post as _,
5573            &[
5574                rt.as_operand(),
5575                rt2.as_operand(),
5576                rn.as_operand(),
5577                imm7.as_operand(),
5578            ],
5579        );
5580    }
5581    fn ldpw_post(
5582        &mut self,
5583        rt: impl OperandCast,
5584        rt2: impl OperandCast,
5585        rn: impl OperandCast,
5586        imm7: impl OperandCast,
5587    ) {
5588        return self.emit_n(
5589            Opcode::LDPw_post as _,
5590            &[
5591                rt.as_operand(),
5592                rt2.as_operand(),
5593                rn.as_operand(),
5594                imm7.as_operand(),
5595            ],
5596        );
5597    }
5598    fn stpw(
5599        &mut self,
5600        rt: impl OperandCast,
5601        rt2: impl OperandCast,
5602        rn: impl OperandCast,
5603        imm7: impl OperandCast,
5604    ) {
5605        return self.emit_n(
5606            Opcode::STPw as _,
5607            &[
5608                rt.as_operand(),
5609                rt2.as_operand(),
5610                rn.as_operand(),
5611                imm7.as_operand(),
5612            ],
5613        );
5614    }
5615    fn ldpw(
5616        &mut self,
5617        rt: impl OperandCast,
5618        rt2: impl OperandCast,
5619        rn: impl OperandCast,
5620        imm7: impl OperandCast,
5621    ) {
5622        return self.emit_n(
5623            Opcode::LDPw as _,
5624            &[
5625                rt.as_operand(),
5626                rt2.as_operand(),
5627                rn.as_operand(),
5628                imm7.as_operand(),
5629            ],
5630        );
5631    }
5632    fn stpw_pre(
5633        &mut self,
5634        rt: impl OperandCast,
5635        rt2: impl OperandCast,
5636        rn: impl OperandCast,
5637        imm7: impl OperandCast,
5638    ) {
5639        return self.emit_n(
5640            Opcode::STPw_pre as _,
5641            &[
5642                rt.as_operand(),
5643                rt2.as_operand(),
5644                rn.as_operand(),
5645                imm7.as_operand(),
5646            ],
5647        );
5648    }
5649    fn ldpw_pre(
5650        &mut self,
5651        rt: impl OperandCast,
5652        rt2: impl OperandCast,
5653        rn: impl OperandCast,
5654        imm7: impl OperandCast,
5655    ) {
5656        return self.emit_n(
5657            Opcode::LDPw_pre as _,
5658            &[
5659                rt.as_operand(),
5660                rt2.as_operand(),
5661                rn.as_operand(),
5662                imm7.as_operand(),
5663            ],
5664        );
5665    }
5666    fn stgp_post(
5667        &mut self,
5668        rt: impl OperandCast,
5669        rt2: impl OperandCast,
5670        rn: impl OperandCast,
5671        imm7: impl OperandCast,
5672    ) {
5673        return self.emit_n(
5674            Opcode::STGP_post as _,
5675            &[
5676                rt.as_operand(),
5677                rt2.as_operand(),
5678                rn.as_operand(),
5679                imm7.as_operand(),
5680            ],
5681        );
5682    }
5683    fn ldpsw_post(
5684        &mut self,
5685        rt: impl OperandCast,
5686        rt2: impl OperandCast,
5687        rn: impl OperandCast,
5688        imm7: impl OperandCast,
5689    ) {
5690        return self.emit_n(
5691            Opcode::LDPSW_post as _,
5692            &[
5693                rt.as_operand(),
5694                rt2.as_operand(),
5695                rn.as_operand(),
5696                imm7.as_operand(),
5697            ],
5698        );
5699    }
5700    fn stgp(
5701        &mut self,
5702        rt: impl OperandCast,
5703        rt2: impl OperandCast,
5704        rn: impl OperandCast,
5705        imm7: impl OperandCast,
5706    ) {
5707        return self.emit_n(
5708            Opcode::STGP as _,
5709            &[
5710                rt.as_operand(),
5711                rt2.as_operand(),
5712                rn.as_operand(),
5713                imm7.as_operand(),
5714            ],
5715        );
5716    }
5717    fn ldpsw(
5718        &mut self,
5719        rt: impl OperandCast,
5720        rt2: impl OperandCast,
5721        rn: impl OperandCast,
5722        imm7: impl OperandCast,
5723    ) {
5724        return self.emit_n(
5725            Opcode::LDPSW as _,
5726            &[
5727                rt.as_operand(),
5728                rt2.as_operand(),
5729                rn.as_operand(),
5730                imm7.as_operand(),
5731            ],
5732        );
5733    }
5734    fn stgp_pre(
5735        &mut self,
5736        rt: impl OperandCast,
5737        rt2: impl OperandCast,
5738        rn: impl OperandCast,
5739        imm7: impl OperandCast,
5740    ) {
5741        return self.emit_n(
5742            Opcode::STGP_pre as _,
5743            &[
5744                rt.as_operand(),
5745                rt2.as_operand(),
5746                rn.as_operand(),
5747                imm7.as_operand(),
5748            ],
5749        );
5750    }
5751    fn ldpsw_pre(
5752        &mut self,
5753        rt: impl OperandCast,
5754        rt2: impl OperandCast,
5755        rn: impl OperandCast,
5756        imm7: impl OperandCast,
5757    ) {
5758        return self.emit_n(
5759            Opcode::LDPSW_pre as _,
5760            &[
5761                rt.as_operand(),
5762                rt2.as_operand(),
5763                rn.as_operand(),
5764                imm7.as_operand(),
5765            ],
5766        );
5767    }
5768    fn stpx_post(
5769        &mut self,
5770        rt: impl OperandCast,
5771        rt2: impl OperandCast,
5772        rn: impl OperandCast,
5773        imm7: impl OperandCast,
5774    ) {
5775        return self.emit_n(
5776            Opcode::STPx_post as _,
5777            &[
5778                rt.as_operand(),
5779                rt2.as_operand(),
5780                rn.as_operand(),
5781                imm7.as_operand(),
5782            ],
5783        );
5784    }
5785    fn ldpx_post(
5786        &mut self,
5787        rt: impl OperandCast,
5788        rt2: impl OperandCast,
5789        rn: impl OperandCast,
5790        imm7: impl OperandCast,
5791    ) {
5792        return self.emit_n(
5793            Opcode::LDPx_post as _,
5794            &[
5795                rt.as_operand(),
5796                rt2.as_operand(),
5797                rn.as_operand(),
5798                imm7.as_operand(),
5799            ],
5800        );
5801    }
5802    fn stpx(
5803        &mut self,
5804        rt: impl OperandCast,
5805        rt2: impl OperandCast,
5806        rn: impl OperandCast,
5807        imm7: impl OperandCast,
5808    ) {
5809        return self.emit_n(
5810            Opcode::STPx as _,
5811            &[
5812                rt.as_operand(),
5813                rt2.as_operand(),
5814                rn.as_operand(),
5815                imm7.as_operand(),
5816            ],
5817        );
5818    }
5819    fn ldpx(
5820        &mut self,
5821        rt: impl OperandCast,
5822        rt2: impl OperandCast,
5823        rn: impl OperandCast,
5824        imm7: impl OperandCast,
5825    ) {
5826        return self.emit_n(
5827            Opcode::LDPx as _,
5828            &[
5829                rt.as_operand(),
5830                rt2.as_operand(),
5831                rn.as_operand(),
5832                imm7.as_operand(),
5833            ],
5834        );
5835    }
5836    fn stpx_pre(
5837        &mut self,
5838        rt: impl OperandCast,
5839        rt2: impl OperandCast,
5840        rn: impl OperandCast,
5841        imm7: impl OperandCast,
5842    ) {
5843        return self.emit_n(
5844            Opcode::STPx_pre as _,
5845            &[
5846                rt.as_operand(),
5847                rt2.as_operand(),
5848                rn.as_operand(),
5849                imm7.as_operand(),
5850            ],
5851        );
5852    }
5853    fn ldpx_pre(
5854        &mut self,
5855        rt: impl OperandCast,
5856        rt2: impl OperandCast,
5857        rn: impl OperandCast,
5858        imm7: impl OperandCast,
5859    ) {
5860        return self.emit_n(
5861            Opcode::LDPx_pre as _,
5862            &[
5863                rt.as_operand(),
5864                rt2.as_operand(),
5865                rn.as_operand(),
5866                imm7.as_operand(),
5867            ],
5868        );
5869    }
5870    fn sturb(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm9: impl OperandCast) {
5871        return self.emit_n(
5872            Opcode::STURB as _,
5873            &[rt.as_operand(), rn.as_operand(), imm9.as_operand()],
5874        );
5875    }
5876    fn strb_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm9: impl OperandCast) {
5877        return self.emit_n(
5878            Opcode::STRB_post as _,
5879            &[rt.as_operand(), rn.as_operand(), imm9.as_operand()],
5880        );
5881    }
5882    fn sttrb(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm9: impl OperandCast) {
5883        return self.emit_n(
5884            Opcode::STTRB as _,
5885            &[rt.as_operand(), rn.as_operand(), imm9.as_operand()],
5886        );
5887    }
5888    fn strb_pre(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm9: impl OperandCast) {
5889        return self.emit_n(
5890            Opcode::STRB_pre as _,
5891            &[rt.as_operand(), rn.as_operand(), imm9.as_operand()],
5892        );
5893    }
5894    fn ldurb(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm9: impl OperandCast) {
5895        return self.emit_n(
5896            Opcode::LDURB as _,
5897            &[rt.as_operand(), rn.as_operand(), imm9.as_operand()],
5898        );
5899    }
5900    fn ldrb_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm9: impl OperandCast) {
5901        return self.emit_n(
5902            Opcode::LDRB_post as _,
5903            &[rt.as_operand(), rn.as_operand(), imm9.as_operand()],
5904        );
5905    }
5906    fn ldtrb(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm9: impl OperandCast) {
5907        return self.emit_n(
5908            Opcode::LDTRB as _,
5909            &[rt.as_operand(), rn.as_operand(), imm9.as_operand()],
5910        );
5911    }
5912    fn ldrb_pre(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm9: impl OperandCast) {
5913        return self.emit_n(
5914            Opcode::LDRB_pre as _,
5915            &[rt.as_operand(), rn.as_operand(), imm9.as_operand()],
5916        );
5917    }
5918    fn ldursbx(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm9: impl OperandCast) {
5919        return self.emit_n(
5920            Opcode::LDURSBx as _,
5921            &[rt.as_operand(), rn.as_operand(), imm9.as_operand()],
5922        );
5923    }
5924    fn ldrsbx_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm9: impl OperandCast) {
5925        return self.emit_n(
5926            Opcode::LDRSBx_post as _,
5927            &[rt.as_operand(), rn.as_operand(), imm9.as_operand()],
5928        );
5929    }
5930    fn ldtrsbx(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm9: impl OperandCast) {
5931        return self.emit_n(
5932            Opcode::LDTRSBx as _,
5933            &[rt.as_operand(), rn.as_operand(), imm9.as_operand()],
5934        );
5935    }
5936    fn ldrsbx_pre(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm9: impl OperandCast) {
5937        return self.emit_n(
5938            Opcode::LDRSBx_pre as _,
5939            &[rt.as_operand(), rn.as_operand(), imm9.as_operand()],
5940        );
5941    }
5942    fn ldursbw(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm9: impl OperandCast) {
5943        return self.emit_n(
5944            Opcode::LDURSBw as _,
5945            &[rt.as_operand(), rn.as_operand(), imm9.as_operand()],
5946        );
5947    }
5948    fn ldrsbw_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm9: impl OperandCast) {
5949        return self.emit_n(
5950            Opcode::LDRSBw_post as _,
5951            &[rt.as_operand(), rn.as_operand(), imm9.as_operand()],
5952        );
5953    }
5954    fn ldtrsbw(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm9: impl OperandCast) {
5955        return self.emit_n(
5956            Opcode::LDTRSBw as _,
5957            &[rt.as_operand(), rn.as_operand(), imm9.as_operand()],
5958        );
5959    }
5960    fn ldrsbw_pre(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm9: impl OperandCast) {
5961        return self.emit_n(
5962            Opcode::LDRSBw_pre as _,
5963            &[rt.as_operand(), rn.as_operand(), imm9.as_operand()],
5964        );
5965    }
5966    fn sturh(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm9: impl OperandCast) {
5967        return self.emit_n(
5968            Opcode::STURH as _,
5969            &[rt.as_operand(), rn.as_operand(), imm9.as_operand()],
5970        );
5971    }
5972    fn strh_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm9: impl OperandCast) {
5973        return self.emit_n(
5974            Opcode::STRH_post as _,
5975            &[rt.as_operand(), rn.as_operand(), imm9.as_operand()],
5976        );
5977    }
5978    fn sttrh(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm9: impl OperandCast) {
5979        return self.emit_n(
5980            Opcode::STTRH as _,
5981            &[rt.as_operand(), rn.as_operand(), imm9.as_operand()],
5982        );
5983    }
5984    fn strh_pre(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm9: impl OperandCast) {
5985        return self.emit_n(
5986            Opcode::STRH_pre as _,
5987            &[rt.as_operand(), rn.as_operand(), imm9.as_operand()],
5988        );
5989    }
5990    fn ldurh(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm9: impl OperandCast) {
5991        return self.emit_n(
5992            Opcode::LDURH as _,
5993            &[rt.as_operand(), rn.as_operand(), imm9.as_operand()],
5994        );
5995    }
5996    fn ldrh_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm9: impl OperandCast) {
5997        return self.emit_n(
5998            Opcode::LDRH_post as _,
5999            &[rt.as_operand(), rn.as_operand(), imm9.as_operand()],
6000        );
6001    }
6002    fn ldtrh(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm9: impl OperandCast) {
6003        return self.emit_n(
6004            Opcode::LDTRH as _,
6005            &[rt.as_operand(), rn.as_operand(), imm9.as_operand()],
6006        );
6007    }
6008    fn ldrh_pre(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm9: impl OperandCast) {
6009        return self.emit_n(
6010            Opcode::LDRH_pre as _,
6011            &[rt.as_operand(), rn.as_operand(), imm9.as_operand()],
6012        );
6013    }
6014    fn ldurshx(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm9: impl OperandCast) {
6015        return self.emit_n(
6016            Opcode::LDURSHx as _,
6017            &[rt.as_operand(), rn.as_operand(), imm9.as_operand()],
6018        );
6019    }
6020    fn ldrshx_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm9: impl OperandCast) {
6021        return self.emit_n(
6022            Opcode::LDRSHx_post as _,
6023            &[rt.as_operand(), rn.as_operand(), imm9.as_operand()],
6024        );
6025    }
6026    fn ldtrshx(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm9: impl OperandCast) {
6027        return self.emit_n(
6028            Opcode::LDTRSHx as _,
6029            &[rt.as_operand(), rn.as_operand(), imm9.as_operand()],
6030        );
6031    }
6032    fn ldrshx_pre(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm9: impl OperandCast) {
6033        return self.emit_n(
6034            Opcode::LDRSHx_pre as _,
6035            &[rt.as_operand(), rn.as_operand(), imm9.as_operand()],
6036        );
6037    }
6038    fn ldurshw(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm9: impl OperandCast) {
6039        return self.emit_n(
6040            Opcode::LDURSHw as _,
6041            &[rt.as_operand(), rn.as_operand(), imm9.as_operand()],
6042        );
6043    }
6044    fn ldrshw_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm9: impl OperandCast) {
6045        return self.emit_n(
6046            Opcode::LDRSHw_post as _,
6047            &[rt.as_operand(), rn.as_operand(), imm9.as_operand()],
6048        );
6049    }
6050    fn ldtrshw(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm9: impl OperandCast) {
6051        return self.emit_n(
6052            Opcode::LDTRSHw as _,
6053            &[rt.as_operand(), rn.as_operand(), imm9.as_operand()],
6054        );
6055    }
6056    fn ldrshw_pre(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm9: impl OperandCast) {
6057        return self.emit_n(
6058            Opcode::LDRSHw_pre as _,
6059            &[rt.as_operand(), rn.as_operand(), imm9.as_operand()],
6060        );
6061    }
6062    fn sturw(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm9: impl OperandCast) {
6063        return self.emit_n(
6064            Opcode::STURw as _,
6065            &[rt.as_operand(), rn.as_operand(), imm9.as_operand()],
6066        );
6067    }
6068    fn strw_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm9: impl OperandCast) {
6069        return self.emit_n(
6070            Opcode::STRw_post as _,
6071            &[rt.as_operand(), rn.as_operand(), imm9.as_operand()],
6072        );
6073    }
6074    fn sttrw(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm9: impl OperandCast) {
6075        return self.emit_n(
6076            Opcode::STTRw as _,
6077            &[rt.as_operand(), rn.as_operand(), imm9.as_operand()],
6078        );
6079    }
6080    fn strw_pre(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm9: impl OperandCast) {
6081        return self.emit_n(
6082            Opcode::STRw_pre as _,
6083            &[rt.as_operand(), rn.as_operand(), imm9.as_operand()],
6084        );
6085    }
6086    fn ldurw(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm9: impl OperandCast) {
6087        return self.emit_n(
6088            Opcode::LDURw as _,
6089            &[rt.as_operand(), rn.as_operand(), imm9.as_operand()],
6090        );
6091    }
6092    fn ldrw_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm9: impl OperandCast) {
6093        return self.emit_n(
6094            Opcode::LDRw_post as _,
6095            &[rt.as_operand(), rn.as_operand(), imm9.as_operand()],
6096        );
6097    }
6098    fn ldtrw(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm9: impl OperandCast) {
6099        return self.emit_n(
6100            Opcode::LDTRw as _,
6101            &[rt.as_operand(), rn.as_operand(), imm9.as_operand()],
6102        );
6103    }
6104    fn ldrw_pre(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm9: impl OperandCast) {
6105        return self.emit_n(
6106            Opcode::LDRw_pre as _,
6107            &[rt.as_operand(), rn.as_operand(), imm9.as_operand()],
6108        );
6109    }
6110    fn ldurswx(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm9: impl OperandCast) {
6111        return self.emit_n(
6112            Opcode::LDURSWx as _,
6113            &[rt.as_operand(), rn.as_operand(), imm9.as_operand()],
6114        );
6115    }
6116    fn ldrswx_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm9: impl OperandCast) {
6117        return self.emit_n(
6118            Opcode::LDRSWx_post as _,
6119            &[rt.as_operand(), rn.as_operand(), imm9.as_operand()],
6120        );
6121    }
6122    fn ldtrswx(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm9: impl OperandCast) {
6123        return self.emit_n(
6124            Opcode::LDTRSWx as _,
6125            &[rt.as_operand(), rn.as_operand(), imm9.as_operand()],
6126        );
6127    }
6128    fn ldrswx_pre(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm9: impl OperandCast) {
6129        return self.emit_n(
6130            Opcode::LDRSWx_pre as _,
6131            &[rt.as_operand(), rn.as_operand(), imm9.as_operand()],
6132        );
6133    }
6134    fn sturx(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm9: impl OperandCast) {
6135        return self.emit_n(
6136            Opcode::STURx as _,
6137            &[rt.as_operand(), rn.as_operand(), imm9.as_operand()],
6138        );
6139    }
6140    fn strx_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm9: impl OperandCast) {
6141        return self.emit_n(
6142            Opcode::STRx_post as _,
6143            &[rt.as_operand(), rn.as_operand(), imm9.as_operand()],
6144        );
6145    }
6146    fn sttrx(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm9: impl OperandCast) {
6147        return self.emit_n(
6148            Opcode::STTRx as _,
6149            &[rt.as_operand(), rn.as_operand(), imm9.as_operand()],
6150        );
6151    }
6152    fn strx_pre(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm9: impl OperandCast) {
6153        return self.emit_n(
6154            Opcode::STRx_pre as _,
6155            &[rt.as_operand(), rn.as_operand(), imm9.as_operand()],
6156        );
6157    }
6158    fn ldurx(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm9: impl OperandCast) {
6159        return self.emit_n(
6160            Opcode::LDURx as _,
6161            &[rt.as_operand(), rn.as_operand(), imm9.as_operand()],
6162        );
6163    }
6164    fn ldrx_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm9: impl OperandCast) {
6165        return self.emit_n(
6166            Opcode::LDRx_post as _,
6167            &[rt.as_operand(), rn.as_operand(), imm9.as_operand()],
6168        );
6169    }
6170    fn ldtrx(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm9: impl OperandCast) {
6171        return self.emit_n(
6172            Opcode::LDTRx as _,
6173            &[rt.as_operand(), rn.as_operand(), imm9.as_operand()],
6174        );
6175    }
6176    fn ldrx_pre(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm9: impl OperandCast) {
6177        return self.emit_n(
6178            Opcode::LDRx_pre as _,
6179            &[rt.as_operand(), rn.as_operand(), imm9.as_operand()],
6180        );
6181    }
6182    fn prfum(&mut self, prfop: impl OperandCast, rn: impl OperandCast, imm9: impl OperandCast) {
6183        return self.emit_n(
6184            Opcode::PRFUM as _,
6185            &[prfop.as_operand(), rn.as_operand(), imm9.as_operand()],
6186        );
6187    }
6188    fn ldm_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm9: impl OperandCast) {
6189        return self.emit_n(
6190            Opcode::LDM_post as _,
6191            &[rt.as_operand(), rn.as_operand(), imm9.as_operand()],
6192        );
6193    }
6194    fn ldtm(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm9: impl OperandCast) {
6195        return self.emit_n(
6196            Opcode::LDTM as _,
6197            &[rt.as_operand(), rn.as_operand(), imm9.as_operand()],
6198        );
6199    }
6200    fn ldm_pre(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm9: impl OperandCast) {
6201        return self.emit_n(
6202            Opcode::LDM_pre as _,
6203            &[rt.as_operand(), rn.as_operand(), imm9.as_operand()],
6204        );
6205    }
6206    fn strbu_imm(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm12: impl OperandCast) {
6207        return self.emit_n(
6208            Opcode::STRBu_imm as _,
6209            &[rt.as_operand(), rn.as_operand(), imm12.as_operand()],
6210        );
6211    }
6212    fn ldrbu_imm(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm12: impl OperandCast) {
6213        return self.emit_n(
6214            Opcode::LDRBu_imm as _,
6215            &[rt.as_operand(), rn.as_operand(), imm12.as_operand()],
6216        );
6217    }
6218    fn ldrsbxu_imm(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm12: impl OperandCast) {
6219        return self.emit_n(
6220            Opcode::LDRSBxu_imm as _,
6221            &[rt.as_operand(), rn.as_operand(), imm12.as_operand()],
6222        );
6223    }
6224    fn ldrsbwu_imm(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm12: impl OperandCast) {
6225        return self.emit_n(
6226            Opcode::LDRSBwu_imm as _,
6227            &[rt.as_operand(), rn.as_operand(), imm12.as_operand()],
6228        );
6229    }
6230    fn strhu_imm(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm12: impl OperandCast) {
6231        return self.emit_n(
6232            Opcode::STRHu_imm as _,
6233            &[rt.as_operand(), rn.as_operand(), imm12.as_operand()],
6234        );
6235    }
6236    fn ldrhu_imm(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm12: impl OperandCast) {
6237        return self.emit_n(
6238            Opcode::LDRHu_imm as _,
6239            &[rt.as_operand(), rn.as_operand(), imm12.as_operand()],
6240        );
6241    }
6242    fn ldrshxu_imm(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm12: impl OperandCast) {
6243        return self.emit_n(
6244            Opcode::LDRSHxu_imm as _,
6245            &[rt.as_operand(), rn.as_operand(), imm12.as_operand()],
6246        );
6247    }
6248    fn ldrshwu_imm(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm12: impl OperandCast) {
6249        return self.emit_n(
6250            Opcode::LDRSHwu_imm as _,
6251            &[rt.as_operand(), rn.as_operand(), imm12.as_operand()],
6252        );
6253    }
6254    fn strwu_imm(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm12: impl OperandCast) {
6255        return self.emit_n(
6256            Opcode::STRwu_imm as _,
6257            &[rt.as_operand(), rn.as_operand(), imm12.as_operand()],
6258        );
6259    }
6260    fn ldrwu_imm(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm12: impl OperandCast) {
6261        return self.emit_n(
6262            Opcode::LDRwu_imm as _,
6263            &[rt.as_operand(), rn.as_operand(), imm12.as_operand()],
6264        );
6265    }
6266    fn ldrswxu_imm(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm12: impl OperandCast) {
6267        return self.emit_n(
6268            Opcode::LDRSWxu_imm as _,
6269            &[rt.as_operand(), rn.as_operand(), imm12.as_operand()],
6270        );
6271    }
6272    fn strxu_imm(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm12: impl OperandCast) {
6273        return self.emit_n(
6274            Opcode::STRxu_imm as _,
6275            &[rt.as_operand(), rn.as_operand(), imm12.as_operand()],
6276        );
6277    }
6278    fn ldrxu_imm(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm12: impl OperandCast) {
6279        return self.emit_n(
6280            Opcode::LDRxu_imm as _,
6281            &[rt.as_operand(), rn.as_operand(), imm12.as_operand()],
6282        );
6283    }
6284    fn prfmu_imm(
6285        &mut self,
6286        prfop: impl OperandCast,
6287        rn: impl OperandCast,
6288        imm12: impl OperandCast,
6289    ) {
6290        return self.emit_n(
6291            Opcode::PRFMu_imm as _,
6292            &[prfop.as_operand(), rn.as_operand(), imm12.as_operand()],
6293        );
6294    }
6295    fn strbr_uxtw_reg(
6296        &mut self,
6297        rt: impl OperandCast,
6298        rn: impl OperandCast,
6299        rm: impl OperandCast,
6300        sc: impl OperandCast,
6301    ) {
6302        return self.emit_n(
6303            Opcode::STRBr_uxtw_reg as _,
6304            &[
6305                rt.as_operand(),
6306                rn.as_operand(),
6307                rm.as_operand(),
6308                sc.as_operand(),
6309            ],
6310        );
6311    }
6312    fn strbr_lsl_reg(
6313        &mut self,
6314        rt: impl OperandCast,
6315        rn: impl OperandCast,
6316        rm: impl OperandCast,
6317        sc: impl OperandCast,
6318    ) {
6319        return self.emit_n(
6320            Opcode::STRBr_lsl_reg as _,
6321            &[
6322                rt.as_operand(),
6323                rn.as_operand(),
6324                rm.as_operand(),
6325                sc.as_operand(),
6326            ],
6327        );
6328    }
6329    fn strbr_sxtw_reg(
6330        &mut self,
6331        rt: impl OperandCast,
6332        rn: impl OperandCast,
6333        rm: impl OperandCast,
6334        sc: impl OperandCast,
6335    ) {
6336        return self.emit_n(
6337            Opcode::STRBr_sxtw_reg as _,
6338            &[
6339                rt.as_operand(),
6340                rn.as_operand(),
6341                rm.as_operand(),
6342                sc.as_operand(),
6343            ],
6344        );
6345    }
6346    fn strbr_sxtx_reg(
6347        &mut self,
6348        rt: impl OperandCast,
6349        rn: impl OperandCast,
6350        rm: impl OperandCast,
6351        sc: impl OperandCast,
6352    ) {
6353        return self.emit_n(
6354            Opcode::STRBr_sxtx_reg as _,
6355            &[
6356                rt.as_operand(),
6357                rn.as_operand(),
6358                rm.as_operand(),
6359                sc.as_operand(),
6360            ],
6361        );
6362    }
6363    fn ldrbr_uxtw_reg(
6364        &mut self,
6365        rt: impl OperandCast,
6366        rn: impl OperandCast,
6367        rm: impl OperandCast,
6368        sc: impl OperandCast,
6369    ) {
6370        return self.emit_n(
6371            Opcode::LDRBr_uxtw_reg as _,
6372            &[
6373                rt.as_operand(),
6374                rn.as_operand(),
6375                rm.as_operand(),
6376                sc.as_operand(),
6377            ],
6378        );
6379    }
6380    fn ldrbr_lsl_reg(
6381        &mut self,
6382        rt: impl OperandCast,
6383        rn: impl OperandCast,
6384        rm: impl OperandCast,
6385        sc: impl OperandCast,
6386    ) {
6387        return self.emit_n(
6388            Opcode::LDRBr_lsl_reg as _,
6389            &[
6390                rt.as_operand(),
6391                rn.as_operand(),
6392                rm.as_operand(),
6393                sc.as_operand(),
6394            ],
6395        );
6396    }
6397    fn ldrbr_sxtw_reg(
6398        &mut self,
6399        rt: impl OperandCast,
6400        rn: impl OperandCast,
6401        rm: impl OperandCast,
6402        sc: impl OperandCast,
6403    ) {
6404        return self.emit_n(
6405            Opcode::LDRBr_sxtw_reg as _,
6406            &[
6407                rt.as_operand(),
6408                rn.as_operand(),
6409                rm.as_operand(),
6410                sc.as_operand(),
6411            ],
6412        );
6413    }
6414    fn ldrbr_sxtx_reg(
6415        &mut self,
6416        rt: impl OperandCast,
6417        rn: impl OperandCast,
6418        rm: impl OperandCast,
6419        sc: impl OperandCast,
6420    ) {
6421        return self.emit_n(
6422            Opcode::LDRBr_sxtx_reg as _,
6423            &[
6424                rt.as_operand(),
6425                rn.as_operand(),
6426                rm.as_operand(),
6427                sc.as_operand(),
6428            ],
6429        );
6430    }
6431    fn ldrsbxr_uxtw_reg(
6432        &mut self,
6433        rt: impl OperandCast,
6434        rn: impl OperandCast,
6435        rm: impl OperandCast,
6436        sc: impl OperandCast,
6437    ) {
6438        return self.emit_n(
6439            Opcode::LDRSBxr_uxtw_reg as _,
6440            &[
6441                rt.as_operand(),
6442                rn.as_operand(),
6443                rm.as_operand(),
6444                sc.as_operand(),
6445            ],
6446        );
6447    }
6448    fn ldrsbxr_lsl_reg(
6449        &mut self,
6450        rt: impl OperandCast,
6451        rn: impl OperandCast,
6452        rm: impl OperandCast,
6453        sc: impl OperandCast,
6454    ) {
6455        return self.emit_n(
6456            Opcode::LDRSBxr_lsl_reg as _,
6457            &[
6458                rt.as_operand(),
6459                rn.as_operand(),
6460                rm.as_operand(),
6461                sc.as_operand(),
6462            ],
6463        );
6464    }
6465    fn ldrsbxr_sxtw_reg(
6466        &mut self,
6467        rt: impl OperandCast,
6468        rn: impl OperandCast,
6469        rm: impl OperandCast,
6470        sc: impl OperandCast,
6471    ) {
6472        return self.emit_n(
6473            Opcode::LDRSBxr_sxtw_reg as _,
6474            &[
6475                rt.as_operand(),
6476                rn.as_operand(),
6477                rm.as_operand(),
6478                sc.as_operand(),
6479            ],
6480        );
6481    }
6482    fn ldrsbxr_sxtx_reg(
6483        &mut self,
6484        rt: impl OperandCast,
6485        rn: impl OperandCast,
6486        rm: impl OperandCast,
6487        sc: impl OperandCast,
6488    ) {
6489        return self.emit_n(
6490            Opcode::LDRSBxr_sxtx_reg as _,
6491            &[
6492                rt.as_operand(),
6493                rn.as_operand(),
6494                rm.as_operand(),
6495                sc.as_operand(),
6496            ],
6497        );
6498    }
6499    fn ldrsbwr_uxtw_reg(
6500        &mut self,
6501        rt: impl OperandCast,
6502        rn: impl OperandCast,
6503        rm: impl OperandCast,
6504        sc: impl OperandCast,
6505    ) {
6506        return self.emit_n(
6507            Opcode::LDRSBwr_uxtw_reg as _,
6508            &[
6509                rt.as_operand(),
6510                rn.as_operand(),
6511                rm.as_operand(),
6512                sc.as_operand(),
6513            ],
6514        );
6515    }
6516    fn ldrsbwr_lsl_reg(
6517        &mut self,
6518        rt: impl OperandCast,
6519        rn: impl OperandCast,
6520        rm: impl OperandCast,
6521        sc: impl OperandCast,
6522    ) {
6523        return self.emit_n(
6524            Opcode::LDRSBwr_lsl_reg as _,
6525            &[
6526                rt.as_operand(),
6527                rn.as_operand(),
6528                rm.as_operand(),
6529                sc.as_operand(),
6530            ],
6531        );
6532    }
6533    fn ldrsbwr_sxtw_reg(
6534        &mut self,
6535        rt: impl OperandCast,
6536        rn: impl OperandCast,
6537        rm: impl OperandCast,
6538        sc: impl OperandCast,
6539    ) {
6540        return self.emit_n(
6541            Opcode::LDRSBwr_sxtw_reg as _,
6542            &[
6543                rt.as_operand(),
6544                rn.as_operand(),
6545                rm.as_operand(),
6546                sc.as_operand(),
6547            ],
6548        );
6549    }
6550    fn ldrsbwr_sxtx_reg(
6551        &mut self,
6552        rt: impl OperandCast,
6553        rn: impl OperandCast,
6554        rm: impl OperandCast,
6555        sc: impl OperandCast,
6556    ) {
6557        return self.emit_n(
6558            Opcode::LDRSBwr_sxtx_reg as _,
6559            &[
6560                rt.as_operand(),
6561                rn.as_operand(),
6562                rm.as_operand(),
6563                sc.as_operand(),
6564            ],
6565        );
6566    }
6567    fn strhr_uxtw_reg(
6568        &mut self,
6569        rt: impl OperandCast,
6570        rn: impl OperandCast,
6571        rm: impl OperandCast,
6572        sc: impl OperandCast,
6573    ) {
6574        return self.emit_n(
6575            Opcode::STRHr_uxtw_reg as _,
6576            &[
6577                rt.as_operand(),
6578                rn.as_operand(),
6579                rm.as_operand(),
6580                sc.as_operand(),
6581            ],
6582        );
6583    }
6584    fn strhr_lsl_reg(
6585        &mut self,
6586        rt: impl OperandCast,
6587        rn: impl OperandCast,
6588        rm: impl OperandCast,
6589        sc: impl OperandCast,
6590    ) {
6591        return self.emit_n(
6592            Opcode::STRHr_lsl_reg as _,
6593            &[
6594                rt.as_operand(),
6595                rn.as_operand(),
6596                rm.as_operand(),
6597                sc.as_operand(),
6598            ],
6599        );
6600    }
6601    fn strhr_sxtw_reg(
6602        &mut self,
6603        rt: impl OperandCast,
6604        rn: impl OperandCast,
6605        rm: impl OperandCast,
6606        sc: impl OperandCast,
6607    ) {
6608        return self.emit_n(
6609            Opcode::STRHr_sxtw_reg as _,
6610            &[
6611                rt.as_operand(),
6612                rn.as_operand(),
6613                rm.as_operand(),
6614                sc.as_operand(),
6615            ],
6616        );
6617    }
6618    fn strhr_sxtx_reg(
6619        &mut self,
6620        rt: impl OperandCast,
6621        rn: impl OperandCast,
6622        rm: impl OperandCast,
6623        sc: impl OperandCast,
6624    ) {
6625        return self.emit_n(
6626            Opcode::STRHr_sxtx_reg as _,
6627            &[
6628                rt.as_operand(),
6629                rn.as_operand(),
6630                rm.as_operand(),
6631                sc.as_operand(),
6632            ],
6633        );
6634    }
6635    fn ldrhr_uxtw_reg(
6636        &mut self,
6637        rt: impl OperandCast,
6638        rn: impl OperandCast,
6639        rm: impl OperandCast,
6640        sc: impl OperandCast,
6641    ) {
6642        return self.emit_n(
6643            Opcode::LDRHr_uxtw_reg as _,
6644            &[
6645                rt.as_operand(),
6646                rn.as_operand(),
6647                rm.as_operand(),
6648                sc.as_operand(),
6649            ],
6650        );
6651    }
6652    fn ldrhr_lsl_reg(
6653        &mut self,
6654        rt: impl OperandCast,
6655        rn: impl OperandCast,
6656        rm: impl OperandCast,
6657        sc: impl OperandCast,
6658    ) {
6659        return self.emit_n(
6660            Opcode::LDRHr_lsl_reg as _,
6661            &[
6662                rt.as_operand(),
6663                rn.as_operand(),
6664                rm.as_operand(),
6665                sc.as_operand(),
6666            ],
6667        );
6668    }
6669    fn ldrhr_sxtw_reg(
6670        &mut self,
6671        rt: impl OperandCast,
6672        rn: impl OperandCast,
6673        rm: impl OperandCast,
6674        sc: impl OperandCast,
6675    ) {
6676        return self.emit_n(
6677            Opcode::LDRHr_sxtw_reg as _,
6678            &[
6679                rt.as_operand(),
6680                rn.as_operand(),
6681                rm.as_operand(),
6682                sc.as_operand(),
6683            ],
6684        );
6685    }
6686    fn ldrhr_sxtx_reg(
6687        &mut self,
6688        rt: impl OperandCast,
6689        rn: impl OperandCast,
6690        rm: impl OperandCast,
6691        sc: impl OperandCast,
6692    ) {
6693        return self.emit_n(
6694            Opcode::LDRHr_sxtx_reg as _,
6695            &[
6696                rt.as_operand(),
6697                rn.as_operand(),
6698                rm.as_operand(),
6699                sc.as_operand(),
6700            ],
6701        );
6702    }
6703    fn ldrshxr_uxtw_reg(
6704        &mut self,
6705        rt: impl OperandCast,
6706        rn: impl OperandCast,
6707        rm: impl OperandCast,
6708        sc: impl OperandCast,
6709    ) {
6710        return self.emit_n(
6711            Opcode::LDRSHxr_uxtw_reg as _,
6712            &[
6713                rt.as_operand(),
6714                rn.as_operand(),
6715                rm.as_operand(),
6716                sc.as_operand(),
6717            ],
6718        );
6719    }
6720    fn ldrshxr_lsl_reg(
6721        &mut self,
6722        rt: impl OperandCast,
6723        rn: impl OperandCast,
6724        rm: impl OperandCast,
6725        sc: impl OperandCast,
6726    ) {
6727        return self.emit_n(
6728            Opcode::LDRSHxr_lsl_reg as _,
6729            &[
6730                rt.as_operand(),
6731                rn.as_operand(),
6732                rm.as_operand(),
6733                sc.as_operand(),
6734            ],
6735        );
6736    }
6737    fn ldrshxr_sxtw_reg(
6738        &mut self,
6739        rt: impl OperandCast,
6740        rn: impl OperandCast,
6741        rm: impl OperandCast,
6742        sc: impl OperandCast,
6743    ) {
6744        return self.emit_n(
6745            Opcode::LDRSHxr_sxtw_reg as _,
6746            &[
6747                rt.as_operand(),
6748                rn.as_operand(),
6749                rm.as_operand(),
6750                sc.as_operand(),
6751            ],
6752        );
6753    }
6754    fn ldrshxr_sxtx_reg(
6755        &mut self,
6756        rt: impl OperandCast,
6757        rn: impl OperandCast,
6758        rm: impl OperandCast,
6759        sc: impl OperandCast,
6760    ) {
6761        return self.emit_n(
6762            Opcode::LDRSHxr_sxtx_reg as _,
6763            &[
6764                rt.as_operand(),
6765                rn.as_operand(),
6766                rm.as_operand(),
6767                sc.as_operand(),
6768            ],
6769        );
6770    }
6771    fn ldrshwr_uxtw_reg(
6772        &mut self,
6773        rt: impl OperandCast,
6774        rn: impl OperandCast,
6775        rm: impl OperandCast,
6776        sc: impl OperandCast,
6777    ) {
6778        return self.emit_n(
6779            Opcode::LDRSHwr_uxtw_reg as _,
6780            &[
6781                rt.as_operand(),
6782                rn.as_operand(),
6783                rm.as_operand(),
6784                sc.as_operand(),
6785            ],
6786        );
6787    }
6788    fn ldrshwr_lsl_reg(
6789        &mut self,
6790        rt: impl OperandCast,
6791        rn: impl OperandCast,
6792        rm: impl OperandCast,
6793        sc: impl OperandCast,
6794    ) {
6795        return self.emit_n(
6796            Opcode::LDRSHwr_lsl_reg as _,
6797            &[
6798                rt.as_operand(),
6799                rn.as_operand(),
6800                rm.as_operand(),
6801                sc.as_operand(),
6802            ],
6803        );
6804    }
6805    fn ldrshwr_sxtw_reg(
6806        &mut self,
6807        rt: impl OperandCast,
6808        rn: impl OperandCast,
6809        rm: impl OperandCast,
6810        sc: impl OperandCast,
6811    ) {
6812        return self.emit_n(
6813            Opcode::LDRSHwr_sxtw_reg as _,
6814            &[
6815                rt.as_operand(),
6816                rn.as_operand(),
6817                rm.as_operand(),
6818                sc.as_operand(),
6819            ],
6820        );
6821    }
6822    fn ldrshwr_sxtx_reg(
6823        &mut self,
6824        rt: impl OperandCast,
6825        rn: impl OperandCast,
6826        rm: impl OperandCast,
6827        sc: impl OperandCast,
6828    ) {
6829        return self.emit_n(
6830            Opcode::LDRSHwr_sxtx_reg as _,
6831            &[
6832                rt.as_operand(),
6833                rn.as_operand(),
6834                rm.as_operand(),
6835                sc.as_operand(),
6836            ],
6837        );
6838    }
6839    fn strwr_uxtw_reg(
6840        &mut self,
6841        rt: impl OperandCast,
6842        rn: impl OperandCast,
6843        rm: impl OperandCast,
6844        sc: impl OperandCast,
6845    ) {
6846        return self.emit_n(
6847            Opcode::STRwr_uxtw_reg as _,
6848            &[
6849                rt.as_operand(),
6850                rn.as_operand(),
6851                rm.as_operand(),
6852                sc.as_operand(),
6853            ],
6854        );
6855    }
6856    fn strwr_lsl_reg(
6857        &mut self,
6858        rt: impl OperandCast,
6859        rn: impl OperandCast,
6860        rm: impl OperandCast,
6861        sc: impl OperandCast,
6862    ) {
6863        return self.emit_n(
6864            Opcode::STRwr_lsl_reg as _,
6865            &[
6866                rt.as_operand(),
6867                rn.as_operand(),
6868                rm.as_operand(),
6869                sc.as_operand(),
6870            ],
6871        );
6872    }
6873    fn strwr_sxtw_reg(
6874        &mut self,
6875        rt: impl OperandCast,
6876        rn: impl OperandCast,
6877        rm: impl OperandCast,
6878        sc: impl OperandCast,
6879    ) {
6880        return self.emit_n(
6881            Opcode::STRwr_sxtw_reg as _,
6882            &[
6883                rt.as_operand(),
6884                rn.as_operand(),
6885                rm.as_operand(),
6886                sc.as_operand(),
6887            ],
6888        );
6889    }
6890    fn strwr_sxtx_reg(
6891        &mut self,
6892        rt: impl OperandCast,
6893        rn: impl OperandCast,
6894        rm: impl OperandCast,
6895        sc: impl OperandCast,
6896    ) {
6897        return self.emit_n(
6898            Opcode::STRwr_sxtx_reg as _,
6899            &[
6900                rt.as_operand(),
6901                rn.as_operand(),
6902                rm.as_operand(),
6903                sc.as_operand(),
6904            ],
6905        );
6906    }
6907    fn ldrwr_uxtw_reg(
6908        &mut self,
6909        rt: impl OperandCast,
6910        rn: impl OperandCast,
6911        rm: impl OperandCast,
6912        sc: impl OperandCast,
6913    ) {
6914        return self.emit_n(
6915            Opcode::LDRwr_uxtw_reg as _,
6916            &[
6917                rt.as_operand(),
6918                rn.as_operand(),
6919                rm.as_operand(),
6920                sc.as_operand(),
6921            ],
6922        );
6923    }
6924    fn ldrwr_lsl_reg(
6925        &mut self,
6926        rt: impl OperandCast,
6927        rn: impl OperandCast,
6928        rm: impl OperandCast,
6929        sc: impl OperandCast,
6930    ) {
6931        return self.emit_n(
6932            Opcode::LDRwr_lsl_reg as _,
6933            &[
6934                rt.as_operand(),
6935                rn.as_operand(),
6936                rm.as_operand(),
6937                sc.as_operand(),
6938            ],
6939        );
6940    }
6941    fn ldrwr_sxtw_reg(
6942        &mut self,
6943        rt: impl OperandCast,
6944        rn: impl OperandCast,
6945        rm: impl OperandCast,
6946        sc: impl OperandCast,
6947    ) {
6948        return self.emit_n(
6949            Opcode::LDRwr_sxtw_reg as _,
6950            &[
6951                rt.as_operand(),
6952                rn.as_operand(),
6953                rm.as_operand(),
6954                sc.as_operand(),
6955            ],
6956        );
6957    }
6958    fn ldrwr_sxtx_reg(
6959        &mut self,
6960        rt: impl OperandCast,
6961        rn: impl OperandCast,
6962        rm: impl OperandCast,
6963        sc: impl OperandCast,
6964    ) {
6965        return self.emit_n(
6966            Opcode::LDRwr_sxtx_reg as _,
6967            &[
6968                rt.as_operand(),
6969                rn.as_operand(),
6970                rm.as_operand(),
6971                sc.as_operand(),
6972            ],
6973        );
6974    }
6975    fn ldrswxr_uxtw_reg(
6976        &mut self,
6977        rt: impl OperandCast,
6978        rn: impl OperandCast,
6979        rm: impl OperandCast,
6980        sc: impl OperandCast,
6981    ) {
6982        return self.emit_n(
6983            Opcode::LDRSWxr_uxtw_reg as _,
6984            &[
6985                rt.as_operand(),
6986                rn.as_operand(),
6987                rm.as_operand(),
6988                sc.as_operand(),
6989            ],
6990        );
6991    }
6992    fn ldrswxr_lsl_reg(
6993        &mut self,
6994        rt: impl OperandCast,
6995        rn: impl OperandCast,
6996        rm: impl OperandCast,
6997        sc: impl OperandCast,
6998    ) {
6999        return self.emit_n(
7000            Opcode::LDRSWxr_lsl_reg as _,
7001            &[
7002                rt.as_operand(),
7003                rn.as_operand(),
7004                rm.as_operand(),
7005                sc.as_operand(),
7006            ],
7007        );
7008    }
7009    fn ldrswxr_sxtw_reg(
7010        &mut self,
7011        rt: impl OperandCast,
7012        rn: impl OperandCast,
7013        rm: impl OperandCast,
7014        sc: impl OperandCast,
7015    ) {
7016        return self.emit_n(
7017            Opcode::LDRSWxr_sxtw_reg as _,
7018            &[
7019                rt.as_operand(),
7020                rn.as_operand(),
7021                rm.as_operand(),
7022                sc.as_operand(),
7023            ],
7024        );
7025    }
7026    fn ldrswxr_sxtx_reg(
7027        &mut self,
7028        rt: impl OperandCast,
7029        rn: impl OperandCast,
7030        rm: impl OperandCast,
7031        sc: impl OperandCast,
7032    ) {
7033        return self.emit_n(
7034            Opcode::LDRSWxr_sxtx_reg as _,
7035            &[
7036                rt.as_operand(),
7037                rn.as_operand(),
7038                rm.as_operand(),
7039                sc.as_operand(),
7040            ],
7041        );
7042    }
7043    fn strxr_uxtw_reg(
7044        &mut self,
7045        rt: impl OperandCast,
7046        rn: impl OperandCast,
7047        rm: impl OperandCast,
7048        sc: impl OperandCast,
7049    ) {
7050        return self.emit_n(
7051            Opcode::STRxr_uxtw_reg as _,
7052            &[
7053                rt.as_operand(),
7054                rn.as_operand(),
7055                rm.as_operand(),
7056                sc.as_operand(),
7057            ],
7058        );
7059    }
7060    fn strxr_lsl_reg(
7061        &mut self,
7062        rt: impl OperandCast,
7063        rn: impl OperandCast,
7064        rm: impl OperandCast,
7065        sc: impl OperandCast,
7066    ) {
7067        return self.emit_n(
7068            Opcode::STRxr_lsl_reg as _,
7069            &[
7070                rt.as_operand(),
7071                rn.as_operand(),
7072                rm.as_operand(),
7073                sc.as_operand(),
7074            ],
7075        );
7076    }
7077    fn strxr_sxtw_reg(
7078        &mut self,
7079        rt: impl OperandCast,
7080        rn: impl OperandCast,
7081        rm: impl OperandCast,
7082        sc: impl OperandCast,
7083    ) {
7084        return self.emit_n(
7085            Opcode::STRxr_sxtw_reg as _,
7086            &[
7087                rt.as_operand(),
7088                rn.as_operand(),
7089                rm.as_operand(),
7090                sc.as_operand(),
7091            ],
7092        );
7093    }
7094    fn strxr_sxtx_reg(
7095        &mut self,
7096        rt: impl OperandCast,
7097        rn: impl OperandCast,
7098        rm: impl OperandCast,
7099        sc: impl OperandCast,
7100    ) {
7101        return self.emit_n(
7102            Opcode::STRxr_sxtx_reg as _,
7103            &[
7104                rt.as_operand(),
7105                rn.as_operand(),
7106                rm.as_operand(),
7107                sc.as_operand(),
7108            ],
7109        );
7110    }
7111    fn ldrxr_uxtw_reg(
7112        &mut self,
7113        rt: impl OperandCast,
7114        rn: impl OperandCast,
7115        rm: impl OperandCast,
7116        sc: impl OperandCast,
7117    ) {
7118        return self.emit_n(
7119            Opcode::LDRxr_uxtw_reg as _,
7120            &[
7121                rt.as_operand(),
7122                rn.as_operand(),
7123                rm.as_operand(),
7124                sc.as_operand(),
7125            ],
7126        );
7127    }
7128    fn ldrxr_lsl_reg(
7129        &mut self,
7130        rt: impl OperandCast,
7131        rn: impl OperandCast,
7132        rm: impl OperandCast,
7133        sc: impl OperandCast,
7134    ) {
7135        return self.emit_n(
7136            Opcode::LDRxr_lsl_reg as _,
7137            &[
7138                rt.as_operand(),
7139                rn.as_operand(),
7140                rm.as_operand(),
7141                sc.as_operand(),
7142            ],
7143        );
7144    }
7145    fn ldrxr_sxtw_reg(
7146        &mut self,
7147        rt: impl OperandCast,
7148        rn: impl OperandCast,
7149        rm: impl OperandCast,
7150        sc: impl OperandCast,
7151    ) {
7152        return self.emit_n(
7153            Opcode::LDRxr_sxtw_reg as _,
7154            &[
7155                rt.as_operand(),
7156                rn.as_operand(),
7157                rm.as_operand(),
7158                sc.as_operand(),
7159            ],
7160        );
7161    }
7162    fn ldrxr_sxtx_reg(
7163        &mut self,
7164        rt: impl OperandCast,
7165        rn: impl OperandCast,
7166        rm: impl OperandCast,
7167        sc: impl OperandCast,
7168    ) {
7169        return self.emit_n(
7170            Opcode::LDRxr_sxtx_reg as _,
7171            &[
7172                rt.as_operand(),
7173                rn.as_operand(),
7174                rm.as_operand(),
7175                sc.as_operand(),
7176            ],
7177        );
7178    }
7179    fn prfmr_uxtw_reg(
7180        &mut self,
7181        prfop: impl OperandCast,
7182        rn: impl OperandCast,
7183        rm: impl OperandCast,
7184        sc: impl OperandCast,
7185    ) {
7186        return self.emit_n(
7187            Opcode::PRFMr_uxtw_reg as _,
7188            &[
7189                prfop.as_operand(),
7190                rn.as_operand(),
7191                rm.as_operand(),
7192                sc.as_operand(),
7193            ],
7194        );
7195    }
7196    fn prfmr_lsl_reg(
7197        &mut self,
7198        prfop: impl OperandCast,
7199        rn: impl OperandCast,
7200        rm: impl OperandCast,
7201        sc: impl OperandCast,
7202    ) {
7203        return self.emit_n(
7204            Opcode::PRFMr_lsl_reg as _,
7205            &[
7206                prfop.as_operand(),
7207                rn.as_operand(),
7208                rm.as_operand(),
7209                sc.as_operand(),
7210            ],
7211        );
7212    }
7213    fn prfmr_sxtw_reg(
7214        &mut self,
7215        prfop: impl OperandCast,
7216        rn: impl OperandCast,
7217        rm: impl OperandCast,
7218        sc: impl OperandCast,
7219    ) {
7220        return self.emit_n(
7221            Opcode::PRFMr_sxtw_reg as _,
7222            &[
7223                prfop.as_operand(),
7224                rn.as_operand(),
7225                rm.as_operand(),
7226                sc.as_operand(),
7227            ],
7228        );
7229    }
7230    fn prfmr_sxtx_reg(
7231        &mut self,
7232        prfop: impl OperandCast,
7233        rn: impl OperandCast,
7234        rm: impl OperandCast,
7235        sc: impl OperandCast,
7236    ) {
7237        return self.emit_n(
7238            Opcode::PRFMr_sxtx_reg as _,
7239            &[
7240                prfop.as_operand(),
7241                rn.as_operand(),
7242                rm.as_operand(),
7243                sc.as_operand(),
7244            ],
7245        );
7246    }
7247    fn strbr_reg(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
7248        return self.emit_n(
7249            Opcode::STRBr_reg as _,
7250            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
7251        );
7252    }
7253    fn ldrbr_reg(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
7254        return self.emit_n(
7255            Opcode::LDRBr_reg as _,
7256            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
7257        );
7258    }
7259    fn ldrsbxr_reg(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
7260        return self.emit_n(
7261            Opcode::LDRSBxr_reg as _,
7262            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
7263        );
7264    }
7265    fn ldrsbwr_reg(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
7266        return self.emit_n(
7267            Opcode::LDRSBwr_reg as _,
7268            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
7269        );
7270    }
7271    fn strhr_reg(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
7272        return self.emit_n(
7273            Opcode::STRHr_reg as _,
7274            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
7275        );
7276    }
7277    fn ldrhr_reg(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
7278        return self.emit_n(
7279            Opcode::LDRHr_reg as _,
7280            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
7281        );
7282    }
7283    fn ldrshxr_reg(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
7284        return self.emit_n(
7285            Opcode::LDRSHxr_reg as _,
7286            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
7287        );
7288    }
7289    fn ldrshwr_reg(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
7290        return self.emit_n(
7291            Opcode::LDRSHwr_reg as _,
7292            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
7293        );
7294    }
7295    fn strwr_reg(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
7296        return self.emit_n(
7297            Opcode::STRwr_reg as _,
7298            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
7299        );
7300    }
7301    fn ldrwr_reg(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
7302        return self.emit_n(
7303            Opcode::LDRwr_reg as _,
7304            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
7305        );
7306    }
7307    fn ldrswxr_reg(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
7308        return self.emit_n(
7309            Opcode::LDRSWxr_reg as _,
7310            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
7311        );
7312    }
7313    fn strxr_reg(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
7314        return self.emit_n(
7315            Opcode::STRxr_reg as _,
7316            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
7317        );
7318    }
7319    fn ldrxr_reg(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
7320        return self.emit_n(
7321            Opcode::LDRxr_reg as _,
7322            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
7323        );
7324    }
7325    fn prfmr_reg(&mut self, prfop: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
7326        return self.emit_n(
7327            Opcode::PRFMr_reg as _,
7328            &[prfop.as_operand(), rn.as_operand(), rm.as_operand()],
7329        );
7330    }
7331    fn ldrw_pcrel(&mut self, rt: impl OperandCast, imm19: impl OperandCast) {
7332        return self.emit_n(
7333            Opcode::LDRw_pcrel as _,
7334            &[rt.as_operand(), imm19.as_operand()],
7335        );
7336    }
7337    fn ldrx_pcrel(&mut self, rt: impl OperandCast, imm19: impl OperandCast) {
7338        return self.emit_n(
7339            Opcode::LDRx_pcrel as _,
7340            &[rt.as_operand(), imm19.as_operand()],
7341        );
7342    }
7343    fn ldrswx_pcrel(&mut self, rt: impl OperandCast, imm19: impl OperandCast) {
7344        return self.emit_n(
7345            Opcode::LDRSWx_pcrel as _,
7346            &[rt.as_operand(), imm19.as_operand()],
7347        );
7348    }
7349    fn prfm_pcrel(&mut self, prfop: impl OperandCast, imm19: impl OperandCast) {
7350        return self.emit_n(
7351            Opcode::PRFM_pcrel as _,
7352            &[prfop.as_operand(), imm19.as_operand()],
7353        );
7354    }
7355    fn stnps(
7356        &mut self,
7357        rt: impl OperandCast,
7358        rt2: impl OperandCast,
7359        rn: impl OperandCast,
7360        imm7: impl OperandCast,
7361    ) {
7362        return self.emit_n(
7363            Opcode::STNPs as _,
7364            &[
7365                rt.as_operand(),
7366                rt2.as_operand(),
7367                rn.as_operand(),
7368                imm7.as_operand(),
7369            ],
7370        );
7371    }
7372    fn ldnps(
7373        &mut self,
7374        rt: impl OperandCast,
7375        rt2: impl OperandCast,
7376        rn: impl OperandCast,
7377        imm7: impl OperandCast,
7378    ) {
7379        return self.emit_n(
7380            Opcode::LDNPs as _,
7381            &[
7382                rt.as_operand(),
7383                rt2.as_operand(),
7384                rn.as_operand(),
7385                imm7.as_operand(),
7386            ],
7387        );
7388    }
7389    fn stps_post(
7390        &mut self,
7391        rt: impl OperandCast,
7392        rt2: impl OperandCast,
7393        rn: impl OperandCast,
7394        imm7: impl OperandCast,
7395    ) {
7396        return self.emit_n(
7397            Opcode::STPs_post as _,
7398            &[
7399                rt.as_operand(),
7400                rt2.as_operand(),
7401                rn.as_operand(),
7402                imm7.as_operand(),
7403            ],
7404        );
7405    }
7406    fn ldps_post(
7407        &mut self,
7408        rt: impl OperandCast,
7409        rt2: impl OperandCast,
7410        rn: impl OperandCast,
7411        imm7: impl OperandCast,
7412    ) {
7413        return self.emit_n(
7414            Opcode::LDPs_post as _,
7415            &[
7416                rt.as_operand(),
7417                rt2.as_operand(),
7418                rn.as_operand(),
7419                imm7.as_operand(),
7420            ],
7421        );
7422    }
7423    fn stps(
7424        &mut self,
7425        rt: impl OperandCast,
7426        rt2: impl OperandCast,
7427        rn: impl OperandCast,
7428        imm7: impl OperandCast,
7429    ) {
7430        return self.emit_n(
7431            Opcode::STPs as _,
7432            &[
7433                rt.as_operand(),
7434                rt2.as_operand(),
7435                rn.as_operand(),
7436                imm7.as_operand(),
7437            ],
7438        );
7439    }
7440    fn ldps(
7441        &mut self,
7442        rt: impl OperandCast,
7443        rt2: impl OperandCast,
7444        rn: impl OperandCast,
7445        imm7: impl OperandCast,
7446    ) {
7447        return self.emit_n(
7448            Opcode::LDPs as _,
7449            &[
7450                rt.as_operand(),
7451                rt2.as_operand(),
7452                rn.as_operand(),
7453                imm7.as_operand(),
7454            ],
7455        );
7456    }
7457    fn stps_pre(
7458        &mut self,
7459        rt: impl OperandCast,
7460        rt2: impl OperandCast,
7461        rn: impl OperandCast,
7462        imm7: impl OperandCast,
7463    ) {
7464        return self.emit_n(
7465            Opcode::STPs_pre as _,
7466            &[
7467                rt.as_operand(),
7468                rt2.as_operand(),
7469                rn.as_operand(),
7470                imm7.as_operand(),
7471            ],
7472        );
7473    }
7474    fn ldps_pre(
7475        &mut self,
7476        rt: impl OperandCast,
7477        rt2: impl OperandCast,
7478        rn: impl OperandCast,
7479        imm7: impl OperandCast,
7480    ) {
7481        return self.emit_n(
7482            Opcode::LDPs_pre as _,
7483            &[
7484                rt.as_operand(),
7485                rt2.as_operand(),
7486                rn.as_operand(),
7487                imm7.as_operand(),
7488            ],
7489        );
7490    }
7491    fn stnpd(
7492        &mut self,
7493        rt: impl OperandCast,
7494        rt2: impl OperandCast,
7495        rn: impl OperandCast,
7496        imm7: impl OperandCast,
7497    ) {
7498        return self.emit_n(
7499            Opcode::STNPd as _,
7500            &[
7501                rt.as_operand(),
7502                rt2.as_operand(),
7503                rn.as_operand(),
7504                imm7.as_operand(),
7505            ],
7506        );
7507    }
7508    fn ldnpd(
7509        &mut self,
7510        rt: impl OperandCast,
7511        rt2: impl OperandCast,
7512        rn: impl OperandCast,
7513        imm7: impl OperandCast,
7514    ) {
7515        return self.emit_n(
7516            Opcode::LDNPd as _,
7517            &[
7518                rt.as_operand(),
7519                rt2.as_operand(),
7520                rn.as_operand(),
7521                imm7.as_operand(),
7522            ],
7523        );
7524    }
7525    fn stpd_post(
7526        &mut self,
7527        rt: impl OperandCast,
7528        rt2: impl OperandCast,
7529        rn: impl OperandCast,
7530        imm7: impl OperandCast,
7531    ) {
7532        return self.emit_n(
7533            Opcode::STPd_post as _,
7534            &[
7535                rt.as_operand(),
7536                rt2.as_operand(),
7537                rn.as_operand(),
7538                imm7.as_operand(),
7539            ],
7540        );
7541    }
7542    fn ldpd_post(
7543        &mut self,
7544        rt: impl OperandCast,
7545        rt2: impl OperandCast,
7546        rn: impl OperandCast,
7547        imm7: impl OperandCast,
7548    ) {
7549        return self.emit_n(
7550            Opcode::LDPd_post as _,
7551            &[
7552                rt.as_operand(),
7553                rt2.as_operand(),
7554                rn.as_operand(),
7555                imm7.as_operand(),
7556            ],
7557        );
7558    }
7559    fn stpd(
7560        &mut self,
7561        rt: impl OperandCast,
7562        rt2: impl OperandCast,
7563        rn: impl OperandCast,
7564        imm7: impl OperandCast,
7565    ) {
7566        return self.emit_n(
7567            Opcode::STPd as _,
7568            &[
7569                rt.as_operand(),
7570                rt2.as_operand(),
7571                rn.as_operand(),
7572                imm7.as_operand(),
7573            ],
7574        );
7575    }
7576    fn ldpd(
7577        &mut self,
7578        rt: impl OperandCast,
7579        rt2: impl OperandCast,
7580        rn: impl OperandCast,
7581        imm7: impl OperandCast,
7582    ) {
7583        return self.emit_n(
7584            Opcode::LDPd as _,
7585            &[
7586                rt.as_operand(),
7587                rt2.as_operand(),
7588                rn.as_operand(),
7589                imm7.as_operand(),
7590            ],
7591        );
7592    }
7593    fn stpd_pre(
7594        &mut self,
7595        rt: impl OperandCast,
7596        rt2: impl OperandCast,
7597        rn: impl OperandCast,
7598        imm7: impl OperandCast,
7599    ) {
7600        return self.emit_n(
7601            Opcode::STPd_pre as _,
7602            &[
7603                rt.as_operand(),
7604                rt2.as_operand(),
7605                rn.as_operand(),
7606                imm7.as_operand(),
7607            ],
7608        );
7609    }
7610    fn ldpd_pre(
7611        &mut self,
7612        rt: impl OperandCast,
7613        rt2: impl OperandCast,
7614        rn: impl OperandCast,
7615        imm7: impl OperandCast,
7616    ) {
7617        return self.emit_n(
7618            Opcode::LDPd_pre as _,
7619            &[
7620                rt.as_operand(),
7621                rt2.as_operand(),
7622                rn.as_operand(),
7623                imm7.as_operand(),
7624            ],
7625        );
7626    }
7627    fn stnpq(
7628        &mut self,
7629        rt: impl OperandCast,
7630        rt2: impl OperandCast,
7631        rn: impl OperandCast,
7632        imm7: impl OperandCast,
7633    ) {
7634        return self.emit_n(
7635            Opcode::STNPq as _,
7636            &[
7637                rt.as_operand(),
7638                rt2.as_operand(),
7639                rn.as_operand(),
7640                imm7.as_operand(),
7641            ],
7642        );
7643    }
7644    fn ldnpq(
7645        &mut self,
7646        rt: impl OperandCast,
7647        rt2: impl OperandCast,
7648        rn: impl OperandCast,
7649        imm7: impl OperandCast,
7650    ) {
7651        return self.emit_n(
7652            Opcode::LDNPq as _,
7653            &[
7654                rt.as_operand(),
7655                rt2.as_operand(),
7656                rn.as_operand(),
7657                imm7.as_operand(),
7658            ],
7659        );
7660    }
7661    fn stpq_post(
7662        &mut self,
7663        rt: impl OperandCast,
7664        rt2: impl OperandCast,
7665        rn: impl OperandCast,
7666        imm7: impl OperandCast,
7667    ) {
7668        return self.emit_n(
7669            Opcode::STPq_post as _,
7670            &[
7671                rt.as_operand(),
7672                rt2.as_operand(),
7673                rn.as_operand(),
7674                imm7.as_operand(),
7675            ],
7676        );
7677    }
7678    fn ldpq_post(
7679        &mut self,
7680        rt: impl OperandCast,
7681        rt2: impl OperandCast,
7682        rn: impl OperandCast,
7683        imm7: impl OperandCast,
7684    ) {
7685        return self.emit_n(
7686            Opcode::LDPq_post as _,
7687            &[
7688                rt.as_operand(),
7689                rt2.as_operand(),
7690                rn.as_operand(),
7691                imm7.as_operand(),
7692            ],
7693        );
7694    }
7695    fn stpq(
7696        &mut self,
7697        rt: impl OperandCast,
7698        rt2: impl OperandCast,
7699        rn: impl OperandCast,
7700        imm7: impl OperandCast,
7701    ) {
7702        return self.emit_n(
7703            Opcode::STPq as _,
7704            &[
7705                rt.as_operand(),
7706                rt2.as_operand(),
7707                rn.as_operand(),
7708                imm7.as_operand(),
7709            ],
7710        );
7711    }
7712    fn ldpq(
7713        &mut self,
7714        rt: impl OperandCast,
7715        rt2: impl OperandCast,
7716        rn: impl OperandCast,
7717        imm7: impl OperandCast,
7718    ) {
7719        return self.emit_n(
7720            Opcode::LDPq as _,
7721            &[
7722                rt.as_operand(),
7723                rt2.as_operand(),
7724                rn.as_operand(),
7725                imm7.as_operand(),
7726            ],
7727        );
7728    }
7729    fn stpq_pre(
7730        &mut self,
7731        rt: impl OperandCast,
7732        rt2: impl OperandCast,
7733        rn: impl OperandCast,
7734        imm7: impl OperandCast,
7735    ) {
7736        return self.emit_n(
7737            Opcode::STPq_pre as _,
7738            &[
7739                rt.as_operand(),
7740                rt2.as_operand(),
7741                rn.as_operand(),
7742                imm7.as_operand(),
7743            ],
7744        );
7745    }
7746    fn ldpq_pre(
7747        &mut self,
7748        rt: impl OperandCast,
7749        rt2: impl OperandCast,
7750        rn: impl OperandCast,
7751        imm7: impl OperandCast,
7752    ) {
7753        return self.emit_n(
7754            Opcode::LDPq_pre as _,
7755            &[
7756                rt.as_operand(),
7757                rt2.as_operand(),
7758                rn.as_operand(),
7759                imm7.as_operand(),
7760            ],
7761        );
7762    }
7763    fn sturb_(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm9: impl OperandCast) {
7764        return self.emit_n(
7765            Opcode::STURb as _,
7766            &[rt.as_operand(), rn.as_operand(), imm9.as_operand()],
7767        );
7768    }
7769    fn strb_post_(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm9: impl OperandCast) {
7770        return self.emit_n(
7771            Opcode::STRb_post as _,
7772            &[rt.as_operand(), rn.as_operand(), imm9.as_operand()],
7773        );
7774    }
7775    fn strb_pre_(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm9: impl OperandCast) {
7776        return self.emit_n(
7777            Opcode::STRb_pre as _,
7778            &[rt.as_operand(), rn.as_operand(), imm9.as_operand()],
7779        );
7780    }
7781    fn ldurb_(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm9: impl OperandCast) {
7782        return self.emit_n(
7783            Opcode::LDURb as _,
7784            &[rt.as_operand(), rn.as_operand(), imm9.as_operand()],
7785        );
7786    }
7787    fn ldrb_post_(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm9: impl OperandCast) {
7788        return self.emit_n(
7789            Opcode::LDRb_post as _,
7790            &[rt.as_operand(), rn.as_operand(), imm9.as_operand()],
7791        );
7792    }
7793    fn ldrb_pre_(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm9: impl OperandCast) {
7794        return self.emit_n(
7795            Opcode::LDRb_pre as _,
7796            &[rt.as_operand(), rn.as_operand(), imm9.as_operand()],
7797        );
7798    }
7799    fn sturq(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm9: impl OperandCast) {
7800        return self.emit_n(
7801            Opcode::STURq as _,
7802            &[rt.as_operand(), rn.as_operand(), imm9.as_operand()],
7803        );
7804    }
7805    fn strq_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm9: impl OperandCast) {
7806        return self.emit_n(
7807            Opcode::STRq_post as _,
7808            &[rt.as_operand(), rn.as_operand(), imm9.as_operand()],
7809        );
7810    }
7811    fn strq_pre(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm9: impl OperandCast) {
7812        return self.emit_n(
7813            Opcode::STRq_pre as _,
7814            &[rt.as_operand(), rn.as_operand(), imm9.as_operand()],
7815        );
7816    }
7817    fn ldurq(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm9: impl OperandCast) {
7818        return self.emit_n(
7819            Opcode::LDURq as _,
7820            &[rt.as_operand(), rn.as_operand(), imm9.as_operand()],
7821        );
7822    }
7823    fn ldrq_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm9: impl OperandCast) {
7824        return self.emit_n(
7825            Opcode::LDRq_post as _,
7826            &[rt.as_operand(), rn.as_operand(), imm9.as_operand()],
7827        );
7828    }
7829    fn ldrq_pre(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm9: impl OperandCast) {
7830        return self.emit_n(
7831            Opcode::LDRq_pre as _,
7832            &[rt.as_operand(), rn.as_operand(), imm9.as_operand()],
7833        );
7834    }
7835    fn sturh_(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm9: impl OperandCast) {
7836        return self.emit_n(
7837            Opcode::STURh as _,
7838            &[rt.as_operand(), rn.as_operand(), imm9.as_operand()],
7839        );
7840    }
7841    fn strh_post_(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm9: impl OperandCast) {
7842        return self.emit_n(
7843            Opcode::STRh_post as _,
7844            &[rt.as_operand(), rn.as_operand(), imm9.as_operand()],
7845        );
7846    }
7847    fn strh_pre_(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm9: impl OperandCast) {
7848        return self.emit_n(
7849            Opcode::STRh_pre as _,
7850            &[rt.as_operand(), rn.as_operand(), imm9.as_operand()],
7851        );
7852    }
7853    fn ldurh_(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm9: impl OperandCast) {
7854        return self.emit_n(
7855            Opcode::LDURh as _,
7856            &[rt.as_operand(), rn.as_operand(), imm9.as_operand()],
7857        );
7858    }
7859    fn ldrh_post_(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm9: impl OperandCast) {
7860        return self.emit_n(
7861            Opcode::LDRh_post as _,
7862            &[rt.as_operand(), rn.as_operand(), imm9.as_operand()],
7863        );
7864    }
7865    fn ldrh_pre_(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm9: impl OperandCast) {
7866        return self.emit_n(
7867            Opcode::LDRh_pre as _,
7868            &[rt.as_operand(), rn.as_operand(), imm9.as_operand()],
7869        );
7870    }
7871    fn sturs(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm9: impl OperandCast) {
7872        return self.emit_n(
7873            Opcode::STURs as _,
7874            &[rt.as_operand(), rn.as_operand(), imm9.as_operand()],
7875        );
7876    }
7877    fn strs_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm9: impl OperandCast) {
7878        return self.emit_n(
7879            Opcode::STRs_post as _,
7880            &[rt.as_operand(), rn.as_operand(), imm9.as_operand()],
7881        );
7882    }
7883    fn strs_pre(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm9: impl OperandCast) {
7884        return self.emit_n(
7885            Opcode::STRs_pre as _,
7886            &[rt.as_operand(), rn.as_operand(), imm9.as_operand()],
7887        );
7888    }
7889    fn ldurs(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm9: impl OperandCast) {
7890        return self.emit_n(
7891            Opcode::LDURs as _,
7892            &[rt.as_operand(), rn.as_operand(), imm9.as_operand()],
7893        );
7894    }
7895    fn ldrs_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm9: impl OperandCast) {
7896        return self.emit_n(
7897            Opcode::LDRs_post as _,
7898            &[rt.as_operand(), rn.as_operand(), imm9.as_operand()],
7899        );
7900    }
7901    fn ldrs_pre(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm9: impl OperandCast) {
7902        return self.emit_n(
7903            Opcode::LDRs_pre as _,
7904            &[rt.as_operand(), rn.as_operand(), imm9.as_operand()],
7905        );
7906    }
7907    fn sturd(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm9: impl OperandCast) {
7908        return self.emit_n(
7909            Opcode::STURd as _,
7910            &[rt.as_operand(), rn.as_operand(), imm9.as_operand()],
7911        );
7912    }
7913    fn strd_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm9: impl OperandCast) {
7914        return self.emit_n(
7915            Opcode::STRd_post as _,
7916            &[rt.as_operand(), rn.as_operand(), imm9.as_operand()],
7917        );
7918    }
7919    fn strd_pre(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm9: impl OperandCast) {
7920        return self.emit_n(
7921            Opcode::STRd_pre as _,
7922            &[rt.as_operand(), rn.as_operand(), imm9.as_operand()],
7923        );
7924    }
7925    fn ldurd(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm9: impl OperandCast) {
7926        return self.emit_n(
7927            Opcode::LDURd as _,
7928            &[rt.as_operand(), rn.as_operand(), imm9.as_operand()],
7929        );
7930    }
7931    fn ldrd_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm9: impl OperandCast) {
7932        return self.emit_n(
7933            Opcode::LDRd_post as _,
7934            &[rt.as_operand(), rn.as_operand(), imm9.as_operand()],
7935        );
7936    }
7937    fn ldrd_pre(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm9: impl OperandCast) {
7938        return self.emit_n(
7939            Opcode::LDRd_pre as _,
7940            &[rt.as_operand(), rn.as_operand(), imm9.as_operand()],
7941        );
7942    }
7943    fn strbu(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm12: impl OperandCast) {
7944        return self.emit_n(
7945            Opcode::STRbu as _,
7946            &[rt.as_operand(), rn.as_operand(), imm12.as_operand()],
7947        );
7948    }
7949    fn ldrbu(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm12: impl OperandCast) {
7950        return self.emit_n(
7951            Opcode::LDRbu as _,
7952            &[rt.as_operand(), rn.as_operand(), imm12.as_operand()],
7953        );
7954    }
7955    fn strqu(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm12: impl OperandCast) {
7956        return self.emit_n(
7957            Opcode::STRqu as _,
7958            &[rt.as_operand(), rn.as_operand(), imm12.as_operand()],
7959        );
7960    }
7961    fn ldrqu(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm12: impl OperandCast) {
7962        return self.emit_n(
7963            Opcode::LDRqu as _,
7964            &[rt.as_operand(), rn.as_operand(), imm12.as_operand()],
7965        );
7966    }
7967    fn strhu(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm12: impl OperandCast) {
7968        return self.emit_n(
7969            Opcode::STRhu as _,
7970            &[rt.as_operand(), rn.as_operand(), imm12.as_operand()],
7971        );
7972    }
7973    fn ldrhu(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm12: impl OperandCast) {
7974        return self.emit_n(
7975            Opcode::LDRhu as _,
7976            &[rt.as_operand(), rn.as_operand(), imm12.as_operand()],
7977        );
7978    }
7979    fn strsu(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm12: impl OperandCast) {
7980        return self.emit_n(
7981            Opcode::STRsu as _,
7982            &[rt.as_operand(), rn.as_operand(), imm12.as_operand()],
7983        );
7984    }
7985    fn ldrsu(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm12: impl OperandCast) {
7986        return self.emit_n(
7987            Opcode::LDRsu as _,
7988            &[rt.as_operand(), rn.as_operand(), imm12.as_operand()],
7989        );
7990    }
7991    fn strdu(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm12: impl OperandCast) {
7992        return self.emit_n(
7993            Opcode::STRdu as _,
7994            &[rt.as_operand(), rn.as_operand(), imm12.as_operand()],
7995        );
7996    }
7997    fn ldrdu(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm12: impl OperandCast) {
7998        return self.emit_n(
7999            Opcode::LDRdu as _,
8000            &[rt.as_operand(), rn.as_operand(), imm12.as_operand()],
8001        );
8002    }
8003    fn strbr_uxtw(
8004        &mut self,
8005        rt: impl OperandCast,
8006        rn: impl OperandCast,
8007        rm: impl OperandCast,
8008        sc: impl OperandCast,
8009    ) {
8010        return self.emit_n(
8011            Opcode::STRbr_uxtw as _,
8012            &[
8013                rt.as_operand(),
8014                rn.as_operand(),
8015                rm.as_operand(),
8016                sc.as_operand(),
8017            ],
8018        );
8019    }
8020    fn strbr_lsl(
8021        &mut self,
8022        rt: impl OperandCast,
8023        rn: impl OperandCast,
8024        rm: impl OperandCast,
8025        sc: impl OperandCast,
8026    ) {
8027        return self.emit_n(
8028            Opcode::STRbr_lsl as _,
8029            &[
8030                rt.as_operand(),
8031                rn.as_operand(),
8032                rm.as_operand(),
8033                sc.as_operand(),
8034            ],
8035        );
8036    }
8037    fn strbr_sxtw(
8038        &mut self,
8039        rt: impl OperandCast,
8040        rn: impl OperandCast,
8041        rm: impl OperandCast,
8042        sc: impl OperandCast,
8043    ) {
8044        return self.emit_n(
8045            Opcode::STRbr_sxtw as _,
8046            &[
8047                rt.as_operand(),
8048                rn.as_operand(),
8049                rm.as_operand(),
8050                sc.as_operand(),
8051            ],
8052        );
8053    }
8054    fn strbr_sxtx(
8055        &mut self,
8056        rt: impl OperandCast,
8057        rn: impl OperandCast,
8058        rm: impl OperandCast,
8059        sc: impl OperandCast,
8060    ) {
8061        return self.emit_n(
8062            Opcode::STRbr_sxtx as _,
8063            &[
8064                rt.as_operand(),
8065                rn.as_operand(),
8066                rm.as_operand(),
8067                sc.as_operand(),
8068            ],
8069        );
8070    }
8071    fn ldrbr_uxtw(
8072        &mut self,
8073        rt: impl OperandCast,
8074        rn: impl OperandCast,
8075        rm: impl OperandCast,
8076        sc: impl OperandCast,
8077    ) {
8078        return self.emit_n(
8079            Opcode::LDRbr_uxtw as _,
8080            &[
8081                rt.as_operand(),
8082                rn.as_operand(),
8083                rm.as_operand(),
8084                sc.as_operand(),
8085            ],
8086        );
8087    }
8088    fn ldrbr_lsl(
8089        &mut self,
8090        rt: impl OperandCast,
8091        rn: impl OperandCast,
8092        rm: impl OperandCast,
8093        sc: impl OperandCast,
8094    ) {
8095        return self.emit_n(
8096            Opcode::LDRbr_lsl as _,
8097            &[
8098                rt.as_operand(),
8099                rn.as_operand(),
8100                rm.as_operand(),
8101                sc.as_operand(),
8102            ],
8103        );
8104    }
8105    fn ldrbr_sxtw(
8106        &mut self,
8107        rt: impl OperandCast,
8108        rn: impl OperandCast,
8109        rm: impl OperandCast,
8110        sc: impl OperandCast,
8111    ) {
8112        return self.emit_n(
8113            Opcode::LDRbr_sxtw as _,
8114            &[
8115                rt.as_operand(),
8116                rn.as_operand(),
8117                rm.as_operand(),
8118                sc.as_operand(),
8119            ],
8120        );
8121    }
8122    fn ldrbr_sxtx(
8123        &mut self,
8124        rt: impl OperandCast,
8125        rn: impl OperandCast,
8126        rm: impl OperandCast,
8127        sc: impl OperandCast,
8128    ) {
8129        return self.emit_n(
8130            Opcode::LDRbr_sxtx as _,
8131            &[
8132                rt.as_operand(),
8133                rn.as_operand(),
8134                rm.as_operand(),
8135                sc.as_operand(),
8136            ],
8137        );
8138    }
8139    fn strqr_uxtw(
8140        &mut self,
8141        rt: impl OperandCast,
8142        rn: impl OperandCast,
8143        rm: impl OperandCast,
8144        sc: impl OperandCast,
8145    ) {
8146        return self.emit_n(
8147            Opcode::STRqr_uxtw as _,
8148            &[
8149                rt.as_operand(),
8150                rn.as_operand(),
8151                rm.as_operand(),
8152                sc.as_operand(),
8153            ],
8154        );
8155    }
8156    fn strqr_lsl(
8157        &mut self,
8158        rt: impl OperandCast,
8159        rn: impl OperandCast,
8160        rm: impl OperandCast,
8161        sc: impl OperandCast,
8162    ) {
8163        return self.emit_n(
8164            Opcode::STRqr_lsl as _,
8165            &[
8166                rt.as_operand(),
8167                rn.as_operand(),
8168                rm.as_operand(),
8169                sc.as_operand(),
8170            ],
8171        );
8172    }
8173    fn strqr_sxtw(
8174        &mut self,
8175        rt: impl OperandCast,
8176        rn: impl OperandCast,
8177        rm: impl OperandCast,
8178        sc: impl OperandCast,
8179    ) {
8180        return self.emit_n(
8181            Opcode::STRqr_sxtw as _,
8182            &[
8183                rt.as_operand(),
8184                rn.as_operand(),
8185                rm.as_operand(),
8186                sc.as_operand(),
8187            ],
8188        );
8189    }
8190    fn strqr_sxtx(
8191        &mut self,
8192        rt: impl OperandCast,
8193        rn: impl OperandCast,
8194        rm: impl OperandCast,
8195        sc: impl OperandCast,
8196    ) {
8197        return self.emit_n(
8198            Opcode::STRqr_sxtx as _,
8199            &[
8200                rt.as_operand(),
8201                rn.as_operand(),
8202                rm.as_operand(),
8203                sc.as_operand(),
8204            ],
8205        );
8206    }
8207    fn ldrqr_uxtw(
8208        &mut self,
8209        rt: impl OperandCast,
8210        rn: impl OperandCast,
8211        rm: impl OperandCast,
8212        sc: impl OperandCast,
8213    ) {
8214        return self.emit_n(
8215            Opcode::LDRqr_uxtw as _,
8216            &[
8217                rt.as_operand(),
8218                rn.as_operand(),
8219                rm.as_operand(),
8220                sc.as_operand(),
8221            ],
8222        );
8223    }
8224    fn ldrqr_lsl(
8225        &mut self,
8226        rt: impl OperandCast,
8227        rn: impl OperandCast,
8228        rm: impl OperandCast,
8229        sc: impl OperandCast,
8230    ) {
8231        return self.emit_n(
8232            Opcode::LDRqr_lsl as _,
8233            &[
8234                rt.as_operand(),
8235                rn.as_operand(),
8236                rm.as_operand(),
8237                sc.as_operand(),
8238            ],
8239        );
8240    }
8241    fn ldrqr_sxtw(
8242        &mut self,
8243        rt: impl OperandCast,
8244        rn: impl OperandCast,
8245        rm: impl OperandCast,
8246        sc: impl OperandCast,
8247    ) {
8248        return self.emit_n(
8249            Opcode::LDRqr_sxtw as _,
8250            &[
8251                rt.as_operand(),
8252                rn.as_operand(),
8253                rm.as_operand(),
8254                sc.as_operand(),
8255            ],
8256        );
8257    }
8258    fn ldrqr_sxtx(
8259        &mut self,
8260        rt: impl OperandCast,
8261        rn: impl OperandCast,
8262        rm: impl OperandCast,
8263        sc: impl OperandCast,
8264    ) {
8265        return self.emit_n(
8266            Opcode::LDRqr_sxtx as _,
8267            &[
8268                rt.as_operand(),
8269                rn.as_operand(),
8270                rm.as_operand(),
8271                sc.as_operand(),
8272            ],
8273        );
8274    }
8275    fn strhr_uxtw(
8276        &mut self,
8277        rt: impl OperandCast,
8278        rn: impl OperandCast,
8279        rm: impl OperandCast,
8280        sc: impl OperandCast,
8281    ) {
8282        return self.emit_n(
8283            Opcode::STRhr_uxtw as _,
8284            &[
8285                rt.as_operand(),
8286                rn.as_operand(),
8287                rm.as_operand(),
8288                sc.as_operand(),
8289            ],
8290        );
8291    }
8292    fn strhr_lsl(
8293        &mut self,
8294        rt: impl OperandCast,
8295        rn: impl OperandCast,
8296        rm: impl OperandCast,
8297        sc: impl OperandCast,
8298    ) {
8299        return self.emit_n(
8300            Opcode::STRhr_lsl as _,
8301            &[
8302                rt.as_operand(),
8303                rn.as_operand(),
8304                rm.as_operand(),
8305                sc.as_operand(),
8306            ],
8307        );
8308    }
8309    fn strhr_sxtw(
8310        &mut self,
8311        rt: impl OperandCast,
8312        rn: impl OperandCast,
8313        rm: impl OperandCast,
8314        sc: impl OperandCast,
8315    ) {
8316        return self.emit_n(
8317            Opcode::STRhr_sxtw as _,
8318            &[
8319                rt.as_operand(),
8320                rn.as_operand(),
8321                rm.as_operand(),
8322                sc.as_operand(),
8323            ],
8324        );
8325    }
8326    fn strhr_sxtx(
8327        &mut self,
8328        rt: impl OperandCast,
8329        rn: impl OperandCast,
8330        rm: impl OperandCast,
8331        sc: impl OperandCast,
8332    ) {
8333        return self.emit_n(
8334            Opcode::STRhr_sxtx as _,
8335            &[
8336                rt.as_operand(),
8337                rn.as_operand(),
8338                rm.as_operand(),
8339                sc.as_operand(),
8340            ],
8341        );
8342    }
8343    fn ldrhr_uxtw(
8344        &mut self,
8345        rt: impl OperandCast,
8346        rn: impl OperandCast,
8347        rm: impl OperandCast,
8348        sc: impl OperandCast,
8349    ) {
8350        return self.emit_n(
8351            Opcode::LDRhr_uxtw as _,
8352            &[
8353                rt.as_operand(),
8354                rn.as_operand(),
8355                rm.as_operand(),
8356                sc.as_operand(),
8357            ],
8358        );
8359    }
8360    fn ldrhr_lsl(
8361        &mut self,
8362        rt: impl OperandCast,
8363        rn: impl OperandCast,
8364        rm: impl OperandCast,
8365        sc: impl OperandCast,
8366    ) {
8367        return self.emit_n(
8368            Opcode::LDRhr_lsl as _,
8369            &[
8370                rt.as_operand(),
8371                rn.as_operand(),
8372                rm.as_operand(),
8373                sc.as_operand(),
8374            ],
8375        );
8376    }
8377    fn ldrhr_sxtw(
8378        &mut self,
8379        rt: impl OperandCast,
8380        rn: impl OperandCast,
8381        rm: impl OperandCast,
8382        sc: impl OperandCast,
8383    ) {
8384        return self.emit_n(
8385            Opcode::LDRhr_sxtw as _,
8386            &[
8387                rt.as_operand(),
8388                rn.as_operand(),
8389                rm.as_operand(),
8390                sc.as_operand(),
8391            ],
8392        );
8393    }
8394    fn ldrhr_sxtx(
8395        &mut self,
8396        rt: impl OperandCast,
8397        rn: impl OperandCast,
8398        rm: impl OperandCast,
8399        sc: impl OperandCast,
8400    ) {
8401        return self.emit_n(
8402            Opcode::LDRhr_sxtx as _,
8403            &[
8404                rt.as_operand(),
8405                rn.as_operand(),
8406                rm.as_operand(),
8407                sc.as_operand(),
8408            ],
8409        );
8410    }
8411    fn strsr_uxtw(
8412        &mut self,
8413        rt: impl OperandCast,
8414        rn: impl OperandCast,
8415        rm: impl OperandCast,
8416        sc: impl OperandCast,
8417    ) {
8418        return self.emit_n(
8419            Opcode::STRsr_uxtw as _,
8420            &[
8421                rt.as_operand(),
8422                rn.as_operand(),
8423                rm.as_operand(),
8424                sc.as_operand(),
8425            ],
8426        );
8427    }
8428    fn strsr_lsl(
8429        &mut self,
8430        rt: impl OperandCast,
8431        rn: impl OperandCast,
8432        rm: impl OperandCast,
8433        sc: impl OperandCast,
8434    ) {
8435        return self.emit_n(
8436            Opcode::STRsr_lsl as _,
8437            &[
8438                rt.as_operand(),
8439                rn.as_operand(),
8440                rm.as_operand(),
8441                sc.as_operand(),
8442            ],
8443        );
8444    }
8445    fn strsr_sxtw(
8446        &mut self,
8447        rt: impl OperandCast,
8448        rn: impl OperandCast,
8449        rm: impl OperandCast,
8450        sc: impl OperandCast,
8451    ) {
8452        return self.emit_n(
8453            Opcode::STRsr_sxtw as _,
8454            &[
8455                rt.as_operand(),
8456                rn.as_operand(),
8457                rm.as_operand(),
8458                sc.as_operand(),
8459            ],
8460        );
8461    }
8462    fn strsr_sxtx(
8463        &mut self,
8464        rt: impl OperandCast,
8465        rn: impl OperandCast,
8466        rm: impl OperandCast,
8467        sc: impl OperandCast,
8468    ) {
8469        return self.emit_n(
8470            Opcode::STRsr_sxtx as _,
8471            &[
8472                rt.as_operand(),
8473                rn.as_operand(),
8474                rm.as_operand(),
8475                sc.as_operand(),
8476            ],
8477        );
8478    }
8479    fn ldrsr_uxtw(
8480        &mut self,
8481        rt: impl OperandCast,
8482        rn: impl OperandCast,
8483        rm: impl OperandCast,
8484        sc: impl OperandCast,
8485    ) {
8486        return self.emit_n(
8487            Opcode::LDRsr_uxtw as _,
8488            &[
8489                rt.as_operand(),
8490                rn.as_operand(),
8491                rm.as_operand(),
8492                sc.as_operand(),
8493            ],
8494        );
8495    }
8496    fn ldrsr_lsl(
8497        &mut self,
8498        rt: impl OperandCast,
8499        rn: impl OperandCast,
8500        rm: impl OperandCast,
8501        sc: impl OperandCast,
8502    ) {
8503        return self.emit_n(
8504            Opcode::LDRsr_lsl as _,
8505            &[
8506                rt.as_operand(),
8507                rn.as_operand(),
8508                rm.as_operand(),
8509                sc.as_operand(),
8510            ],
8511        );
8512    }
8513    fn ldrsr_sxtw(
8514        &mut self,
8515        rt: impl OperandCast,
8516        rn: impl OperandCast,
8517        rm: impl OperandCast,
8518        sc: impl OperandCast,
8519    ) {
8520        return self.emit_n(
8521            Opcode::LDRsr_sxtw as _,
8522            &[
8523                rt.as_operand(),
8524                rn.as_operand(),
8525                rm.as_operand(),
8526                sc.as_operand(),
8527            ],
8528        );
8529    }
8530    fn ldrsr_sxtx(
8531        &mut self,
8532        rt: impl OperandCast,
8533        rn: impl OperandCast,
8534        rm: impl OperandCast,
8535        sc: impl OperandCast,
8536    ) {
8537        return self.emit_n(
8538            Opcode::LDRsr_sxtx as _,
8539            &[
8540                rt.as_operand(),
8541                rn.as_operand(),
8542                rm.as_operand(),
8543                sc.as_operand(),
8544            ],
8545        );
8546    }
8547    fn strdr_uxtw(
8548        &mut self,
8549        rt: impl OperandCast,
8550        rn: impl OperandCast,
8551        rm: impl OperandCast,
8552        sc: impl OperandCast,
8553    ) {
8554        return self.emit_n(
8555            Opcode::STRdr_uxtw as _,
8556            &[
8557                rt.as_operand(),
8558                rn.as_operand(),
8559                rm.as_operand(),
8560                sc.as_operand(),
8561            ],
8562        );
8563    }
8564    fn strdr_lsl(
8565        &mut self,
8566        rt: impl OperandCast,
8567        rn: impl OperandCast,
8568        rm: impl OperandCast,
8569        sc: impl OperandCast,
8570    ) {
8571        return self.emit_n(
8572            Opcode::STRdr_lsl as _,
8573            &[
8574                rt.as_operand(),
8575                rn.as_operand(),
8576                rm.as_operand(),
8577                sc.as_operand(),
8578            ],
8579        );
8580    }
8581    fn strdr_sxtw(
8582        &mut self,
8583        rt: impl OperandCast,
8584        rn: impl OperandCast,
8585        rm: impl OperandCast,
8586        sc: impl OperandCast,
8587    ) {
8588        return self.emit_n(
8589            Opcode::STRdr_sxtw as _,
8590            &[
8591                rt.as_operand(),
8592                rn.as_operand(),
8593                rm.as_operand(),
8594                sc.as_operand(),
8595            ],
8596        );
8597    }
8598    fn strdr_sxtx(
8599        &mut self,
8600        rt: impl OperandCast,
8601        rn: impl OperandCast,
8602        rm: impl OperandCast,
8603        sc: impl OperandCast,
8604    ) {
8605        return self.emit_n(
8606            Opcode::STRdr_sxtx as _,
8607            &[
8608                rt.as_operand(),
8609                rn.as_operand(),
8610                rm.as_operand(),
8611                sc.as_operand(),
8612            ],
8613        );
8614    }
8615    fn ldrdr_uxtw(
8616        &mut self,
8617        rt: impl OperandCast,
8618        rn: impl OperandCast,
8619        rm: impl OperandCast,
8620        sc: impl OperandCast,
8621    ) {
8622        return self.emit_n(
8623            Opcode::LDRdr_uxtw as _,
8624            &[
8625                rt.as_operand(),
8626                rn.as_operand(),
8627                rm.as_operand(),
8628                sc.as_operand(),
8629            ],
8630        );
8631    }
8632    fn ldrdr_lsl(
8633        &mut self,
8634        rt: impl OperandCast,
8635        rn: impl OperandCast,
8636        rm: impl OperandCast,
8637        sc: impl OperandCast,
8638    ) {
8639        return self.emit_n(
8640            Opcode::LDRdr_lsl as _,
8641            &[
8642                rt.as_operand(),
8643                rn.as_operand(),
8644                rm.as_operand(),
8645                sc.as_operand(),
8646            ],
8647        );
8648    }
8649    fn ldrdr_sxtw(
8650        &mut self,
8651        rt: impl OperandCast,
8652        rn: impl OperandCast,
8653        rm: impl OperandCast,
8654        sc: impl OperandCast,
8655    ) {
8656        return self.emit_n(
8657            Opcode::LDRdr_sxtw as _,
8658            &[
8659                rt.as_operand(),
8660                rn.as_operand(),
8661                rm.as_operand(),
8662                sc.as_operand(),
8663            ],
8664        );
8665    }
8666    fn ldrdr_sxtx(
8667        &mut self,
8668        rt: impl OperandCast,
8669        rn: impl OperandCast,
8670        rm: impl OperandCast,
8671        sc: impl OperandCast,
8672    ) {
8673        return self.emit_n(
8674            Opcode::LDRdr_sxtx as _,
8675            &[
8676                rt.as_operand(),
8677                rn.as_operand(),
8678                rm.as_operand(),
8679                sc.as_operand(),
8680            ],
8681        );
8682    }
8683    fn strbr(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
8684        return self.emit_n(
8685            Opcode::STRbr as _,
8686            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
8687        );
8688    }
8689    fn ldrbr(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
8690        return self.emit_n(
8691            Opcode::LDRbr as _,
8692            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
8693        );
8694    }
8695    fn strqr(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
8696        return self.emit_n(
8697            Opcode::STRqr as _,
8698            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
8699        );
8700    }
8701    fn ldrqr(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
8702        return self.emit_n(
8703            Opcode::LDRqr as _,
8704            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
8705        );
8706    }
8707    fn strhr(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
8708        return self.emit_n(
8709            Opcode::STRhr as _,
8710            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
8711        );
8712    }
8713    fn ldrhr(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
8714        return self.emit_n(
8715            Opcode::LDRhr as _,
8716            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
8717        );
8718    }
8719    fn strsr(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
8720        return self.emit_n(
8721            Opcode::STRsr as _,
8722            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
8723        );
8724    }
8725    fn ldrsr(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
8726        return self.emit_n(
8727            Opcode::LDRsr as _,
8728            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
8729        );
8730    }
8731    fn strdr(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
8732        return self.emit_n(
8733            Opcode::STRdr as _,
8734            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
8735        );
8736    }
8737    fn ldrdr(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
8738        return self.emit_n(
8739            Opcode::LDRdr as _,
8740            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
8741        );
8742    }
8743    fn ldrs_pcrel(&mut self, rt: impl OperandCast, imm19: impl OperandCast) {
8744        return self.emit_n(
8745            Opcode::LDRs_pcrel as _,
8746            &[rt.as_operand(), imm19.as_operand()],
8747        );
8748    }
8749    fn ldrd_pcrel(&mut self, rt: impl OperandCast, imm19: impl OperandCast) {
8750        return self.emit_n(
8751            Opcode::LDRd_pcrel as _,
8752            &[rt.as_operand(), imm19.as_operand()],
8753        );
8754    }
8755    fn ldrq_pcrel(&mut self, rt: impl OperandCast, imm19: impl OperandCast) {
8756        return self.emit_n(
8757            Opcode::LDRq_pcrel as _,
8758            &[rt.as_operand(), imm19.as_operand()],
8759        );
8760    }
8761    fn st4_8b(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
8762        return self.emit_n(Opcode::ST4_8b as _, &[rt.as_operand(), rn.as_operand()]);
8763    }
8764    fn st4_4h(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
8765        return self.emit_n(Opcode::ST4_4h as _, &[rt.as_operand(), rn.as_operand()]);
8766    }
8767    fn st4_2s(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
8768        return self.emit_n(Opcode::ST4_2s as _, &[rt.as_operand(), rn.as_operand()]);
8769    }
8770    fn st1_4_8b(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
8771        return self.emit_n(Opcode::ST1_4_8b as _, &[rt.as_operand(), rn.as_operand()]);
8772    }
8773    fn st1_4_4h(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
8774        return self.emit_n(Opcode::ST1_4_4h as _, &[rt.as_operand(), rn.as_operand()]);
8775    }
8776    fn st1_4_2s(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
8777        return self.emit_n(Opcode::ST1_4_2s as _, &[rt.as_operand(), rn.as_operand()]);
8778    }
8779    fn st1_4_1d(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
8780        return self.emit_n(Opcode::ST1_4_1d as _, &[rt.as_operand(), rn.as_operand()]);
8781    }
8782    fn st3_8b(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
8783        return self.emit_n(Opcode::ST3_8b as _, &[rt.as_operand(), rn.as_operand()]);
8784    }
8785    fn st3_4h(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
8786        return self.emit_n(Opcode::ST3_4h as _, &[rt.as_operand(), rn.as_operand()]);
8787    }
8788    fn st3_2s(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
8789        return self.emit_n(Opcode::ST3_2s as _, &[rt.as_operand(), rn.as_operand()]);
8790    }
8791    fn st1_3_8b(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
8792        return self.emit_n(Opcode::ST1_3_8b as _, &[rt.as_operand(), rn.as_operand()]);
8793    }
8794    fn st1_3_4h(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
8795        return self.emit_n(Opcode::ST1_3_4h as _, &[rt.as_operand(), rn.as_operand()]);
8796    }
8797    fn st1_3_2s(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
8798        return self.emit_n(Opcode::ST1_3_2s as _, &[rt.as_operand(), rn.as_operand()]);
8799    }
8800    fn st1_3_1d(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
8801        return self.emit_n(Opcode::ST1_3_1d as _, &[rt.as_operand(), rn.as_operand()]);
8802    }
8803    fn st1_1_8b(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
8804        return self.emit_n(Opcode::ST1_1_8b as _, &[rt.as_operand(), rn.as_operand()]);
8805    }
8806    fn st1_1_4h(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
8807        return self.emit_n(Opcode::ST1_1_4h as _, &[rt.as_operand(), rn.as_operand()]);
8808    }
8809    fn st1_1_2s(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
8810        return self.emit_n(Opcode::ST1_1_2s as _, &[rt.as_operand(), rn.as_operand()]);
8811    }
8812    fn st1_1_1d(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
8813        return self.emit_n(Opcode::ST1_1_1d as _, &[rt.as_operand(), rn.as_operand()]);
8814    }
8815    fn st2_8b(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
8816        return self.emit_n(Opcode::ST2_8b as _, &[rt.as_operand(), rn.as_operand()]);
8817    }
8818    fn st2_4h(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
8819        return self.emit_n(Opcode::ST2_4h as _, &[rt.as_operand(), rn.as_operand()]);
8820    }
8821    fn st2_2s(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
8822        return self.emit_n(Opcode::ST2_2s as _, &[rt.as_operand(), rn.as_operand()]);
8823    }
8824    fn st1_2_8b(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
8825        return self.emit_n(Opcode::ST1_2_8b as _, &[rt.as_operand(), rn.as_operand()]);
8826    }
8827    fn st1_2_4h(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
8828        return self.emit_n(Opcode::ST1_2_4h as _, &[rt.as_operand(), rn.as_operand()]);
8829    }
8830    fn st1_2_2s(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
8831        return self.emit_n(Opcode::ST1_2_2s as _, &[rt.as_operand(), rn.as_operand()]);
8832    }
8833    fn st1_2_1d(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
8834        return self.emit_n(Opcode::ST1_2_1d as _, &[rt.as_operand(), rn.as_operand()]);
8835    }
8836    fn ld4_8b(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
8837        return self.emit_n(Opcode::LD4_8b as _, &[rt.as_operand(), rn.as_operand()]);
8838    }
8839    fn ld4_4h(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
8840        return self.emit_n(Opcode::LD4_4h as _, &[rt.as_operand(), rn.as_operand()]);
8841    }
8842    fn ld4_2s(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
8843        return self.emit_n(Opcode::LD4_2s as _, &[rt.as_operand(), rn.as_operand()]);
8844    }
8845    fn ld1_4_8b(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
8846        return self.emit_n(Opcode::LD1_4_8b as _, &[rt.as_operand(), rn.as_operand()]);
8847    }
8848    fn ld1_4_4h(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
8849        return self.emit_n(Opcode::LD1_4_4h as _, &[rt.as_operand(), rn.as_operand()]);
8850    }
8851    fn ld1_4_2s(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
8852        return self.emit_n(Opcode::LD1_4_2s as _, &[rt.as_operand(), rn.as_operand()]);
8853    }
8854    fn ld1_4_1d(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
8855        return self.emit_n(Opcode::LD1_4_1d as _, &[rt.as_operand(), rn.as_operand()]);
8856    }
8857    fn ld3_8b(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
8858        return self.emit_n(Opcode::LD3_8b as _, &[rt.as_operand(), rn.as_operand()]);
8859    }
8860    fn ld3_4h(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
8861        return self.emit_n(Opcode::LD3_4h as _, &[rt.as_operand(), rn.as_operand()]);
8862    }
8863    fn ld3_2s(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
8864        return self.emit_n(Opcode::LD3_2s as _, &[rt.as_operand(), rn.as_operand()]);
8865    }
8866    fn ld1_3_8b(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
8867        return self.emit_n(Opcode::LD1_3_8b as _, &[rt.as_operand(), rn.as_operand()]);
8868    }
8869    fn ld1_3_4h(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
8870        return self.emit_n(Opcode::LD1_3_4h as _, &[rt.as_operand(), rn.as_operand()]);
8871    }
8872    fn ld1_3_2s(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
8873        return self.emit_n(Opcode::LD1_3_2s as _, &[rt.as_operand(), rn.as_operand()]);
8874    }
8875    fn ld1_3_1d(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
8876        return self.emit_n(Opcode::LD1_3_1d as _, &[rt.as_operand(), rn.as_operand()]);
8877    }
8878    fn ld1_1_8b(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
8879        return self.emit_n(Opcode::LD1_1_8b as _, &[rt.as_operand(), rn.as_operand()]);
8880    }
8881    fn ld1_1_4h(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
8882        return self.emit_n(Opcode::LD1_1_4h as _, &[rt.as_operand(), rn.as_operand()]);
8883    }
8884    fn ld1_1_2s(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
8885        return self.emit_n(Opcode::LD1_1_2s as _, &[rt.as_operand(), rn.as_operand()]);
8886    }
8887    fn ld1_1_1d(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
8888        return self.emit_n(Opcode::LD1_1_1d as _, &[rt.as_operand(), rn.as_operand()]);
8889    }
8890    fn ld2_8b(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
8891        return self.emit_n(Opcode::LD2_8b as _, &[rt.as_operand(), rn.as_operand()]);
8892    }
8893    fn ld2_4h(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
8894        return self.emit_n(Opcode::LD2_4h as _, &[rt.as_operand(), rn.as_operand()]);
8895    }
8896    fn ld2_2s(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
8897        return self.emit_n(Opcode::LD2_2s as _, &[rt.as_operand(), rn.as_operand()]);
8898    }
8899    fn ld1_2_8b(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
8900        return self.emit_n(Opcode::LD1_2_8b as _, &[rt.as_operand(), rn.as_operand()]);
8901    }
8902    fn ld1_2_4h(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
8903        return self.emit_n(Opcode::LD1_2_4h as _, &[rt.as_operand(), rn.as_operand()]);
8904    }
8905    fn ld1_2_2s(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
8906        return self.emit_n(Opcode::LD1_2_2s as _, &[rt.as_operand(), rn.as_operand()]);
8907    }
8908    fn ld1_2_1d(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
8909        return self.emit_n(Opcode::LD1_2_1d as _, &[rt.as_operand(), rn.as_operand()]);
8910    }
8911    fn st4_16b(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
8912        return self.emit_n(Opcode::ST4_16b as _, &[rt.as_operand(), rn.as_operand()]);
8913    }
8914    fn st4_8h(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
8915        return self.emit_n(Opcode::ST4_8h as _, &[rt.as_operand(), rn.as_operand()]);
8916    }
8917    fn st4_4s(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
8918        return self.emit_n(Opcode::ST4_4s as _, &[rt.as_operand(), rn.as_operand()]);
8919    }
8920    fn st4_2d(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
8921        return self.emit_n(Opcode::ST4_2d as _, &[rt.as_operand(), rn.as_operand()]);
8922    }
8923    fn st1_4_16b(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
8924        return self.emit_n(Opcode::ST1_4_16b as _, &[rt.as_operand(), rn.as_operand()]);
8925    }
8926    fn st1_4_8h(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
8927        return self.emit_n(Opcode::ST1_4_8h as _, &[rt.as_operand(), rn.as_operand()]);
8928    }
8929    fn st1_4_4s(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
8930        return self.emit_n(Opcode::ST1_4_4s as _, &[rt.as_operand(), rn.as_operand()]);
8931    }
8932    fn st1_4_2d(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
8933        return self.emit_n(Opcode::ST1_4_2d as _, &[rt.as_operand(), rn.as_operand()]);
8934    }
8935    fn st3_16b(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
8936        return self.emit_n(Opcode::ST3_16b as _, &[rt.as_operand(), rn.as_operand()]);
8937    }
8938    fn st3_8h(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
8939        return self.emit_n(Opcode::ST3_8h as _, &[rt.as_operand(), rn.as_operand()]);
8940    }
8941    fn st3_4s(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
8942        return self.emit_n(Opcode::ST3_4s as _, &[rt.as_operand(), rn.as_operand()]);
8943    }
8944    fn st3_2d(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
8945        return self.emit_n(Opcode::ST3_2d as _, &[rt.as_operand(), rn.as_operand()]);
8946    }
8947    fn st1_3_16b(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
8948        return self.emit_n(Opcode::ST1_3_16b as _, &[rt.as_operand(), rn.as_operand()]);
8949    }
8950    fn st1_3_8h(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
8951        return self.emit_n(Opcode::ST1_3_8h as _, &[rt.as_operand(), rn.as_operand()]);
8952    }
8953    fn st1_3_4s(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
8954        return self.emit_n(Opcode::ST1_3_4s as _, &[rt.as_operand(), rn.as_operand()]);
8955    }
8956    fn st1_3_2d(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
8957        return self.emit_n(Opcode::ST1_3_2d as _, &[rt.as_operand(), rn.as_operand()]);
8958    }
8959    fn st1_1_16b(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
8960        return self.emit_n(Opcode::ST1_1_16b as _, &[rt.as_operand(), rn.as_operand()]);
8961    }
8962    fn st1_1_8h(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
8963        return self.emit_n(Opcode::ST1_1_8h as _, &[rt.as_operand(), rn.as_operand()]);
8964    }
8965    fn st1_1_4s(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
8966        return self.emit_n(Opcode::ST1_1_4s as _, &[rt.as_operand(), rn.as_operand()]);
8967    }
8968    fn st1_1_2d(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
8969        return self.emit_n(Opcode::ST1_1_2d as _, &[rt.as_operand(), rn.as_operand()]);
8970    }
8971    fn st2_16b(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
8972        return self.emit_n(Opcode::ST2_16b as _, &[rt.as_operand(), rn.as_operand()]);
8973    }
8974    fn st2_8h(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
8975        return self.emit_n(Opcode::ST2_8h as _, &[rt.as_operand(), rn.as_operand()]);
8976    }
8977    fn st2_4s(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
8978        return self.emit_n(Opcode::ST2_4s as _, &[rt.as_operand(), rn.as_operand()]);
8979    }
8980    fn st2_2d(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
8981        return self.emit_n(Opcode::ST2_2d as _, &[rt.as_operand(), rn.as_operand()]);
8982    }
8983    fn st1_2_16b(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
8984        return self.emit_n(Opcode::ST1_2_16b as _, &[rt.as_operand(), rn.as_operand()]);
8985    }
8986    fn st1_2_8h(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
8987        return self.emit_n(Opcode::ST1_2_8h as _, &[rt.as_operand(), rn.as_operand()]);
8988    }
8989    fn st1_2_4s(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
8990        return self.emit_n(Opcode::ST1_2_4s as _, &[rt.as_operand(), rn.as_operand()]);
8991    }
8992    fn st1_2_2d(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
8993        return self.emit_n(Opcode::ST1_2_2d as _, &[rt.as_operand(), rn.as_operand()]);
8994    }
8995    fn ld4_16b(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
8996        return self.emit_n(Opcode::LD4_16b as _, &[rt.as_operand(), rn.as_operand()]);
8997    }
8998    fn ld4_8h(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
8999        return self.emit_n(Opcode::LD4_8h as _, &[rt.as_operand(), rn.as_operand()]);
9000    }
9001    fn ld4_4s(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
9002        return self.emit_n(Opcode::LD4_4s as _, &[rt.as_operand(), rn.as_operand()]);
9003    }
9004    fn ld4_2d(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
9005        return self.emit_n(Opcode::LD4_2d as _, &[rt.as_operand(), rn.as_operand()]);
9006    }
9007    fn ld1_4_16b(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
9008        return self.emit_n(Opcode::LD1_4_16b as _, &[rt.as_operand(), rn.as_operand()]);
9009    }
9010    fn ld1_4_8h(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
9011        return self.emit_n(Opcode::LD1_4_8h as _, &[rt.as_operand(), rn.as_operand()]);
9012    }
9013    fn ld1_4_4s(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
9014        return self.emit_n(Opcode::LD1_4_4s as _, &[rt.as_operand(), rn.as_operand()]);
9015    }
9016    fn ld1_4_2d(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
9017        return self.emit_n(Opcode::LD1_4_2d as _, &[rt.as_operand(), rn.as_operand()]);
9018    }
9019    fn ld3_16b(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
9020        return self.emit_n(Opcode::LD3_16b as _, &[rt.as_operand(), rn.as_operand()]);
9021    }
9022    fn ld3_8h(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
9023        return self.emit_n(Opcode::LD3_8h as _, &[rt.as_operand(), rn.as_operand()]);
9024    }
9025    fn ld3_4s(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
9026        return self.emit_n(Opcode::LD3_4s as _, &[rt.as_operand(), rn.as_operand()]);
9027    }
9028    fn ld3_2d(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
9029        return self.emit_n(Opcode::LD3_2d as _, &[rt.as_operand(), rn.as_operand()]);
9030    }
9031    fn ld1_3_16b(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
9032        return self.emit_n(Opcode::LD1_3_16b as _, &[rt.as_operand(), rn.as_operand()]);
9033    }
9034    fn ld1_3_8h(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
9035        return self.emit_n(Opcode::LD1_3_8h as _, &[rt.as_operand(), rn.as_operand()]);
9036    }
9037    fn ld1_3_4s(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
9038        return self.emit_n(Opcode::LD1_3_4s as _, &[rt.as_operand(), rn.as_operand()]);
9039    }
9040    fn ld1_3_2d(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
9041        return self.emit_n(Opcode::LD1_3_2d as _, &[rt.as_operand(), rn.as_operand()]);
9042    }
9043    fn ld1_1_16b(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
9044        return self.emit_n(Opcode::LD1_1_16b as _, &[rt.as_operand(), rn.as_operand()]);
9045    }
9046    fn ld1_1_8h(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
9047        return self.emit_n(Opcode::LD1_1_8h as _, &[rt.as_operand(), rn.as_operand()]);
9048    }
9049    fn ld1_1_4s(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
9050        return self.emit_n(Opcode::LD1_1_4s as _, &[rt.as_operand(), rn.as_operand()]);
9051    }
9052    fn ld1_1_2d(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
9053        return self.emit_n(Opcode::LD1_1_2d as _, &[rt.as_operand(), rn.as_operand()]);
9054    }
9055    fn ld2_16b(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
9056        return self.emit_n(Opcode::LD2_16b as _, &[rt.as_operand(), rn.as_operand()]);
9057    }
9058    fn ld2_8h(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
9059        return self.emit_n(Opcode::LD2_8h as _, &[rt.as_operand(), rn.as_operand()]);
9060    }
9061    fn ld2_4s(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
9062        return self.emit_n(Opcode::LD2_4s as _, &[rt.as_operand(), rn.as_operand()]);
9063    }
9064    fn ld2_2d(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
9065        return self.emit_n(Opcode::LD2_2d as _, &[rt.as_operand(), rn.as_operand()]);
9066    }
9067    fn ld1_2_16b(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
9068        return self.emit_n(Opcode::LD1_2_16b as _, &[rt.as_operand(), rn.as_operand()]);
9069    }
9070    fn ld1_2_8h(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
9071        return self.emit_n(Opcode::LD1_2_8h as _, &[rt.as_operand(), rn.as_operand()]);
9072    }
9073    fn ld1_2_4s(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
9074        return self.emit_n(Opcode::LD1_2_4s as _, &[rt.as_operand(), rn.as_operand()]);
9075    }
9076    fn ld1_2_2d(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
9077        return self.emit_n(Opcode::LD1_2_2d as _, &[rt.as_operand(), rn.as_operand()]);
9078    }
9079    fn st4_8b_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
9080        return self.emit_n(
9081            Opcode::ST4_8b_post as _,
9082            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
9083        );
9084    }
9085    fn st4_4h_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
9086        return self.emit_n(
9087            Opcode::ST4_4h_post as _,
9088            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
9089        );
9090    }
9091    fn st4_2s_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
9092        return self.emit_n(
9093            Opcode::ST4_2s_post as _,
9094            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
9095        );
9096    }
9097    fn st1_4_8b_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
9098        return self.emit_n(
9099            Opcode::ST1_4_8b_post as _,
9100            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
9101        );
9102    }
9103    fn st1_4_4h_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
9104        return self.emit_n(
9105            Opcode::ST1_4_4h_post as _,
9106            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
9107        );
9108    }
9109    fn st1_4_2s_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
9110        return self.emit_n(
9111            Opcode::ST1_4_2s_post as _,
9112            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
9113        );
9114    }
9115    fn st1_4_1d_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
9116        return self.emit_n(
9117            Opcode::ST1_4_1d_post as _,
9118            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
9119        );
9120    }
9121    fn st3_8b_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
9122        return self.emit_n(
9123            Opcode::ST3_8b_post as _,
9124            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
9125        );
9126    }
9127    fn st3_4h_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
9128        return self.emit_n(
9129            Opcode::ST3_4h_post as _,
9130            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
9131        );
9132    }
9133    fn st3_2s_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
9134        return self.emit_n(
9135            Opcode::ST3_2s_post as _,
9136            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
9137        );
9138    }
9139    fn st1_3_8b_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
9140        return self.emit_n(
9141            Opcode::ST1_3_8b_post as _,
9142            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
9143        );
9144    }
9145    fn st1_3_4h_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
9146        return self.emit_n(
9147            Opcode::ST1_3_4h_post as _,
9148            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
9149        );
9150    }
9151    fn st1_3_2s_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
9152        return self.emit_n(
9153            Opcode::ST1_3_2s_post as _,
9154            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
9155        );
9156    }
9157    fn st1_3_1d_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
9158        return self.emit_n(
9159            Opcode::ST1_3_1d_post as _,
9160            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
9161        );
9162    }
9163    fn st1_1_8b_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
9164        return self.emit_n(
9165            Opcode::ST1_1_8b_post as _,
9166            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
9167        );
9168    }
9169    fn st1_1_4h_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
9170        return self.emit_n(
9171            Opcode::ST1_1_4h_post as _,
9172            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
9173        );
9174    }
9175    fn st1_1_2s_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
9176        return self.emit_n(
9177            Opcode::ST1_1_2s_post as _,
9178            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
9179        );
9180    }
9181    fn st1_1_1d_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
9182        return self.emit_n(
9183            Opcode::ST1_1_1d_post as _,
9184            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
9185        );
9186    }
9187    fn st2_8b_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
9188        return self.emit_n(
9189            Opcode::ST2_8b_post as _,
9190            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
9191        );
9192    }
9193    fn st2_4h_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
9194        return self.emit_n(
9195            Opcode::ST2_4h_post as _,
9196            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
9197        );
9198    }
9199    fn st2_2s_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
9200        return self.emit_n(
9201            Opcode::ST2_2s_post as _,
9202            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
9203        );
9204    }
9205    fn st1_2_8b_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
9206        return self.emit_n(
9207            Opcode::ST1_2_8b_post as _,
9208            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
9209        );
9210    }
9211    fn st1_2_4h_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
9212        return self.emit_n(
9213            Opcode::ST1_2_4h_post as _,
9214            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
9215        );
9216    }
9217    fn st1_2_2s_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
9218        return self.emit_n(
9219            Opcode::ST1_2_2s_post as _,
9220            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
9221        );
9222    }
9223    fn st1_2_1d_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
9224        return self.emit_n(
9225            Opcode::ST1_2_1d_post as _,
9226            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
9227        );
9228    }
9229    fn ld4_8b_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
9230        return self.emit_n(
9231            Opcode::LD4_8b_post as _,
9232            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
9233        );
9234    }
9235    fn ld4_4h_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
9236        return self.emit_n(
9237            Opcode::LD4_4h_post as _,
9238            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
9239        );
9240    }
9241    fn ld4_2s_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
9242        return self.emit_n(
9243            Opcode::LD4_2s_post as _,
9244            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
9245        );
9246    }
9247    fn ld1_4_8b_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
9248        return self.emit_n(
9249            Opcode::LD1_4_8b_post as _,
9250            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
9251        );
9252    }
9253    fn ld1_4_4h_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
9254        return self.emit_n(
9255            Opcode::LD1_4_4h_post as _,
9256            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
9257        );
9258    }
9259    fn ld1_4_2s_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
9260        return self.emit_n(
9261            Opcode::LD1_4_2s_post as _,
9262            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
9263        );
9264    }
9265    fn ld1_4_1d_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
9266        return self.emit_n(
9267            Opcode::LD1_4_1d_post as _,
9268            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
9269        );
9270    }
9271    fn ld3_8b_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
9272        return self.emit_n(
9273            Opcode::LD3_8b_post as _,
9274            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
9275        );
9276    }
9277    fn ld3_4h_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
9278        return self.emit_n(
9279            Opcode::LD3_4h_post as _,
9280            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
9281        );
9282    }
9283    fn ld3_2s_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
9284        return self.emit_n(
9285            Opcode::LD3_2s_post as _,
9286            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
9287        );
9288    }
9289    fn ld1_3_8b_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
9290        return self.emit_n(
9291            Opcode::LD1_3_8b_post as _,
9292            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
9293        );
9294    }
9295    fn ld1_3_4h_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
9296        return self.emit_n(
9297            Opcode::LD1_3_4h_post as _,
9298            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
9299        );
9300    }
9301    fn ld1_3_2s_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
9302        return self.emit_n(
9303            Opcode::LD1_3_2s_post as _,
9304            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
9305        );
9306    }
9307    fn ld1_3_1d_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
9308        return self.emit_n(
9309            Opcode::LD1_3_1d_post as _,
9310            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
9311        );
9312    }
9313    fn ld1_1_8b_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
9314        return self.emit_n(
9315            Opcode::LD1_1_8b_post as _,
9316            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
9317        );
9318    }
9319    fn ld1_1_4h_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
9320        return self.emit_n(
9321            Opcode::LD1_1_4h_post as _,
9322            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
9323        );
9324    }
9325    fn ld1_1_2s_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
9326        return self.emit_n(
9327            Opcode::LD1_1_2s_post as _,
9328            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
9329        );
9330    }
9331    fn ld1_1_1d_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
9332        return self.emit_n(
9333            Opcode::LD1_1_1d_post as _,
9334            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
9335        );
9336    }
9337    fn ld2_8b_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
9338        return self.emit_n(
9339            Opcode::LD2_8b_post as _,
9340            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
9341        );
9342    }
9343    fn ld2_4h_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
9344        return self.emit_n(
9345            Opcode::LD2_4h_post as _,
9346            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
9347        );
9348    }
9349    fn ld2_2s_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
9350        return self.emit_n(
9351            Opcode::LD2_2s_post as _,
9352            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
9353        );
9354    }
9355    fn ld1_2_8b_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
9356        return self.emit_n(
9357            Opcode::LD1_2_8b_post as _,
9358            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
9359        );
9360    }
9361    fn ld1_2_4h_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
9362        return self.emit_n(
9363            Opcode::LD1_2_4h_post as _,
9364            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
9365        );
9366    }
9367    fn ld1_2_2s_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
9368        return self.emit_n(
9369            Opcode::LD1_2_2s_post as _,
9370            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
9371        );
9372    }
9373    fn ld1_2_1d_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
9374        return self.emit_n(
9375            Opcode::LD1_2_1d_post as _,
9376            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
9377        );
9378    }
9379    fn st4_16b_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
9380        return self.emit_n(
9381            Opcode::ST4_16b_post as _,
9382            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
9383        );
9384    }
9385    fn st4_8h_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
9386        return self.emit_n(
9387            Opcode::ST4_8h_post as _,
9388            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
9389        );
9390    }
9391    fn st4_4s_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
9392        return self.emit_n(
9393            Opcode::ST4_4s_post as _,
9394            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
9395        );
9396    }
9397    fn st4_2d_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
9398        return self.emit_n(
9399            Opcode::ST4_2d_post as _,
9400            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
9401        );
9402    }
9403    fn st1_4_16b_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
9404        return self.emit_n(
9405            Opcode::ST1_4_16b_post as _,
9406            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
9407        );
9408    }
9409    fn st1_4_8h_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
9410        return self.emit_n(
9411            Opcode::ST1_4_8h_post as _,
9412            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
9413        );
9414    }
9415    fn st1_4_4s_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
9416        return self.emit_n(
9417            Opcode::ST1_4_4s_post as _,
9418            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
9419        );
9420    }
9421    fn st1_4_2d_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
9422        return self.emit_n(
9423            Opcode::ST1_4_2d_post as _,
9424            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
9425        );
9426    }
9427    fn st3_16b_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
9428        return self.emit_n(
9429            Opcode::ST3_16b_post as _,
9430            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
9431        );
9432    }
9433    fn st3_8h_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
9434        return self.emit_n(
9435            Opcode::ST3_8h_post as _,
9436            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
9437        );
9438    }
9439    fn st3_4s_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
9440        return self.emit_n(
9441            Opcode::ST3_4s_post as _,
9442            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
9443        );
9444    }
9445    fn st3_2d_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
9446        return self.emit_n(
9447            Opcode::ST3_2d_post as _,
9448            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
9449        );
9450    }
9451    fn st1_3_16b_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
9452        return self.emit_n(
9453            Opcode::ST1_3_16b_post as _,
9454            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
9455        );
9456    }
9457    fn st1_3_8h_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
9458        return self.emit_n(
9459            Opcode::ST1_3_8h_post as _,
9460            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
9461        );
9462    }
9463    fn st1_3_4s_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
9464        return self.emit_n(
9465            Opcode::ST1_3_4s_post as _,
9466            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
9467        );
9468    }
9469    fn st1_3_2d_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
9470        return self.emit_n(
9471            Opcode::ST1_3_2d_post as _,
9472            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
9473        );
9474    }
9475    fn st1_1_16b_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
9476        return self.emit_n(
9477            Opcode::ST1_1_16b_post as _,
9478            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
9479        );
9480    }
9481    fn st1_1_8h_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
9482        return self.emit_n(
9483            Opcode::ST1_1_8h_post as _,
9484            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
9485        );
9486    }
9487    fn st1_1_4s_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
9488        return self.emit_n(
9489            Opcode::ST1_1_4s_post as _,
9490            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
9491        );
9492    }
9493    fn st1_1_2d_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
9494        return self.emit_n(
9495            Opcode::ST1_1_2d_post as _,
9496            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
9497        );
9498    }
9499    fn st2_16b_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
9500        return self.emit_n(
9501            Opcode::ST2_16b_post as _,
9502            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
9503        );
9504    }
9505    fn st2_8h_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
9506        return self.emit_n(
9507            Opcode::ST2_8h_post as _,
9508            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
9509        );
9510    }
9511    fn st2_4s_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
9512        return self.emit_n(
9513            Opcode::ST2_4s_post as _,
9514            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
9515        );
9516    }
9517    fn st2_2d_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
9518        return self.emit_n(
9519            Opcode::ST2_2d_post as _,
9520            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
9521        );
9522    }
9523    fn st1_2_16b_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
9524        return self.emit_n(
9525            Opcode::ST1_2_16b_post as _,
9526            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
9527        );
9528    }
9529    fn st1_2_8h_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
9530        return self.emit_n(
9531            Opcode::ST1_2_8h_post as _,
9532            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
9533        );
9534    }
9535    fn st1_2_4s_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
9536        return self.emit_n(
9537            Opcode::ST1_2_4s_post as _,
9538            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
9539        );
9540    }
9541    fn st1_2_2d_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
9542        return self.emit_n(
9543            Opcode::ST1_2_2d_post as _,
9544            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
9545        );
9546    }
9547    fn ld4_16b_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
9548        return self.emit_n(
9549            Opcode::LD4_16b_post as _,
9550            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
9551        );
9552    }
9553    fn ld4_8h_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
9554        return self.emit_n(
9555            Opcode::LD4_8h_post as _,
9556            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
9557        );
9558    }
9559    fn ld4_4s_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
9560        return self.emit_n(
9561            Opcode::LD4_4s_post as _,
9562            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
9563        );
9564    }
9565    fn ld4_2d_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
9566        return self.emit_n(
9567            Opcode::LD4_2d_post as _,
9568            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
9569        );
9570    }
9571    fn ld1_4_16b_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
9572        return self.emit_n(
9573            Opcode::LD1_4_16b_post as _,
9574            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
9575        );
9576    }
9577    fn ld1_4_8h_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
9578        return self.emit_n(
9579            Opcode::LD1_4_8h_post as _,
9580            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
9581        );
9582    }
9583    fn ld1_4_4s_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
9584        return self.emit_n(
9585            Opcode::LD1_4_4s_post as _,
9586            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
9587        );
9588    }
9589    fn ld1_4_2d_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
9590        return self.emit_n(
9591            Opcode::LD1_4_2d_post as _,
9592            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
9593        );
9594    }
9595    fn ld3_16b_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
9596        return self.emit_n(
9597            Opcode::LD3_16b_post as _,
9598            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
9599        );
9600    }
9601    fn ld3_8h_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
9602        return self.emit_n(
9603            Opcode::LD3_8h_post as _,
9604            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
9605        );
9606    }
9607    fn ld3_4s_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
9608        return self.emit_n(
9609            Opcode::LD3_4s_post as _,
9610            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
9611        );
9612    }
9613    fn ld3_2d_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
9614        return self.emit_n(
9615            Opcode::LD3_2d_post as _,
9616            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
9617        );
9618    }
9619    fn ld1_3_16b_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
9620        return self.emit_n(
9621            Opcode::LD1_3_16b_post as _,
9622            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
9623        );
9624    }
9625    fn ld1_3_8h_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
9626        return self.emit_n(
9627            Opcode::LD1_3_8h_post as _,
9628            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
9629        );
9630    }
9631    fn ld1_3_4s_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
9632        return self.emit_n(
9633            Opcode::LD1_3_4s_post as _,
9634            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
9635        );
9636    }
9637    fn ld1_3_2d_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
9638        return self.emit_n(
9639            Opcode::LD1_3_2d_post as _,
9640            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
9641        );
9642    }
9643    fn ld1_1_16b_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
9644        return self.emit_n(
9645            Opcode::LD1_1_16b_post as _,
9646            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
9647        );
9648    }
9649    fn ld1_1_8h_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
9650        return self.emit_n(
9651            Opcode::LD1_1_8h_post as _,
9652            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
9653        );
9654    }
9655    fn ld1_1_4s_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
9656        return self.emit_n(
9657            Opcode::LD1_1_4s_post as _,
9658            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
9659        );
9660    }
9661    fn ld1_1_2d_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
9662        return self.emit_n(
9663            Opcode::LD1_1_2d_post as _,
9664            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
9665        );
9666    }
9667    fn ld2_16b_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
9668        return self.emit_n(
9669            Opcode::LD2_16b_post as _,
9670            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
9671        );
9672    }
9673    fn ld2_8h_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
9674        return self.emit_n(
9675            Opcode::LD2_8h_post as _,
9676            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
9677        );
9678    }
9679    fn ld2_4s_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
9680        return self.emit_n(
9681            Opcode::LD2_4s_post as _,
9682            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
9683        );
9684    }
9685    fn ld2_2d_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
9686        return self.emit_n(
9687            Opcode::LD2_2d_post as _,
9688            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
9689        );
9690    }
9691    fn ld1_2_16b_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
9692        return self.emit_n(
9693            Opcode::LD1_2_16b_post as _,
9694            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
9695        );
9696    }
9697    fn ld1_2_8h_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
9698        return self.emit_n(
9699            Opcode::LD1_2_8h_post as _,
9700            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
9701        );
9702    }
9703    fn ld1_2_4s_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
9704        return self.emit_n(
9705            Opcode::LD1_2_4s_post as _,
9706            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
9707        );
9708    }
9709    fn ld1_2_2d_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
9710        return self.emit_n(
9711            Opcode::LD1_2_2d_post as _,
9712            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
9713        );
9714    }
9715    fn st4_8b_post32(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
9716        return self.emit_n(
9717            Opcode::ST4_8b_post32 as _,
9718            &[rt.as_operand(), rn.as_operand()],
9719        );
9720    }
9721    fn st4_4h_post32(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
9722        return self.emit_n(
9723            Opcode::ST4_4h_post32 as _,
9724            &[rt.as_operand(), rn.as_operand()],
9725        );
9726    }
9727    fn st4_2s_post32(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
9728        return self.emit_n(
9729            Opcode::ST4_2s_post32 as _,
9730            &[rt.as_operand(), rn.as_operand()],
9731        );
9732    }
9733    fn st1_4_8b_post32(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
9734        return self.emit_n(
9735            Opcode::ST1_4_8b_post32 as _,
9736            &[rt.as_operand(), rn.as_operand()],
9737        );
9738    }
9739    fn st1_4_4h_post32(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
9740        return self.emit_n(
9741            Opcode::ST1_4_4h_post32 as _,
9742            &[rt.as_operand(), rn.as_operand()],
9743        );
9744    }
9745    fn st1_4_2s_post32(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
9746        return self.emit_n(
9747            Opcode::ST1_4_2s_post32 as _,
9748            &[rt.as_operand(), rn.as_operand()],
9749        );
9750    }
9751    fn st1_4_1d_post32(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
9752        return self.emit_n(
9753            Opcode::ST1_4_1d_post32 as _,
9754            &[rt.as_operand(), rn.as_operand()],
9755        );
9756    }
9757    fn st3_8b_post24(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
9758        return self.emit_n(
9759            Opcode::ST3_8b_post24 as _,
9760            &[rt.as_operand(), rn.as_operand()],
9761        );
9762    }
9763    fn st3_4h_post24(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
9764        return self.emit_n(
9765            Opcode::ST3_4h_post24 as _,
9766            &[rt.as_operand(), rn.as_operand()],
9767        );
9768    }
9769    fn st3_2s_post24(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
9770        return self.emit_n(
9771            Opcode::ST3_2s_post24 as _,
9772            &[rt.as_operand(), rn.as_operand()],
9773        );
9774    }
9775    fn st1_3_8b_post24(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
9776        return self.emit_n(
9777            Opcode::ST1_3_8b_post24 as _,
9778            &[rt.as_operand(), rn.as_operand()],
9779        );
9780    }
9781    fn st1_3_4h_post24(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
9782        return self.emit_n(
9783            Opcode::ST1_3_4h_post24 as _,
9784            &[rt.as_operand(), rn.as_operand()],
9785        );
9786    }
9787    fn st1_3_2s_post24(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
9788        return self.emit_n(
9789            Opcode::ST1_3_2s_post24 as _,
9790            &[rt.as_operand(), rn.as_operand()],
9791        );
9792    }
9793    fn st1_3_1d_post24(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
9794        return self.emit_n(
9795            Opcode::ST1_3_1d_post24 as _,
9796            &[rt.as_operand(), rn.as_operand()],
9797        );
9798    }
9799    fn st1_1_8b_post8(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
9800        return self.emit_n(
9801            Opcode::ST1_1_8b_post8 as _,
9802            &[rt.as_operand(), rn.as_operand()],
9803        );
9804    }
9805    fn st1_1_4h_post8(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
9806        return self.emit_n(
9807            Opcode::ST1_1_4h_post8 as _,
9808            &[rt.as_operand(), rn.as_operand()],
9809        );
9810    }
9811    fn st1_1_2s_post8(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
9812        return self.emit_n(
9813            Opcode::ST1_1_2s_post8 as _,
9814            &[rt.as_operand(), rn.as_operand()],
9815        );
9816    }
9817    fn st1_1_1d_post8(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
9818        return self.emit_n(
9819            Opcode::ST1_1_1d_post8 as _,
9820            &[rt.as_operand(), rn.as_operand()],
9821        );
9822    }
9823    fn st2_8b_post16(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
9824        return self.emit_n(
9825            Opcode::ST2_8b_post16 as _,
9826            &[rt.as_operand(), rn.as_operand()],
9827        );
9828    }
9829    fn st2_4h_post16(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
9830        return self.emit_n(
9831            Opcode::ST2_4h_post16 as _,
9832            &[rt.as_operand(), rn.as_operand()],
9833        );
9834    }
9835    fn st2_2s_post16(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
9836        return self.emit_n(
9837            Opcode::ST2_2s_post16 as _,
9838            &[rt.as_operand(), rn.as_operand()],
9839        );
9840    }
9841    fn st1_2_8b_post16(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
9842        return self.emit_n(
9843            Opcode::ST1_2_8b_post16 as _,
9844            &[rt.as_operand(), rn.as_operand()],
9845        );
9846    }
9847    fn st1_2_4h_post16(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
9848        return self.emit_n(
9849            Opcode::ST1_2_4h_post16 as _,
9850            &[rt.as_operand(), rn.as_operand()],
9851        );
9852    }
9853    fn st1_2_2s_post16(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
9854        return self.emit_n(
9855            Opcode::ST1_2_2s_post16 as _,
9856            &[rt.as_operand(), rn.as_operand()],
9857        );
9858    }
9859    fn st1_2_1d_post16(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
9860        return self.emit_n(
9861            Opcode::ST1_2_1d_post16 as _,
9862            &[rt.as_operand(), rn.as_operand()],
9863        );
9864    }
9865    fn ld4_8b_post32(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
9866        return self.emit_n(
9867            Opcode::LD4_8b_post32 as _,
9868            &[rt.as_operand(), rn.as_operand()],
9869        );
9870    }
9871    fn ld4_4h_post32(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
9872        return self.emit_n(
9873            Opcode::LD4_4h_post32 as _,
9874            &[rt.as_operand(), rn.as_operand()],
9875        );
9876    }
9877    fn ld4_2s_post32(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
9878        return self.emit_n(
9879            Opcode::LD4_2s_post32 as _,
9880            &[rt.as_operand(), rn.as_operand()],
9881        );
9882    }
9883    fn ld1_4_8b_post32(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
9884        return self.emit_n(
9885            Opcode::LD1_4_8b_post32 as _,
9886            &[rt.as_operand(), rn.as_operand()],
9887        );
9888    }
9889    fn ld1_4_4h_post32(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
9890        return self.emit_n(
9891            Opcode::LD1_4_4h_post32 as _,
9892            &[rt.as_operand(), rn.as_operand()],
9893        );
9894    }
9895    fn ld1_4_2s_post32(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
9896        return self.emit_n(
9897            Opcode::LD1_4_2s_post32 as _,
9898            &[rt.as_operand(), rn.as_operand()],
9899        );
9900    }
9901    fn ld1_4_1d_post32(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
9902        return self.emit_n(
9903            Opcode::LD1_4_1d_post32 as _,
9904            &[rt.as_operand(), rn.as_operand()],
9905        );
9906    }
9907    fn ld3_8b_post24(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
9908        return self.emit_n(
9909            Opcode::LD3_8b_post24 as _,
9910            &[rt.as_operand(), rn.as_operand()],
9911        );
9912    }
9913    fn ld3_4h_post24(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
9914        return self.emit_n(
9915            Opcode::LD3_4h_post24 as _,
9916            &[rt.as_operand(), rn.as_operand()],
9917        );
9918    }
9919    fn ld3_2s_post24(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
9920        return self.emit_n(
9921            Opcode::LD3_2s_post24 as _,
9922            &[rt.as_operand(), rn.as_operand()],
9923        );
9924    }
9925    fn ld1_3_8b_post24(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
9926        return self.emit_n(
9927            Opcode::LD1_3_8b_post24 as _,
9928            &[rt.as_operand(), rn.as_operand()],
9929        );
9930    }
9931    fn ld1_3_4h_post24(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
9932        return self.emit_n(
9933            Opcode::LD1_3_4h_post24 as _,
9934            &[rt.as_operand(), rn.as_operand()],
9935        );
9936    }
9937    fn ld1_3_2s_post24(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
9938        return self.emit_n(
9939            Opcode::LD1_3_2s_post24 as _,
9940            &[rt.as_operand(), rn.as_operand()],
9941        );
9942    }
9943    fn ld1_3_1d_post24(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
9944        return self.emit_n(
9945            Opcode::LD1_3_1d_post24 as _,
9946            &[rt.as_operand(), rn.as_operand()],
9947        );
9948    }
9949    fn ld1_1_8b_post8(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
9950        return self.emit_n(
9951            Opcode::LD1_1_8b_post8 as _,
9952            &[rt.as_operand(), rn.as_operand()],
9953        );
9954    }
9955    fn ld1_1_4h_post8(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
9956        return self.emit_n(
9957            Opcode::LD1_1_4h_post8 as _,
9958            &[rt.as_operand(), rn.as_operand()],
9959        );
9960    }
9961    fn ld1_1_2s_post8(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
9962        return self.emit_n(
9963            Opcode::LD1_1_2s_post8 as _,
9964            &[rt.as_operand(), rn.as_operand()],
9965        );
9966    }
9967    fn ld1_1_1d_post8(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
9968        return self.emit_n(
9969            Opcode::LD1_1_1d_post8 as _,
9970            &[rt.as_operand(), rn.as_operand()],
9971        );
9972    }
9973    fn ld2_8b_post16(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
9974        return self.emit_n(
9975            Opcode::LD2_8b_post16 as _,
9976            &[rt.as_operand(), rn.as_operand()],
9977        );
9978    }
9979    fn ld2_4h_post16(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
9980        return self.emit_n(
9981            Opcode::LD2_4h_post16 as _,
9982            &[rt.as_operand(), rn.as_operand()],
9983        );
9984    }
9985    fn ld2_2s_post16(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
9986        return self.emit_n(
9987            Opcode::LD2_2s_post16 as _,
9988            &[rt.as_operand(), rn.as_operand()],
9989        );
9990    }
9991    fn ld1_2_8b_post16(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
9992        return self.emit_n(
9993            Opcode::LD1_2_8b_post16 as _,
9994            &[rt.as_operand(), rn.as_operand()],
9995        );
9996    }
9997    fn ld1_2_4h_post16(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
9998        return self.emit_n(
9999            Opcode::LD1_2_4h_post16 as _,
10000            &[rt.as_operand(), rn.as_operand()],
10001        );
10002    }
10003    fn ld1_2_2s_post16(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
10004        return self.emit_n(
10005            Opcode::LD1_2_2s_post16 as _,
10006            &[rt.as_operand(), rn.as_operand()],
10007        );
10008    }
10009    fn ld1_2_1d_post16(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
10010        return self.emit_n(
10011            Opcode::LD1_2_1d_post16 as _,
10012            &[rt.as_operand(), rn.as_operand()],
10013        );
10014    }
10015    fn st4_16b_post64(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
10016        return self.emit_n(
10017            Opcode::ST4_16b_post64 as _,
10018            &[rt.as_operand(), rn.as_operand()],
10019        );
10020    }
10021    fn st4_8h_post64(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
10022        return self.emit_n(
10023            Opcode::ST4_8h_post64 as _,
10024            &[rt.as_operand(), rn.as_operand()],
10025        );
10026    }
10027    fn st4_4s_post64(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
10028        return self.emit_n(
10029            Opcode::ST4_4s_post64 as _,
10030            &[rt.as_operand(), rn.as_operand()],
10031        );
10032    }
10033    fn st4_2d_post64(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
10034        return self.emit_n(
10035            Opcode::ST4_2d_post64 as _,
10036            &[rt.as_operand(), rn.as_operand()],
10037        );
10038    }
10039    fn st1_4_16b_post64(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
10040        return self.emit_n(
10041            Opcode::ST1_4_16b_post64 as _,
10042            &[rt.as_operand(), rn.as_operand()],
10043        );
10044    }
10045    fn st1_4_8h_post64(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
10046        return self.emit_n(
10047            Opcode::ST1_4_8h_post64 as _,
10048            &[rt.as_operand(), rn.as_operand()],
10049        );
10050    }
10051    fn st1_4_4s_post64(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
10052        return self.emit_n(
10053            Opcode::ST1_4_4s_post64 as _,
10054            &[rt.as_operand(), rn.as_operand()],
10055        );
10056    }
10057    fn st1_4_2d_post64(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
10058        return self.emit_n(
10059            Opcode::ST1_4_2d_post64 as _,
10060            &[rt.as_operand(), rn.as_operand()],
10061        );
10062    }
10063    fn st3_16b_post48(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
10064        return self.emit_n(
10065            Opcode::ST3_16b_post48 as _,
10066            &[rt.as_operand(), rn.as_operand()],
10067        );
10068    }
10069    fn st3_8h_post48(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
10070        return self.emit_n(
10071            Opcode::ST3_8h_post48 as _,
10072            &[rt.as_operand(), rn.as_operand()],
10073        );
10074    }
10075    fn st3_4s_post48(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
10076        return self.emit_n(
10077            Opcode::ST3_4s_post48 as _,
10078            &[rt.as_operand(), rn.as_operand()],
10079        );
10080    }
10081    fn st3_2d_post48(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
10082        return self.emit_n(
10083            Opcode::ST3_2d_post48 as _,
10084            &[rt.as_operand(), rn.as_operand()],
10085        );
10086    }
10087    fn st1_3_16b_post48(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
10088        return self.emit_n(
10089            Opcode::ST1_3_16b_post48 as _,
10090            &[rt.as_operand(), rn.as_operand()],
10091        );
10092    }
10093    fn st1_3_8h_post48(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
10094        return self.emit_n(
10095            Opcode::ST1_3_8h_post48 as _,
10096            &[rt.as_operand(), rn.as_operand()],
10097        );
10098    }
10099    fn st1_3_4s_post48(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
10100        return self.emit_n(
10101            Opcode::ST1_3_4s_post48 as _,
10102            &[rt.as_operand(), rn.as_operand()],
10103        );
10104    }
10105    fn st1_3_2d_post48(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
10106        return self.emit_n(
10107            Opcode::ST1_3_2d_post48 as _,
10108            &[rt.as_operand(), rn.as_operand()],
10109        );
10110    }
10111    fn st1_1_16b_post16(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
10112        return self.emit_n(
10113            Opcode::ST1_1_16b_post16 as _,
10114            &[rt.as_operand(), rn.as_operand()],
10115        );
10116    }
10117    fn st1_1_8h_post16(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
10118        return self.emit_n(
10119            Opcode::ST1_1_8h_post16 as _,
10120            &[rt.as_operand(), rn.as_operand()],
10121        );
10122    }
10123    fn st1_1_4s_post16(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
10124        return self.emit_n(
10125            Opcode::ST1_1_4s_post16 as _,
10126            &[rt.as_operand(), rn.as_operand()],
10127        );
10128    }
10129    fn st1_1_2d_post16(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
10130        return self.emit_n(
10131            Opcode::ST1_1_2d_post16 as _,
10132            &[rt.as_operand(), rn.as_operand()],
10133        );
10134    }
10135    fn st2_16b_post32(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
10136        return self.emit_n(
10137            Opcode::ST2_16b_post32 as _,
10138            &[rt.as_operand(), rn.as_operand()],
10139        );
10140    }
10141    fn st2_8h_post32(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
10142        return self.emit_n(
10143            Opcode::ST2_8h_post32 as _,
10144            &[rt.as_operand(), rn.as_operand()],
10145        );
10146    }
10147    fn st2_4s_post32(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
10148        return self.emit_n(
10149            Opcode::ST2_4s_post32 as _,
10150            &[rt.as_operand(), rn.as_operand()],
10151        );
10152    }
10153    fn st2_2d_post32(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
10154        return self.emit_n(
10155            Opcode::ST2_2d_post32 as _,
10156            &[rt.as_operand(), rn.as_operand()],
10157        );
10158    }
10159    fn st1_2_16b_post32(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
10160        return self.emit_n(
10161            Opcode::ST1_2_16b_post32 as _,
10162            &[rt.as_operand(), rn.as_operand()],
10163        );
10164    }
10165    fn st1_2_8h_post32(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
10166        return self.emit_n(
10167            Opcode::ST1_2_8h_post32 as _,
10168            &[rt.as_operand(), rn.as_operand()],
10169        );
10170    }
10171    fn st1_2_4s_post32(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
10172        return self.emit_n(
10173            Opcode::ST1_2_4s_post32 as _,
10174            &[rt.as_operand(), rn.as_operand()],
10175        );
10176    }
10177    fn st1_2_2d_post32(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
10178        return self.emit_n(
10179            Opcode::ST1_2_2d_post32 as _,
10180            &[rt.as_operand(), rn.as_operand()],
10181        );
10182    }
10183    fn ld4_16b_post64(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
10184        return self.emit_n(
10185            Opcode::LD4_16b_post64 as _,
10186            &[rt.as_operand(), rn.as_operand()],
10187        );
10188    }
10189    fn ld4_8h_post64(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
10190        return self.emit_n(
10191            Opcode::LD4_8h_post64 as _,
10192            &[rt.as_operand(), rn.as_operand()],
10193        );
10194    }
10195    fn ld4_4s_post64(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
10196        return self.emit_n(
10197            Opcode::LD4_4s_post64 as _,
10198            &[rt.as_operand(), rn.as_operand()],
10199        );
10200    }
10201    fn ld4_2d_post64(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
10202        return self.emit_n(
10203            Opcode::LD4_2d_post64 as _,
10204            &[rt.as_operand(), rn.as_operand()],
10205        );
10206    }
10207    fn ld1_4_16b_post64(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
10208        return self.emit_n(
10209            Opcode::LD1_4_16b_post64 as _,
10210            &[rt.as_operand(), rn.as_operand()],
10211        );
10212    }
10213    fn ld1_4_8h_post64(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
10214        return self.emit_n(
10215            Opcode::LD1_4_8h_post64 as _,
10216            &[rt.as_operand(), rn.as_operand()],
10217        );
10218    }
10219    fn ld1_4_4s_post64(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
10220        return self.emit_n(
10221            Opcode::LD1_4_4s_post64 as _,
10222            &[rt.as_operand(), rn.as_operand()],
10223        );
10224    }
10225    fn ld1_4_2d_post64(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
10226        return self.emit_n(
10227            Opcode::LD1_4_2d_post64 as _,
10228            &[rt.as_operand(), rn.as_operand()],
10229        );
10230    }
10231    fn ld3_16b_post48(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
10232        return self.emit_n(
10233            Opcode::LD3_16b_post48 as _,
10234            &[rt.as_operand(), rn.as_operand()],
10235        );
10236    }
10237    fn ld3_8h_post48(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
10238        return self.emit_n(
10239            Opcode::LD3_8h_post48 as _,
10240            &[rt.as_operand(), rn.as_operand()],
10241        );
10242    }
10243    fn ld3_4s_post48(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
10244        return self.emit_n(
10245            Opcode::LD3_4s_post48 as _,
10246            &[rt.as_operand(), rn.as_operand()],
10247        );
10248    }
10249    fn ld3_2d_post48(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
10250        return self.emit_n(
10251            Opcode::LD3_2d_post48 as _,
10252            &[rt.as_operand(), rn.as_operand()],
10253        );
10254    }
10255    fn ld1_3_16b_post48(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
10256        return self.emit_n(
10257            Opcode::LD1_3_16b_post48 as _,
10258            &[rt.as_operand(), rn.as_operand()],
10259        );
10260    }
10261    fn ld1_3_8h_post48(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
10262        return self.emit_n(
10263            Opcode::LD1_3_8h_post48 as _,
10264            &[rt.as_operand(), rn.as_operand()],
10265        );
10266    }
10267    fn ld1_3_4s_post48(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
10268        return self.emit_n(
10269            Opcode::LD1_3_4s_post48 as _,
10270            &[rt.as_operand(), rn.as_operand()],
10271        );
10272    }
10273    fn ld1_3_2d_post48(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
10274        return self.emit_n(
10275            Opcode::LD1_3_2d_post48 as _,
10276            &[rt.as_operand(), rn.as_operand()],
10277        );
10278    }
10279    fn ld1_1_16b_post16(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
10280        return self.emit_n(
10281            Opcode::LD1_1_16b_post16 as _,
10282            &[rt.as_operand(), rn.as_operand()],
10283        );
10284    }
10285    fn ld1_1_8h_post16(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
10286        return self.emit_n(
10287            Opcode::LD1_1_8h_post16 as _,
10288            &[rt.as_operand(), rn.as_operand()],
10289        );
10290    }
10291    fn ld1_1_4s_post16(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
10292        return self.emit_n(
10293            Opcode::LD1_1_4s_post16 as _,
10294            &[rt.as_operand(), rn.as_operand()],
10295        );
10296    }
10297    fn ld1_1_2d_post16(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
10298        return self.emit_n(
10299            Opcode::LD1_1_2d_post16 as _,
10300            &[rt.as_operand(), rn.as_operand()],
10301        );
10302    }
10303    fn ld2_16b_post32(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
10304        return self.emit_n(
10305            Opcode::LD2_16b_post32 as _,
10306            &[rt.as_operand(), rn.as_operand()],
10307        );
10308    }
10309    fn ld2_8h_post32(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
10310        return self.emit_n(
10311            Opcode::LD2_8h_post32 as _,
10312            &[rt.as_operand(), rn.as_operand()],
10313        );
10314    }
10315    fn ld2_4s_post32(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
10316        return self.emit_n(
10317            Opcode::LD2_4s_post32 as _,
10318            &[rt.as_operand(), rn.as_operand()],
10319        );
10320    }
10321    fn ld2_2d_post32(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
10322        return self.emit_n(
10323            Opcode::LD2_2d_post32 as _,
10324            &[rt.as_operand(), rn.as_operand()],
10325        );
10326    }
10327    fn ld1_2_16b_post32(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
10328        return self.emit_n(
10329            Opcode::LD1_2_16b_post32 as _,
10330            &[rt.as_operand(), rn.as_operand()],
10331        );
10332    }
10333    fn ld1_2_8h_post32(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
10334        return self.emit_n(
10335            Opcode::LD1_2_8h_post32 as _,
10336            &[rt.as_operand(), rn.as_operand()],
10337        );
10338    }
10339    fn ld1_2_4s_post32(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
10340        return self.emit_n(
10341            Opcode::LD1_2_4s_post32 as _,
10342            &[rt.as_operand(), rn.as_operand()],
10343        );
10344    }
10345    fn ld1_2_2d_post32(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
10346        return self.emit_n(
10347            Opcode::LD1_2_2d_post32 as _,
10348            &[rt.as_operand(), rn.as_operand()],
10349        );
10350    }
10351    fn st1b(&mut self, rt: impl OperandCast, elemidx: impl OperandCast, rn: impl OperandCast) {
10352        return self.emit_n(
10353            Opcode::ST1b as _,
10354            &[rt.as_operand(), elemidx.as_operand(), rn.as_operand()],
10355        );
10356    }
10357    fn st3b(&mut self, rt: impl OperandCast, elemidx: impl OperandCast, rn: impl OperandCast) {
10358        return self.emit_n(
10359            Opcode::ST3b as _,
10360            &[rt.as_operand(), elemidx.as_operand(), rn.as_operand()],
10361        );
10362    }
10363    fn st1h(&mut self, rt: impl OperandCast, elemidx: impl OperandCast, rn: impl OperandCast) {
10364        return self.emit_n(
10365            Opcode::ST1h as _,
10366            &[rt.as_operand(), elemidx.as_operand(), rn.as_operand()],
10367        );
10368    }
10369    fn st3h(&mut self, rt: impl OperandCast, elemidx: impl OperandCast, rn: impl OperandCast) {
10370        return self.emit_n(
10371            Opcode::ST3h as _,
10372            &[rt.as_operand(), elemidx.as_operand(), rn.as_operand()],
10373        );
10374    }
10375    fn st1s(&mut self, rt: impl OperandCast, elemidx: impl OperandCast, rn: impl OperandCast) {
10376        return self.emit_n(
10377            Opcode::ST1s as _,
10378            &[rt.as_operand(), elemidx.as_operand(), rn.as_operand()],
10379        );
10380    }
10381    fn st1d(&mut self, rt: impl OperandCast, elemidx: impl OperandCast, rn: impl OperandCast) {
10382        return self.emit_n(
10383            Opcode::ST1d as _,
10384            &[rt.as_operand(), elemidx.as_operand(), rn.as_operand()],
10385        );
10386    }
10387    fn st3s(&mut self, rt: impl OperandCast, elemidx: impl OperandCast, rn: impl OperandCast) {
10388        return self.emit_n(
10389            Opcode::ST3s as _,
10390            &[rt.as_operand(), elemidx.as_operand(), rn.as_operand()],
10391        );
10392    }
10393    fn st3d(&mut self, rt: impl OperandCast, elemidx: impl OperandCast, rn: impl OperandCast) {
10394        return self.emit_n(
10395            Opcode::ST3d as _,
10396            &[rt.as_operand(), elemidx.as_operand(), rn.as_operand()],
10397        );
10398    }
10399    fn st2b(&mut self, rt: impl OperandCast, elemidx: impl OperandCast, rn: impl OperandCast) {
10400        return self.emit_n(
10401            Opcode::ST2b as _,
10402            &[rt.as_operand(), elemidx.as_operand(), rn.as_operand()],
10403        );
10404    }
10405    fn st4b(&mut self, rt: impl OperandCast, elemidx: impl OperandCast, rn: impl OperandCast) {
10406        return self.emit_n(
10407            Opcode::ST4b as _,
10408            &[rt.as_operand(), elemidx.as_operand(), rn.as_operand()],
10409        );
10410    }
10411    fn st2h(&mut self, rt: impl OperandCast, elemidx: impl OperandCast, rn: impl OperandCast) {
10412        return self.emit_n(
10413            Opcode::ST2h as _,
10414            &[rt.as_operand(), elemidx.as_operand(), rn.as_operand()],
10415        );
10416    }
10417    fn st4h(&mut self, rt: impl OperandCast, elemidx: impl OperandCast, rn: impl OperandCast) {
10418        return self.emit_n(
10419            Opcode::ST4h as _,
10420            &[rt.as_operand(), elemidx.as_operand(), rn.as_operand()],
10421        );
10422    }
10423    fn st2s(&mut self, rt: impl OperandCast, elemidx: impl OperandCast, rn: impl OperandCast) {
10424        return self.emit_n(
10425            Opcode::ST2s as _,
10426            &[rt.as_operand(), elemidx.as_operand(), rn.as_operand()],
10427        );
10428    }
10429    fn st2d(&mut self, rt: impl OperandCast, elemidx: impl OperandCast, rn: impl OperandCast) {
10430        return self.emit_n(
10431            Opcode::ST2d as _,
10432            &[rt.as_operand(), elemidx.as_operand(), rn.as_operand()],
10433        );
10434    }
10435    fn st4s(&mut self, rt: impl OperandCast, elemidx: impl OperandCast, rn: impl OperandCast) {
10436        return self.emit_n(
10437            Opcode::ST4s as _,
10438            &[rt.as_operand(), elemidx.as_operand(), rn.as_operand()],
10439        );
10440    }
10441    fn st4d(&mut self, rt: impl OperandCast, elemidx: impl OperandCast, rn: impl OperandCast) {
10442        return self.emit_n(
10443            Opcode::ST4d as _,
10444            &[rt.as_operand(), elemidx.as_operand(), rn.as_operand()],
10445        );
10446    }
10447    fn ld1b(&mut self, rt: impl OperandCast, elemidx: impl OperandCast, rn: impl OperandCast) {
10448        return self.emit_n(
10449            Opcode::LD1b as _,
10450            &[rt.as_operand(), elemidx.as_operand(), rn.as_operand()],
10451        );
10452    }
10453    fn ld3b(&mut self, rt: impl OperandCast, elemidx: impl OperandCast, rn: impl OperandCast) {
10454        return self.emit_n(
10455            Opcode::LD3b as _,
10456            &[rt.as_operand(), elemidx.as_operand(), rn.as_operand()],
10457        );
10458    }
10459    fn ld1h(&mut self, rt: impl OperandCast, elemidx: impl OperandCast, rn: impl OperandCast) {
10460        return self.emit_n(
10461            Opcode::LD1h as _,
10462            &[rt.as_operand(), elemidx.as_operand(), rn.as_operand()],
10463        );
10464    }
10465    fn ld3h(&mut self, rt: impl OperandCast, elemidx: impl OperandCast, rn: impl OperandCast) {
10466        return self.emit_n(
10467            Opcode::LD3h as _,
10468            &[rt.as_operand(), elemidx.as_operand(), rn.as_operand()],
10469        );
10470    }
10471    fn ld1s(&mut self, rt: impl OperandCast, elemidx: impl OperandCast, rn: impl OperandCast) {
10472        return self.emit_n(
10473            Opcode::LD1s as _,
10474            &[rt.as_operand(), elemidx.as_operand(), rn.as_operand()],
10475        );
10476    }
10477    fn ld1d(&mut self, rt: impl OperandCast, elemidx: impl OperandCast, rn: impl OperandCast) {
10478        return self.emit_n(
10479            Opcode::LD1d as _,
10480            &[rt.as_operand(), elemidx.as_operand(), rn.as_operand()],
10481        );
10482    }
10483    fn ld3s(&mut self, rt: impl OperandCast, elemidx: impl OperandCast, rn: impl OperandCast) {
10484        return self.emit_n(
10485            Opcode::LD3s as _,
10486            &[rt.as_operand(), elemidx.as_operand(), rn.as_operand()],
10487        );
10488    }
10489    fn ld3d(&mut self, rt: impl OperandCast, elemidx: impl OperandCast, rn: impl OperandCast) {
10490        return self.emit_n(
10491            Opcode::LD3d as _,
10492            &[rt.as_operand(), elemidx.as_operand(), rn.as_operand()],
10493        );
10494    }
10495    fn ld2b(&mut self, rt: impl OperandCast, elemidx: impl OperandCast, rn: impl OperandCast) {
10496        return self.emit_n(
10497            Opcode::LD2b as _,
10498            &[rt.as_operand(), elemidx.as_operand(), rn.as_operand()],
10499        );
10500    }
10501    fn ld4b(&mut self, rt: impl OperandCast, elemidx: impl OperandCast, rn: impl OperandCast) {
10502        return self.emit_n(
10503            Opcode::LD4b as _,
10504            &[rt.as_operand(), elemidx.as_operand(), rn.as_operand()],
10505        );
10506    }
10507    fn ld2h(&mut self, rt: impl OperandCast, elemidx: impl OperandCast, rn: impl OperandCast) {
10508        return self.emit_n(
10509            Opcode::LD2h as _,
10510            &[rt.as_operand(), elemidx.as_operand(), rn.as_operand()],
10511        );
10512    }
10513    fn ld4h(&mut self, rt: impl OperandCast, elemidx: impl OperandCast, rn: impl OperandCast) {
10514        return self.emit_n(
10515            Opcode::LD4h as _,
10516            &[rt.as_operand(), elemidx.as_operand(), rn.as_operand()],
10517        );
10518    }
10519    fn ld2s(&mut self, rt: impl OperandCast, elemidx: impl OperandCast, rn: impl OperandCast) {
10520        return self.emit_n(
10521            Opcode::LD2s as _,
10522            &[rt.as_operand(), elemidx.as_operand(), rn.as_operand()],
10523        );
10524    }
10525    fn ld2d(&mut self, rt: impl OperandCast, elemidx: impl OperandCast, rn: impl OperandCast) {
10526        return self.emit_n(
10527            Opcode::LD2d as _,
10528            &[rt.as_operand(), elemidx.as_operand(), rn.as_operand()],
10529        );
10530    }
10531    fn ld4s(&mut self, rt: impl OperandCast, elemidx: impl OperandCast, rn: impl OperandCast) {
10532        return self.emit_n(
10533            Opcode::LD4s as _,
10534            &[rt.as_operand(), elemidx.as_operand(), rn.as_operand()],
10535        );
10536    }
10537    fn ld4d(&mut self, rt: impl OperandCast, elemidx: impl OperandCast, rn: impl OperandCast) {
10538        return self.emit_n(
10539            Opcode::LD4d as _,
10540            &[rt.as_operand(), elemidx.as_operand(), rn.as_operand()],
10541        );
10542    }
10543    fn st1b_post(
10544        &mut self,
10545        rt: impl OperandCast,
10546        elemidx: impl OperandCast,
10547        rn: impl OperandCast,
10548        rm: impl OperandCast,
10549    ) {
10550        return self.emit_n(
10551            Opcode::ST1b_post as _,
10552            &[
10553                rt.as_operand(),
10554                elemidx.as_operand(),
10555                rn.as_operand(),
10556                rm.as_operand(),
10557            ],
10558        );
10559    }
10560    fn st3b_post(
10561        &mut self,
10562        rt: impl OperandCast,
10563        elemidx: impl OperandCast,
10564        rn: impl OperandCast,
10565        rm: impl OperandCast,
10566    ) {
10567        return self.emit_n(
10568            Opcode::ST3b_post as _,
10569            &[
10570                rt.as_operand(),
10571                elemidx.as_operand(),
10572                rn.as_operand(),
10573                rm.as_operand(),
10574            ],
10575        );
10576    }
10577    fn st1h_post(
10578        &mut self,
10579        rt: impl OperandCast,
10580        elemidx: impl OperandCast,
10581        rn: impl OperandCast,
10582        rm: impl OperandCast,
10583    ) {
10584        return self.emit_n(
10585            Opcode::ST1h_post as _,
10586            &[
10587                rt.as_operand(),
10588                elemidx.as_operand(),
10589                rn.as_operand(),
10590                rm.as_operand(),
10591            ],
10592        );
10593    }
10594    fn st3h_post(
10595        &mut self,
10596        rt: impl OperandCast,
10597        elemidx: impl OperandCast,
10598        rn: impl OperandCast,
10599        rm: impl OperandCast,
10600    ) {
10601        return self.emit_n(
10602            Opcode::ST3h_post as _,
10603            &[
10604                rt.as_operand(),
10605                elemidx.as_operand(),
10606                rn.as_operand(),
10607                rm.as_operand(),
10608            ],
10609        );
10610    }
10611    fn st1s_post(
10612        &mut self,
10613        rt: impl OperandCast,
10614        elemidx: impl OperandCast,
10615        rn: impl OperandCast,
10616        rm: impl OperandCast,
10617    ) {
10618        return self.emit_n(
10619            Opcode::ST1s_post as _,
10620            &[
10621                rt.as_operand(),
10622                elemidx.as_operand(),
10623                rn.as_operand(),
10624                rm.as_operand(),
10625            ],
10626        );
10627    }
10628    fn st1d_post(
10629        &mut self,
10630        rt: impl OperandCast,
10631        elemidx: impl OperandCast,
10632        rn: impl OperandCast,
10633        rm: impl OperandCast,
10634    ) {
10635        return self.emit_n(
10636            Opcode::ST1d_post as _,
10637            &[
10638                rt.as_operand(),
10639                elemidx.as_operand(),
10640                rn.as_operand(),
10641                rm.as_operand(),
10642            ],
10643        );
10644    }
10645    fn st3s_post(
10646        &mut self,
10647        rt: impl OperandCast,
10648        elemidx: impl OperandCast,
10649        rn: impl OperandCast,
10650        rm: impl OperandCast,
10651    ) {
10652        return self.emit_n(
10653            Opcode::ST3s_post as _,
10654            &[
10655                rt.as_operand(),
10656                elemidx.as_operand(),
10657                rn.as_operand(),
10658                rm.as_operand(),
10659            ],
10660        );
10661    }
10662    fn st3d_post(
10663        &mut self,
10664        rt: impl OperandCast,
10665        elemidx: impl OperandCast,
10666        rn: impl OperandCast,
10667        rm: impl OperandCast,
10668    ) {
10669        return self.emit_n(
10670            Opcode::ST3d_post as _,
10671            &[
10672                rt.as_operand(),
10673                elemidx.as_operand(),
10674                rn.as_operand(),
10675                rm.as_operand(),
10676            ],
10677        );
10678    }
10679    fn st2b_post(
10680        &mut self,
10681        rt: impl OperandCast,
10682        elemidx: impl OperandCast,
10683        rn: impl OperandCast,
10684        rm: impl OperandCast,
10685    ) {
10686        return self.emit_n(
10687            Opcode::ST2b_post as _,
10688            &[
10689                rt.as_operand(),
10690                elemidx.as_operand(),
10691                rn.as_operand(),
10692                rm.as_operand(),
10693            ],
10694        );
10695    }
10696    fn st4b_post(
10697        &mut self,
10698        rt: impl OperandCast,
10699        elemidx: impl OperandCast,
10700        rn: impl OperandCast,
10701        rm: impl OperandCast,
10702    ) {
10703        return self.emit_n(
10704            Opcode::ST4b_post as _,
10705            &[
10706                rt.as_operand(),
10707                elemidx.as_operand(),
10708                rn.as_operand(),
10709                rm.as_operand(),
10710            ],
10711        );
10712    }
10713    fn st2h_post(
10714        &mut self,
10715        rt: impl OperandCast,
10716        elemidx: impl OperandCast,
10717        rn: impl OperandCast,
10718        rm: impl OperandCast,
10719    ) {
10720        return self.emit_n(
10721            Opcode::ST2h_post as _,
10722            &[
10723                rt.as_operand(),
10724                elemidx.as_operand(),
10725                rn.as_operand(),
10726                rm.as_operand(),
10727            ],
10728        );
10729    }
10730    fn st4h_post(
10731        &mut self,
10732        rt: impl OperandCast,
10733        elemidx: impl OperandCast,
10734        rn: impl OperandCast,
10735        rm: impl OperandCast,
10736    ) {
10737        return self.emit_n(
10738            Opcode::ST4h_post as _,
10739            &[
10740                rt.as_operand(),
10741                elemidx.as_operand(),
10742                rn.as_operand(),
10743                rm.as_operand(),
10744            ],
10745        );
10746    }
10747    fn st2s_post(
10748        &mut self,
10749        rt: impl OperandCast,
10750        elemidx: impl OperandCast,
10751        rn: impl OperandCast,
10752        rm: impl OperandCast,
10753    ) {
10754        return self.emit_n(
10755            Opcode::ST2s_post as _,
10756            &[
10757                rt.as_operand(),
10758                elemidx.as_operand(),
10759                rn.as_operand(),
10760                rm.as_operand(),
10761            ],
10762        );
10763    }
10764    fn st2d_post(
10765        &mut self,
10766        rt: impl OperandCast,
10767        elemidx: impl OperandCast,
10768        rn: impl OperandCast,
10769        rm: impl OperandCast,
10770    ) {
10771        return self.emit_n(
10772            Opcode::ST2d_post as _,
10773            &[
10774                rt.as_operand(),
10775                elemidx.as_operand(),
10776                rn.as_operand(),
10777                rm.as_operand(),
10778            ],
10779        );
10780    }
10781    fn st4s_post(
10782        &mut self,
10783        rt: impl OperandCast,
10784        elemidx: impl OperandCast,
10785        rn: impl OperandCast,
10786        rm: impl OperandCast,
10787    ) {
10788        return self.emit_n(
10789            Opcode::ST4s_post as _,
10790            &[
10791                rt.as_operand(),
10792                elemidx.as_operand(),
10793                rn.as_operand(),
10794                rm.as_operand(),
10795            ],
10796        );
10797    }
10798    fn st4d_post(
10799        &mut self,
10800        rt: impl OperandCast,
10801        elemidx: impl OperandCast,
10802        rn: impl OperandCast,
10803        rm: impl OperandCast,
10804    ) {
10805        return self.emit_n(
10806            Opcode::ST4d_post as _,
10807            &[
10808                rt.as_operand(),
10809                elemidx.as_operand(),
10810                rn.as_operand(),
10811                rm.as_operand(),
10812            ],
10813        );
10814    }
10815    fn ld1b_post(
10816        &mut self,
10817        rt: impl OperandCast,
10818        elemidx: impl OperandCast,
10819        rn: impl OperandCast,
10820        rm: impl OperandCast,
10821    ) {
10822        return self.emit_n(
10823            Opcode::LD1b_post as _,
10824            &[
10825                rt.as_operand(),
10826                elemidx.as_operand(),
10827                rn.as_operand(),
10828                rm.as_operand(),
10829            ],
10830        );
10831    }
10832    fn ld3b_post(
10833        &mut self,
10834        rt: impl OperandCast,
10835        elemidx: impl OperandCast,
10836        rn: impl OperandCast,
10837        rm: impl OperandCast,
10838    ) {
10839        return self.emit_n(
10840            Opcode::LD3b_post as _,
10841            &[
10842                rt.as_operand(),
10843                elemidx.as_operand(),
10844                rn.as_operand(),
10845                rm.as_operand(),
10846            ],
10847        );
10848    }
10849    fn ld1h_post(
10850        &mut self,
10851        rt: impl OperandCast,
10852        elemidx: impl OperandCast,
10853        rn: impl OperandCast,
10854        rm: impl OperandCast,
10855    ) {
10856        return self.emit_n(
10857            Opcode::LD1h_post as _,
10858            &[
10859                rt.as_operand(),
10860                elemidx.as_operand(),
10861                rn.as_operand(),
10862                rm.as_operand(),
10863            ],
10864        );
10865    }
10866    fn ld3h_post(
10867        &mut self,
10868        rt: impl OperandCast,
10869        elemidx: impl OperandCast,
10870        rn: impl OperandCast,
10871        rm: impl OperandCast,
10872    ) {
10873        return self.emit_n(
10874            Opcode::LD3h_post as _,
10875            &[
10876                rt.as_operand(),
10877                elemidx.as_operand(),
10878                rn.as_operand(),
10879                rm.as_operand(),
10880            ],
10881        );
10882    }
10883    fn ld1s_post(
10884        &mut self,
10885        rt: impl OperandCast,
10886        elemidx: impl OperandCast,
10887        rn: impl OperandCast,
10888        rm: impl OperandCast,
10889    ) {
10890        return self.emit_n(
10891            Opcode::LD1s_post as _,
10892            &[
10893                rt.as_operand(),
10894                elemidx.as_operand(),
10895                rn.as_operand(),
10896                rm.as_operand(),
10897            ],
10898        );
10899    }
10900    fn ld1d_post(
10901        &mut self,
10902        rt: impl OperandCast,
10903        elemidx: impl OperandCast,
10904        rn: impl OperandCast,
10905        rm: impl OperandCast,
10906    ) {
10907        return self.emit_n(
10908            Opcode::LD1d_post as _,
10909            &[
10910                rt.as_operand(),
10911                elemidx.as_operand(),
10912                rn.as_operand(),
10913                rm.as_operand(),
10914            ],
10915        );
10916    }
10917    fn ld3s_post(
10918        &mut self,
10919        rt: impl OperandCast,
10920        elemidx: impl OperandCast,
10921        rn: impl OperandCast,
10922        rm: impl OperandCast,
10923    ) {
10924        return self.emit_n(
10925            Opcode::LD3s_post as _,
10926            &[
10927                rt.as_operand(),
10928                elemidx.as_operand(),
10929                rn.as_operand(),
10930                rm.as_operand(),
10931            ],
10932        );
10933    }
10934    fn ld3d_post(
10935        &mut self,
10936        rt: impl OperandCast,
10937        elemidx: impl OperandCast,
10938        rn: impl OperandCast,
10939        rm: impl OperandCast,
10940    ) {
10941        return self.emit_n(
10942            Opcode::LD3d_post as _,
10943            &[
10944                rt.as_operand(),
10945                elemidx.as_operand(),
10946                rn.as_operand(),
10947                rm.as_operand(),
10948            ],
10949        );
10950    }
10951    fn ld2b_post(
10952        &mut self,
10953        rt: impl OperandCast,
10954        elemidx: impl OperandCast,
10955        rn: impl OperandCast,
10956        rm: impl OperandCast,
10957    ) {
10958        return self.emit_n(
10959            Opcode::LD2b_post as _,
10960            &[
10961                rt.as_operand(),
10962                elemidx.as_operand(),
10963                rn.as_operand(),
10964                rm.as_operand(),
10965            ],
10966        );
10967    }
10968    fn ld4b_post(
10969        &mut self,
10970        rt: impl OperandCast,
10971        elemidx: impl OperandCast,
10972        rn: impl OperandCast,
10973        rm: impl OperandCast,
10974    ) {
10975        return self.emit_n(
10976            Opcode::LD4b_post as _,
10977            &[
10978                rt.as_operand(),
10979                elemidx.as_operand(),
10980                rn.as_operand(),
10981                rm.as_operand(),
10982            ],
10983        );
10984    }
10985    fn ld2h_post(
10986        &mut self,
10987        rt: impl OperandCast,
10988        elemidx: impl OperandCast,
10989        rn: impl OperandCast,
10990        rm: impl OperandCast,
10991    ) {
10992        return self.emit_n(
10993            Opcode::LD2h_post as _,
10994            &[
10995                rt.as_operand(),
10996                elemidx.as_operand(),
10997                rn.as_operand(),
10998                rm.as_operand(),
10999            ],
11000        );
11001    }
11002    fn ld4h_post(
11003        &mut self,
11004        rt: impl OperandCast,
11005        elemidx: impl OperandCast,
11006        rn: impl OperandCast,
11007        rm: impl OperandCast,
11008    ) {
11009        return self.emit_n(
11010            Opcode::LD4h_post as _,
11011            &[
11012                rt.as_operand(),
11013                elemidx.as_operand(),
11014                rn.as_operand(),
11015                rm.as_operand(),
11016            ],
11017        );
11018    }
11019    fn ld2s_post(
11020        &mut self,
11021        rt: impl OperandCast,
11022        elemidx: impl OperandCast,
11023        rn: impl OperandCast,
11024        rm: impl OperandCast,
11025    ) {
11026        return self.emit_n(
11027            Opcode::LD2s_post as _,
11028            &[
11029                rt.as_operand(),
11030                elemidx.as_operand(),
11031                rn.as_operand(),
11032                rm.as_operand(),
11033            ],
11034        );
11035    }
11036    fn ld2d_post(
11037        &mut self,
11038        rt: impl OperandCast,
11039        elemidx: impl OperandCast,
11040        rn: impl OperandCast,
11041        rm: impl OperandCast,
11042    ) {
11043        return self.emit_n(
11044            Opcode::LD2d_post as _,
11045            &[
11046                rt.as_operand(),
11047                elemidx.as_operand(),
11048                rn.as_operand(),
11049                rm.as_operand(),
11050            ],
11051        );
11052    }
11053    fn ld4s_post(
11054        &mut self,
11055        rt: impl OperandCast,
11056        elemidx: impl OperandCast,
11057        rn: impl OperandCast,
11058        rm: impl OperandCast,
11059    ) {
11060        return self.emit_n(
11061            Opcode::LD4s_post as _,
11062            &[
11063                rt.as_operand(),
11064                elemidx.as_operand(),
11065                rn.as_operand(),
11066                rm.as_operand(),
11067            ],
11068        );
11069    }
11070    fn ld4d_post(
11071        &mut self,
11072        rt: impl OperandCast,
11073        elemidx: impl OperandCast,
11074        rn: impl OperandCast,
11075        rm: impl OperandCast,
11076    ) {
11077        return self.emit_n(
11078            Opcode::LD4d_post as _,
11079            &[
11080                rt.as_operand(),
11081                elemidx.as_operand(),
11082                rn.as_operand(),
11083                rm.as_operand(),
11084            ],
11085        );
11086    }
11087    fn st1b_post1(
11088        &mut self,
11089        rt: impl OperandCast,
11090        elemidx: impl OperandCast,
11091        rn: impl OperandCast,
11092    ) {
11093        return self.emit_n(
11094            Opcode::ST1b_post1 as _,
11095            &[rt.as_operand(), elemidx.as_operand(), rn.as_operand()],
11096        );
11097    }
11098    fn st3b_post3(
11099        &mut self,
11100        rt: impl OperandCast,
11101        elemidx: impl OperandCast,
11102        rn: impl OperandCast,
11103    ) {
11104        return self.emit_n(
11105            Opcode::ST3b_post3 as _,
11106            &[rt.as_operand(), elemidx.as_operand(), rn.as_operand()],
11107        );
11108    }
11109    fn st1h_post2(
11110        &mut self,
11111        rt: impl OperandCast,
11112        elemidx: impl OperandCast,
11113        rn: impl OperandCast,
11114    ) {
11115        return self.emit_n(
11116            Opcode::ST1h_post2 as _,
11117            &[rt.as_operand(), elemidx.as_operand(), rn.as_operand()],
11118        );
11119    }
11120    fn st3h_post6(
11121        &mut self,
11122        rt: impl OperandCast,
11123        elemidx: impl OperandCast,
11124        rn: impl OperandCast,
11125    ) {
11126        return self.emit_n(
11127            Opcode::ST3h_post6 as _,
11128            &[rt.as_operand(), elemidx.as_operand(), rn.as_operand()],
11129        );
11130    }
11131    fn st1s_post4(
11132        &mut self,
11133        rt: impl OperandCast,
11134        elemidx: impl OperandCast,
11135        rn: impl OperandCast,
11136    ) {
11137        return self.emit_n(
11138            Opcode::ST1s_post4 as _,
11139            &[rt.as_operand(), elemidx.as_operand(), rn.as_operand()],
11140        );
11141    }
11142    fn st1d_post8(
11143        &mut self,
11144        rt: impl OperandCast,
11145        elemidx: impl OperandCast,
11146        rn: impl OperandCast,
11147    ) {
11148        return self.emit_n(
11149            Opcode::ST1d_post8 as _,
11150            &[rt.as_operand(), elemidx.as_operand(), rn.as_operand()],
11151        );
11152    }
11153    fn st3s_post12(
11154        &mut self,
11155        rt: impl OperandCast,
11156        elemidx: impl OperandCast,
11157        rn: impl OperandCast,
11158    ) {
11159        return self.emit_n(
11160            Opcode::ST3s_post12 as _,
11161            &[rt.as_operand(), elemidx.as_operand(), rn.as_operand()],
11162        );
11163    }
11164    fn st3d_post24(
11165        &mut self,
11166        rt: impl OperandCast,
11167        elemidx: impl OperandCast,
11168        rn: impl OperandCast,
11169    ) {
11170        return self.emit_n(
11171            Opcode::ST3d_post24 as _,
11172            &[rt.as_operand(), elemidx.as_operand(), rn.as_operand()],
11173        );
11174    }
11175    fn st2b_post2(
11176        &mut self,
11177        rt: impl OperandCast,
11178        elemidx: impl OperandCast,
11179        rn: impl OperandCast,
11180    ) {
11181        return self.emit_n(
11182            Opcode::ST2b_post2 as _,
11183            &[rt.as_operand(), elemidx.as_operand(), rn.as_operand()],
11184        );
11185    }
11186    fn st4b_post4(
11187        &mut self,
11188        rt: impl OperandCast,
11189        elemidx: impl OperandCast,
11190        rn: impl OperandCast,
11191    ) {
11192        return self.emit_n(
11193            Opcode::ST4b_post4 as _,
11194            &[rt.as_operand(), elemidx.as_operand(), rn.as_operand()],
11195        );
11196    }
11197    fn st2h_post4(
11198        &mut self,
11199        rt: impl OperandCast,
11200        elemidx: impl OperandCast,
11201        rn: impl OperandCast,
11202    ) {
11203        return self.emit_n(
11204            Opcode::ST2h_post4 as _,
11205            &[rt.as_operand(), elemidx.as_operand(), rn.as_operand()],
11206        );
11207    }
11208    fn st4h_post8(
11209        &mut self,
11210        rt: impl OperandCast,
11211        elemidx: impl OperandCast,
11212        rn: impl OperandCast,
11213    ) {
11214        return self.emit_n(
11215            Opcode::ST4h_post8 as _,
11216            &[rt.as_operand(), elemidx.as_operand(), rn.as_operand()],
11217        );
11218    }
11219    fn st2s_post8(
11220        &mut self,
11221        rt: impl OperandCast,
11222        elemidx: impl OperandCast,
11223        rn: impl OperandCast,
11224    ) {
11225        return self.emit_n(
11226            Opcode::ST2s_post8 as _,
11227            &[rt.as_operand(), elemidx.as_operand(), rn.as_operand()],
11228        );
11229    }
11230    fn st2d_post16(
11231        &mut self,
11232        rt: impl OperandCast,
11233        elemidx: impl OperandCast,
11234        rn: impl OperandCast,
11235    ) {
11236        return self.emit_n(
11237            Opcode::ST2d_post16 as _,
11238            &[rt.as_operand(), elemidx.as_operand(), rn.as_operand()],
11239        );
11240    }
11241    fn st4s_post16(
11242        &mut self,
11243        rt: impl OperandCast,
11244        elemidx: impl OperandCast,
11245        rn: impl OperandCast,
11246    ) {
11247        return self.emit_n(
11248            Opcode::ST4s_post16 as _,
11249            &[rt.as_operand(), elemidx.as_operand(), rn.as_operand()],
11250        );
11251    }
11252    fn st4d_post32(
11253        &mut self,
11254        rt: impl OperandCast,
11255        elemidx: impl OperandCast,
11256        rn: impl OperandCast,
11257    ) {
11258        return self.emit_n(
11259            Opcode::ST4d_post32 as _,
11260            &[rt.as_operand(), elemidx.as_operand(), rn.as_operand()],
11261        );
11262    }
11263    fn ld1b_post1(
11264        &mut self,
11265        rt: impl OperandCast,
11266        elemidx: impl OperandCast,
11267        rn: impl OperandCast,
11268    ) {
11269        return self.emit_n(
11270            Opcode::LD1b_post1 as _,
11271            &[rt.as_operand(), elemidx.as_operand(), rn.as_operand()],
11272        );
11273    }
11274    fn ld3b_post3(
11275        &mut self,
11276        rt: impl OperandCast,
11277        elemidx: impl OperandCast,
11278        rn: impl OperandCast,
11279    ) {
11280        return self.emit_n(
11281            Opcode::LD3b_post3 as _,
11282            &[rt.as_operand(), elemidx.as_operand(), rn.as_operand()],
11283        );
11284    }
11285    fn ld1h_post2(
11286        &mut self,
11287        rt: impl OperandCast,
11288        elemidx: impl OperandCast,
11289        rn: impl OperandCast,
11290    ) {
11291        return self.emit_n(
11292            Opcode::LD1h_post2 as _,
11293            &[rt.as_operand(), elemidx.as_operand(), rn.as_operand()],
11294        );
11295    }
11296    fn ld3h_post6(
11297        &mut self,
11298        rt: impl OperandCast,
11299        elemidx: impl OperandCast,
11300        rn: impl OperandCast,
11301    ) {
11302        return self.emit_n(
11303            Opcode::LD3h_post6 as _,
11304            &[rt.as_operand(), elemidx.as_operand(), rn.as_operand()],
11305        );
11306    }
11307    fn ld1s_post4(
11308        &mut self,
11309        rt: impl OperandCast,
11310        elemidx: impl OperandCast,
11311        rn: impl OperandCast,
11312    ) {
11313        return self.emit_n(
11314            Opcode::LD1s_post4 as _,
11315            &[rt.as_operand(), elemidx.as_operand(), rn.as_operand()],
11316        );
11317    }
11318    fn ld1d_post8(
11319        &mut self,
11320        rt: impl OperandCast,
11321        elemidx: impl OperandCast,
11322        rn: impl OperandCast,
11323    ) {
11324        return self.emit_n(
11325            Opcode::LD1d_post8 as _,
11326            &[rt.as_operand(), elemidx.as_operand(), rn.as_operand()],
11327        );
11328    }
11329    fn ld3s_post12(
11330        &mut self,
11331        rt: impl OperandCast,
11332        elemidx: impl OperandCast,
11333        rn: impl OperandCast,
11334    ) {
11335        return self.emit_n(
11336            Opcode::LD3s_post12 as _,
11337            &[rt.as_operand(), elemidx.as_operand(), rn.as_operand()],
11338        );
11339    }
11340    fn ld3d_post24(
11341        &mut self,
11342        rt: impl OperandCast,
11343        elemidx: impl OperandCast,
11344        rn: impl OperandCast,
11345    ) {
11346        return self.emit_n(
11347            Opcode::LD3d_post24 as _,
11348            &[rt.as_operand(), elemidx.as_operand(), rn.as_operand()],
11349        );
11350    }
11351    fn ld2b_post2(
11352        &mut self,
11353        rt: impl OperandCast,
11354        elemidx: impl OperandCast,
11355        rn: impl OperandCast,
11356    ) {
11357        return self.emit_n(
11358            Opcode::LD2b_post2 as _,
11359            &[rt.as_operand(), elemidx.as_operand(), rn.as_operand()],
11360        );
11361    }
11362    fn ld4b_post4(
11363        &mut self,
11364        rt: impl OperandCast,
11365        elemidx: impl OperandCast,
11366        rn: impl OperandCast,
11367    ) {
11368        return self.emit_n(
11369            Opcode::LD4b_post4 as _,
11370            &[rt.as_operand(), elemidx.as_operand(), rn.as_operand()],
11371        );
11372    }
11373    fn ld2h_post4(
11374        &mut self,
11375        rt: impl OperandCast,
11376        elemidx: impl OperandCast,
11377        rn: impl OperandCast,
11378    ) {
11379        return self.emit_n(
11380            Opcode::LD2h_post4 as _,
11381            &[rt.as_operand(), elemidx.as_operand(), rn.as_operand()],
11382        );
11383    }
11384    fn ld4h_post8(
11385        &mut self,
11386        rt: impl OperandCast,
11387        elemidx: impl OperandCast,
11388        rn: impl OperandCast,
11389    ) {
11390        return self.emit_n(
11391            Opcode::LD4h_post8 as _,
11392            &[rt.as_operand(), elemidx.as_operand(), rn.as_operand()],
11393        );
11394    }
11395    fn ld2s_post8(
11396        &mut self,
11397        rt: impl OperandCast,
11398        elemidx: impl OperandCast,
11399        rn: impl OperandCast,
11400    ) {
11401        return self.emit_n(
11402            Opcode::LD2s_post8 as _,
11403            &[rt.as_operand(), elemidx.as_operand(), rn.as_operand()],
11404        );
11405    }
11406    fn ld2d_post16(
11407        &mut self,
11408        rt: impl OperandCast,
11409        elemidx: impl OperandCast,
11410        rn: impl OperandCast,
11411    ) {
11412        return self.emit_n(
11413            Opcode::LD2d_post16 as _,
11414            &[rt.as_operand(), elemidx.as_operand(), rn.as_operand()],
11415        );
11416    }
11417    fn ld4s_post16(
11418        &mut self,
11419        rt: impl OperandCast,
11420        elemidx: impl OperandCast,
11421        rn: impl OperandCast,
11422    ) {
11423        return self.emit_n(
11424            Opcode::LD4s_post16 as _,
11425            &[rt.as_operand(), elemidx.as_operand(), rn.as_operand()],
11426        );
11427    }
11428    fn ld4d_post32(
11429        &mut self,
11430        rt: impl OperandCast,
11431        elemidx: impl OperandCast,
11432        rn: impl OperandCast,
11433    ) {
11434        return self.emit_n(
11435            Opcode::LD4d_post32 as _,
11436            &[rt.as_operand(), elemidx.as_operand(), rn.as_operand()],
11437        );
11438    }
11439    fn ld1r8b(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
11440        return self.emit_n(Opcode::LD1R8b as _, &[rt.as_operand(), rn.as_operand()]);
11441    }
11442    fn ld1r4h(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
11443        return self.emit_n(Opcode::LD1R4h as _, &[rt.as_operand(), rn.as_operand()]);
11444    }
11445    fn ld1r2s(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
11446        return self.emit_n(Opcode::LD1R2s as _, &[rt.as_operand(), rn.as_operand()]);
11447    }
11448    fn ld1r1d(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
11449        return self.emit_n(Opcode::LD1R1d as _, &[rt.as_operand(), rn.as_operand()]);
11450    }
11451    fn ld3r8b(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
11452        return self.emit_n(Opcode::LD3R8b as _, &[rt.as_operand(), rn.as_operand()]);
11453    }
11454    fn ld3r4h(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
11455        return self.emit_n(Opcode::LD3R4h as _, &[rt.as_operand(), rn.as_operand()]);
11456    }
11457    fn ld3r2s(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
11458        return self.emit_n(Opcode::LD3R2s as _, &[rt.as_operand(), rn.as_operand()]);
11459    }
11460    fn ld3r1d(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
11461        return self.emit_n(Opcode::LD3R1d as _, &[rt.as_operand(), rn.as_operand()]);
11462    }
11463    fn ld2r8b(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
11464        return self.emit_n(Opcode::LD2R8b as _, &[rt.as_operand(), rn.as_operand()]);
11465    }
11466    fn ld2r4h(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
11467        return self.emit_n(Opcode::LD2R4h as _, &[rt.as_operand(), rn.as_operand()]);
11468    }
11469    fn ld2r2s(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
11470        return self.emit_n(Opcode::LD2R2s as _, &[rt.as_operand(), rn.as_operand()]);
11471    }
11472    fn ld2r1d(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
11473        return self.emit_n(Opcode::LD2R1d as _, &[rt.as_operand(), rn.as_operand()]);
11474    }
11475    fn ld4r8b(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
11476        return self.emit_n(Opcode::LD4R8b as _, &[rt.as_operand(), rn.as_operand()]);
11477    }
11478    fn ld4r4h(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
11479        return self.emit_n(Opcode::LD4R4h as _, &[rt.as_operand(), rn.as_operand()]);
11480    }
11481    fn ld4r2s(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
11482        return self.emit_n(Opcode::LD4R2s as _, &[rt.as_operand(), rn.as_operand()]);
11483    }
11484    fn ld4r1d(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
11485        return self.emit_n(Opcode::LD4R1d as _, &[rt.as_operand(), rn.as_operand()]);
11486    }
11487    fn ld1r16b(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
11488        return self.emit_n(Opcode::LD1R16b as _, &[rt.as_operand(), rn.as_operand()]);
11489    }
11490    fn ld1r8h(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
11491        return self.emit_n(Opcode::LD1R8h as _, &[rt.as_operand(), rn.as_operand()]);
11492    }
11493    fn ld1r4s(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
11494        return self.emit_n(Opcode::LD1R4s as _, &[rt.as_operand(), rn.as_operand()]);
11495    }
11496    fn ld1r2d(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
11497        return self.emit_n(Opcode::LD1R2d as _, &[rt.as_operand(), rn.as_operand()]);
11498    }
11499    fn ld3r16b(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
11500        return self.emit_n(Opcode::LD3R16b as _, &[rt.as_operand(), rn.as_operand()]);
11501    }
11502    fn ld3r8h(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
11503        return self.emit_n(Opcode::LD3R8h as _, &[rt.as_operand(), rn.as_operand()]);
11504    }
11505    fn ld3r4s(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
11506        return self.emit_n(Opcode::LD3R4s as _, &[rt.as_operand(), rn.as_operand()]);
11507    }
11508    fn ld3r2d(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
11509        return self.emit_n(Opcode::LD3R2d as _, &[rt.as_operand(), rn.as_operand()]);
11510    }
11511    fn ld2r16b(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
11512        return self.emit_n(Opcode::LD2R16b as _, &[rt.as_operand(), rn.as_operand()]);
11513    }
11514    fn ld2r8h(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
11515        return self.emit_n(Opcode::LD2R8h as _, &[rt.as_operand(), rn.as_operand()]);
11516    }
11517    fn ld2r4s(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
11518        return self.emit_n(Opcode::LD2R4s as _, &[rt.as_operand(), rn.as_operand()]);
11519    }
11520    fn ld2r2d(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
11521        return self.emit_n(Opcode::LD2R2d as _, &[rt.as_operand(), rn.as_operand()]);
11522    }
11523    fn ld4r16b(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
11524        return self.emit_n(Opcode::LD4R16b as _, &[rt.as_operand(), rn.as_operand()]);
11525    }
11526    fn ld4r8h(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
11527        return self.emit_n(Opcode::LD4R8h as _, &[rt.as_operand(), rn.as_operand()]);
11528    }
11529    fn ld4r4s(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
11530        return self.emit_n(Opcode::LD4R4s as _, &[rt.as_operand(), rn.as_operand()]);
11531    }
11532    fn ld4r2d(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
11533        return self.emit_n(Opcode::LD4R2d as _, &[rt.as_operand(), rn.as_operand()]);
11534    }
11535    fn ld1r8b_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
11536        return self.emit_n(
11537            Opcode::LD1R8b_post as _,
11538            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
11539        );
11540    }
11541    fn ld1r4h_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
11542        return self.emit_n(
11543            Opcode::LD1R4h_post as _,
11544            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
11545        );
11546    }
11547    fn ld1r2s_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
11548        return self.emit_n(
11549            Opcode::LD1R2s_post as _,
11550            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
11551        );
11552    }
11553    fn ld1r1d_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
11554        return self.emit_n(
11555            Opcode::LD1R1d_post as _,
11556            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
11557        );
11558    }
11559    fn ld3r8b_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
11560        return self.emit_n(
11561            Opcode::LD3R8b_post as _,
11562            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
11563        );
11564    }
11565    fn ld3r4h_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
11566        return self.emit_n(
11567            Opcode::LD3R4h_post as _,
11568            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
11569        );
11570    }
11571    fn ld3r2s_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
11572        return self.emit_n(
11573            Opcode::LD3R2s_post as _,
11574            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
11575        );
11576    }
11577    fn ld3r1d_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
11578        return self.emit_n(
11579            Opcode::LD3R1d_post as _,
11580            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
11581        );
11582    }
11583    fn ld2r8b_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
11584        return self.emit_n(
11585            Opcode::LD2R8b_post as _,
11586            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
11587        );
11588    }
11589    fn ld2r4h_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
11590        return self.emit_n(
11591            Opcode::LD2R4h_post as _,
11592            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
11593        );
11594    }
11595    fn ld2r2s_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
11596        return self.emit_n(
11597            Opcode::LD2R2s_post as _,
11598            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
11599        );
11600    }
11601    fn ld2r1d_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
11602        return self.emit_n(
11603            Opcode::LD2R1d_post as _,
11604            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
11605        );
11606    }
11607    fn ld4r8b_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
11608        return self.emit_n(
11609            Opcode::LD4R8b_post as _,
11610            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
11611        );
11612    }
11613    fn ld4r4h_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
11614        return self.emit_n(
11615            Opcode::LD4R4h_post as _,
11616            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
11617        );
11618    }
11619    fn ld4r2s_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
11620        return self.emit_n(
11621            Opcode::LD4R2s_post as _,
11622            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
11623        );
11624    }
11625    fn ld4r1d_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
11626        return self.emit_n(
11627            Opcode::LD4R1d_post as _,
11628            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
11629        );
11630    }
11631    fn ld1r16b_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
11632        return self.emit_n(
11633            Opcode::LD1R16b_post as _,
11634            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
11635        );
11636    }
11637    fn ld1r8h_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
11638        return self.emit_n(
11639            Opcode::LD1R8h_post as _,
11640            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
11641        );
11642    }
11643    fn ld1r4s_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
11644        return self.emit_n(
11645            Opcode::LD1R4s_post as _,
11646            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
11647        );
11648    }
11649    fn ld1r2d_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
11650        return self.emit_n(
11651            Opcode::LD1R2d_post as _,
11652            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
11653        );
11654    }
11655    fn ld3r16b_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
11656        return self.emit_n(
11657            Opcode::LD3R16b_post as _,
11658            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
11659        );
11660    }
11661    fn ld3r8h_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
11662        return self.emit_n(
11663            Opcode::LD3R8h_post as _,
11664            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
11665        );
11666    }
11667    fn ld3r4s_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
11668        return self.emit_n(
11669            Opcode::LD3R4s_post as _,
11670            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
11671        );
11672    }
11673    fn ld3r2d_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
11674        return self.emit_n(
11675            Opcode::LD3R2d_post as _,
11676            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
11677        );
11678    }
11679    fn ld2r16b_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
11680        return self.emit_n(
11681            Opcode::LD2R16b_post as _,
11682            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
11683        );
11684    }
11685    fn ld2r8h_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
11686        return self.emit_n(
11687            Opcode::LD2R8h_post as _,
11688            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
11689        );
11690    }
11691    fn ld2r4s_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
11692        return self.emit_n(
11693            Opcode::LD2R4s_post as _,
11694            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
11695        );
11696    }
11697    fn ld2r2d_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
11698        return self.emit_n(
11699            Opcode::LD2R2d_post as _,
11700            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
11701        );
11702    }
11703    fn ld4r16b_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
11704        return self.emit_n(
11705            Opcode::LD4R16b_post as _,
11706            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
11707        );
11708    }
11709    fn ld4r8h_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
11710        return self.emit_n(
11711            Opcode::LD4R8h_post as _,
11712            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
11713        );
11714    }
11715    fn ld4r4s_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
11716        return self.emit_n(
11717            Opcode::LD4R4s_post as _,
11718            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
11719        );
11720    }
11721    fn ld4r2d_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
11722        return self.emit_n(
11723            Opcode::LD4R2d_post as _,
11724            &[rt.as_operand(), rn.as_operand(), rm.as_operand()],
11725        );
11726    }
11727    fn ld1r8b_post1(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
11728        return self.emit_n(
11729            Opcode::LD1R8b_post1 as _,
11730            &[rt.as_operand(), rn.as_operand()],
11731        );
11732    }
11733    fn ld1r4h_post2(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
11734        return self.emit_n(
11735            Opcode::LD1R4h_post2 as _,
11736            &[rt.as_operand(), rn.as_operand()],
11737        );
11738    }
11739    fn ld1r2s_post4(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
11740        return self.emit_n(
11741            Opcode::LD1R2s_post4 as _,
11742            &[rt.as_operand(), rn.as_operand()],
11743        );
11744    }
11745    fn ld1r1d_post8(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
11746        return self.emit_n(
11747            Opcode::LD1R1d_post8 as _,
11748            &[rt.as_operand(), rn.as_operand()],
11749        );
11750    }
11751    fn ld3r8b_post3(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
11752        return self.emit_n(
11753            Opcode::LD3R8b_post3 as _,
11754            &[rt.as_operand(), rn.as_operand()],
11755        );
11756    }
11757    fn ld3r4h_post6(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
11758        return self.emit_n(
11759            Opcode::LD3R4h_post6 as _,
11760            &[rt.as_operand(), rn.as_operand()],
11761        );
11762    }
11763    fn ld3r2s_post12(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
11764        return self.emit_n(
11765            Opcode::LD3R2s_post12 as _,
11766            &[rt.as_operand(), rn.as_operand()],
11767        );
11768    }
11769    fn ld3r1d_post24(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
11770        return self.emit_n(
11771            Opcode::LD3R1d_post24 as _,
11772            &[rt.as_operand(), rn.as_operand()],
11773        );
11774    }
11775    fn ld2r8b_post2(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
11776        return self.emit_n(
11777            Opcode::LD2R8b_post2 as _,
11778            &[rt.as_operand(), rn.as_operand()],
11779        );
11780    }
11781    fn ld2r4h_post4(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
11782        return self.emit_n(
11783            Opcode::LD2R4h_post4 as _,
11784            &[rt.as_operand(), rn.as_operand()],
11785        );
11786    }
11787    fn ld2r2s_post8(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
11788        return self.emit_n(
11789            Opcode::LD2R2s_post8 as _,
11790            &[rt.as_operand(), rn.as_operand()],
11791        );
11792    }
11793    fn ld2r1d_post16(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
11794        return self.emit_n(
11795            Opcode::LD2R1d_post16 as _,
11796            &[rt.as_operand(), rn.as_operand()],
11797        );
11798    }
11799    fn ld4r8b_post4(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
11800        return self.emit_n(
11801            Opcode::LD4R8b_post4 as _,
11802            &[rt.as_operand(), rn.as_operand()],
11803        );
11804    }
11805    fn ld4r4h_post8(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
11806        return self.emit_n(
11807            Opcode::LD4R4h_post8 as _,
11808            &[rt.as_operand(), rn.as_operand()],
11809        );
11810    }
11811    fn ld4r2s_post16(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
11812        return self.emit_n(
11813            Opcode::LD4R2s_post16 as _,
11814            &[rt.as_operand(), rn.as_operand()],
11815        );
11816    }
11817    fn ld4r1d_post32(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
11818        return self.emit_n(
11819            Opcode::LD4R1d_post32 as _,
11820            &[rt.as_operand(), rn.as_operand()],
11821        );
11822    }
11823    fn ld1r16b_post1(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
11824        return self.emit_n(
11825            Opcode::LD1R16b_post1 as _,
11826            &[rt.as_operand(), rn.as_operand()],
11827        );
11828    }
11829    fn ld1r8h_post2(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
11830        return self.emit_n(
11831            Opcode::LD1R8h_post2 as _,
11832            &[rt.as_operand(), rn.as_operand()],
11833        );
11834    }
11835    fn ld1r4s_post4(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
11836        return self.emit_n(
11837            Opcode::LD1R4s_post4 as _,
11838            &[rt.as_operand(), rn.as_operand()],
11839        );
11840    }
11841    fn ld1r2d_post8(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
11842        return self.emit_n(
11843            Opcode::LD1R2d_post8 as _,
11844            &[rt.as_operand(), rn.as_operand()],
11845        );
11846    }
11847    fn ld3r16b_post3(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
11848        return self.emit_n(
11849            Opcode::LD3R16b_post3 as _,
11850            &[rt.as_operand(), rn.as_operand()],
11851        );
11852    }
11853    fn ld3r8h_post6(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
11854        return self.emit_n(
11855            Opcode::LD3R8h_post6 as _,
11856            &[rt.as_operand(), rn.as_operand()],
11857        );
11858    }
11859    fn ld3r4s_post12(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
11860        return self.emit_n(
11861            Opcode::LD3R4s_post12 as _,
11862            &[rt.as_operand(), rn.as_operand()],
11863        );
11864    }
11865    fn ld3r2d_post24(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
11866        return self.emit_n(
11867            Opcode::LD3R2d_post24 as _,
11868            &[rt.as_operand(), rn.as_operand()],
11869        );
11870    }
11871    fn ld2r16b_post2(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
11872        return self.emit_n(
11873            Opcode::LD2R16b_post2 as _,
11874            &[rt.as_operand(), rn.as_operand()],
11875        );
11876    }
11877    fn ld2r8h_post4(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
11878        return self.emit_n(
11879            Opcode::LD2R8h_post4 as _,
11880            &[rt.as_operand(), rn.as_operand()],
11881        );
11882    }
11883    fn ld2r4s_post8(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
11884        return self.emit_n(
11885            Opcode::LD2R4s_post8 as _,
11886            &[rt.as_operand(), rn.as_operand()],
11887        );
11888    }
11889    fn ld2r2d_post16(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
11890        return self.emit_n(
11891            Opcode::LD2R2d_post16 as _,
11892            &[rt.as_operand(), rn.as_operand()],
11893        );
11894    }
11895    fn ld4r16b_post4(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
11896        return self.emit_n(
11897            Opcode::LD4R16b_post4 as _,
11898            &[rt.as_operand(), rn.as_operand()],
11899        );
11900    }
11901    fn ld4r8h_post8(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
11902        return self.emit_n(
11903            Opcode::LD4R8h_post8 as _,
11904            &[rt.as_operand(), rn.as_operand()],
11905        );
11906    }
11907    fn ld4r4s_post16(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
11908        return self.emit_n(
11909            Opcode::LD4R4s_post16 as _,
11910            &[rt.as_operand(), rn.as_operand()],
11911        );
11912    }
11913    fn ld4r2d_post32(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
11914        return self.emit_n(
11915            Opcode::LD4R2d_post32 as _,
11916            &[rt.as_operand(), rn.as_operand()],
11917        );
11918    }
11919    fn fcvtzsws_fix(
11920        &mut self,
11921        rd: impl OperandCast,
11922        rn: impl OperandCast,
11923        fbits: impl OperandCast,
11924    ) {
11925        return self.emit_n(
11926            Opcode::FCVTZSws_fix as _,
11927            &[rd.as_operand(), rn.as_operand(), fbits.as_operand()],
11928        );
11929    }
11930    fn fcvtzuws_fix(
11931        &mut self,
11932        rd: impl OperandCast,
11933        rn: impl OperandCast,
11934        fbits: impl OperandCast,
11935    ) {
11936        return self.emit_n(
11937            Opcode::FCVTZUws_fix as _,
11938            &[rd.as_operand(), rn.as_operand(), fbits.as_operand()],
11939        );
11940    }
11941    fn fcvtzswd_fix(
11942        &mut self,
11943        rd: impl OperandCast,
11944        rn: impl OperandCast,
11945        fbits: impl OperandCast,
11946    ) {
11947        return self.emit_n(
11948            Opcode::FCVTZSwd_fix as _,
11949            &[rd.as_operand(), rn.as_operand(), fbits.as_operand()],
11950        );
11951    }
11952    fn fcvtzuwd_fix(
11953        &mut self,
11954        rd: impl OperandCast,
11955        rn: impl OperandCast,
11956        fbits: impl OperandCast,
11957    ) {
11958        return self.emit_n(
11959            Opcode::FCVTZUwd_fix as _,
11960            &[rd.as_operand(), rn.as_operand(), fbits.as_operand()],
11961        );
11962    }
11963    fn fcvtzswh_fix(
11964        &mut self,
11965        rd: impl OperandCast,
11966        rn: impl OperandCast,
11967        fbits: impl OperandCast,
11968    ) {
11969        return self.emit_n(
11970            Opcode::FCVTZSwh_fix as _,
11971            &[rd.as_operand(), rn.as_operand(), fbits.as_operand()],
11972        );
11973    }
11974    fn fcvtzuwh_fix(
11975        &mut self,
11976        rd: impl OperandCast,
11977        rn: impl OperandCast,
11978        fbits: impl OperandCast,
11979    ) {
11980        return self.emit_n(
11981            Opcode::FCVTZUwh_fix as _,
11982            &[rd.as_operand(), rn.as_operand(), fbits.as_operand()],
11983        );
11984    }
11985    fn fcvtzsxs_fix(
11986        &mut self,
11987        rd: impl OperandCast,
11988        rn: impl OperandCast,
11989        fbits: impl OperandCast,
11990    ) {
11991        return self.emit_n(
11992            Opcode::FCVTZSxs_fix as _,
11993            &[rd.as_operand(), rn.as_operand(), fbits.as_operand()],
11994        );
11995    }
11996    fn fcvtzuxs_fix(
11997        &mut self,
11998        rd: impl OperandCast,
11999        rn: impl OperandCast,
12000        fbits: impl OperandCast,
12001    ) {
12002        return self.emit_n(
12003            Opcode::FCVTZUxs_fix as _,
12004            &[rd.as_operand(), rn.as_operand(), fbits.as_operand()],
12005        );
12006    }
12007    fn fcvtzsxd_fix(
12008        &mut self,
12009        rd: impl OperandCast,
12010        rn: impl OperandCast,
12011        fbits: impl OperandCast,
12012    ) {
12013        return self.emit_n(
12014            Opcode::FCVTZSxd_fix as _,
12015            &[rd.as_operand(), rn.as_operand(), fbits.as_operand()],
12016        );
12017    }
12018    fn fcvtzuxd_fix(
12019        &mut self,
12020        rd: impl OperandCast,
12021        rn: impl OperandCast,
12022        fbits: impl OperandCast,
12023    ) {
12024        return self.emit_n(
12025            Opcode::FCVTZUxd_fix as _,
12026            &[rd.as_operand(), rn.as_operand(), fbits.as_operand()],
12027        );
12028    }
12029    fn fcvtzsxh_fix(
12030        &mut self,
12031        rd: impl OperandCast,
12032        rn: impl OperandCast,
12033        fbits: impl OperandCast,
12034    ) {
12035        return self.emit_n(
12036            Opcode::FCVTZSxh_fix as _,
12037            &[rd.as_operand(), rn.as_operand(), fbits.as_operand()],
12038        );
12039    }
12040    fn fcvtzuxh_fix(
12041        &mut self,
12042        rd: impl OperandCast,
12043        rn: impl OperandCast,
12044        fbits: impl OperandCast,
12045    ) {
12046        return self.emit_n(
12047            Opcode::FCVTZUxh_fix as _,
12048            &[rd.as_operand(), rn.as_operand(), fbits.as_operand()],
12049        );
12050    }
12051    fn scvtfsw_fix(&mut self, rd: impl OperandCast, rn: impl OperandCast, fbits: impl OperandCast) {
12052        return self.emit_n(
12053            Opcode::SCVTFsw_fix as _,
12054            &[rd.as_operand(), rn.as_operand(), fbits.as_operand()],
12055        );
12056    }
12057    fn ucvtfsw_fix(&mut self, rd: impl OperandCast, rn: impl OperandCast, fbits: impl OperandCast) {
12058        return self.emit_n(
12059            Opcode::UCVTFsw_fix as _,
12060            &[rd.as_operand(), rn.as_operand(), fbits.as_operand()],
12061        );
12062    }
12063    fn scvtfdw_fix(&mut self, rd: impl OperandCast, rn: impl OperandCast, fbits: impl OperandCast) {
12064        return self.emit_n(
12065            Opcode::SCVTFdw_fix as _,
12066            &[rd.as_operand(), rn.as_operand(), fbits.as_operand()],
12067        );
12068    }
12069    fn ucvtfdw_fix(&mut self, rd: impl OperandCast, rn: impl OperandCast, fbits: impl OperandCast) {
12070        return self.emit_n(
12071            Opcode::UCVTFdw_fix as _,
12072            &[rd.as_operand(), rn.as_operand(), fbits.as_operand()],
12073        );
12074    }
12075    fn scvtfhw_fix(&mut self, rd: impl OperandCast, rn: impl OperandCast, fbits: impl OperandCast) {
12076        return self.emit_n(
12077            Opcode::SCVTFhw_fix as _,
12078            &[rd.as_operand(), rn.as_operand(), fbits.as_operand()],
12079        );
12080    }
12081    fn ucvtfhw_fix(&mut self, rd: impl OperandCast, rn: impl OperandCast, fbits: impl OperandCast) {
12082        return self.emit_n(
12083            Opcode::UCVTFhw_fix as _,
12084            &[rd.as_operand(), rn.as_operand(), fbits.as_operand()],
12085        );
12086    }
12087    fn scvtfsx_fix(&mut self, rd: impl OperandCast, rn: impl OperandCast, fbits: impl OperandCast) {
12088        return self.emit_n(
12089            Opcode::SCVTFsx_fix as _,
12090            &[rd.as_operand(), rn.as_operand(), fbits.as_operand()],
12091        );
12092    }
12093    fn ucvtfsx_fix(&mut self, rd: impl OperandCast, rn: impl OperandCast, fbits: impl OperandCast) {
12094        return self.emit_n(
12095            Opcode::UCVTFsx_fix as _,
12096            &[rd.as_operand(), rn.as_operand(), fbits.as_operand()],
12097        );
12098    }
12099    fn scvtfdx_fix(&mut self, rd: impl OperandCast, rn: impl OperandCast, fbits: impl OperandCast) {
12100        return self.emit_n(
12101            Opcode::SCVTFdx_fix as _,
12102            &[rd.as_operand(), rn.as_operand(), fbits.as_operand()],
12103        );
12104    }
12105    fn ucvtfdx_fix(&mut self, rd: impl OperandCast, rn: impl OperandCast, fbits: impl OperandCast) {
12106        return self.emit_n(
12107            Opcode::UCVTFdx_fix as _,
12108            &[rd.as_operand(), rn.as_operand(), fbits.as_operand()],
12109        );
12110    }
12111    fn scvtfhx_fix(&mut self, rd: impl OperandCast, rn: impl OperandCast, fbits: impl OperandCast) {
12112        return self.emit_n(
12113            Opcode::SCVTFhx_fix as _,
12114            &[rd.as_operand(), rn.as_operand(), fbits.as_operand()],
12115        );
12116    }
12117    fn ucvtfhx_fix(&mut self, rd: impl OperandCast, rn: impl OperandCast, fbits: impl OperandCast) {
12118        return self.emit_n(
12119            Opcode::UCVTFhx_fix as _,
12120            &[rd.as_operand(), rn.as_operand(), fbits.as_operand()],
12121        );
12122    }
12123    fn fcvtnsws(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12124        return self.emit_n(Opcode::FCVTNSws as _, &[rd.as_operand(), rn.as_operand()]);
12125    }
12126    fn fcvtnuws(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12127        return self.emit_n(Opcode::FCVTNUws as _, &[rd.as_operand(), rn.as_operand()]);
12128    }
12129    fn fcvtasws(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12130        return self.emit_n(Opcode::FCVTASws as _, &[rd.as_operand(), rn.as_operand()]);
12131    }
12132    fn fcvtauws(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12133        return self.emit_n(Opcode::FCVTAUws as _, &[rd.as_operand(), rn.as_operand()]);
12134    }
12135    fn fcvtpsws(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12136        return self.emit_n(Opcode::FCVTPSws as _, &[rd.as_operand(), rn.as_operand()]);
12137    }
12138    fn fcvtpuws(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12139        return self.emit_n(Opcode::FCVTPUws as _, &[rd.as_operand(), rn.as_operand()]);
12140    }
12141    fn fcvtmsws(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12142        return self.emit_n(Opcode::FCVTMSws as _, &[rd.as_operand(), rn.as_operand()]);
12143    }
12144    fn fcvtmuws(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12145        return self.emit_n(Opcode::FCVTMUws as _, &[rd.as_operand(), rn.as_operand()]);
12146    }
12147    fn fcvtzsws(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12148        return self.emit_n(Opcode::FCVTZSws as _, &[rd.as_operand(), rn.as_operand()]);
12149    }
12150    fn fcvtzuws(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12151        return self.emit_n(Opcode::FCVTZUws as _, &[rd.as_operand(), rn.as_operand()]);
12152    }
12153    fn fcvtnswd(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12154        return self.emit_n(Opcode::FCVTNSwd as _, &[rd.as_operand(), rn.as_operand()]);
12155    }
12156    fn fcvtnuwd(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12157        return self.emit_n(Opcode::FCVTNUwd as _, &[rd.as_operand(), rn.as_operand()]);
12158    }
12159    fn fcvtaswd(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12160        return self.emit_n(Opcode::FCVTASwd as _, &[rd.as_operand(), rn.as_operand()]);
12161    }
12162    fn fcvtauwd(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12163        return self.emit_n(Opcode::FCVTAUwd as _, &[rd.as_operand(), rn.as_operand()]);
12164    }
12165    fn fcvtpswd(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12166        return self.emit_n(Opcode::FCVTPSwd as _, &[rd.as_operand(), rn.as_operand()]);
12167    }
12168    fn fcvtpuwd(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12169        return self.emit_n(Opcode::FCVTPUwd as _, &[rd.as_operand(), rn.as_operand()]);
12170    }
12171    fn fcvtmswd(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12172        return self.emit_n(Opcode::FCVTMSwd as _, &[rd.as_operand(), rn.as_operand()]);
12173    }
12174    fn fcvtmuwd(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12175        return self.emit_n(Opcode::FCVTMUwd as _, &[rd.as_operand(), rn.as_operand()]);
12176    }
12177    fn fcvtzswd(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12178        return self.emit_n(Opcode::FCVTZSwd as _, &[rd.as_operand(), rn.as_operand()]);
12179    }
12180    fn fcvtzuwd(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12181        return self.emit_n(Opcode::FCVTZUwd as _, &[rd.as_operand(), rn.as_operand()]);
12182    }
12183    fn fcvtnswh(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12184        return self.emit_n(Opcode::FCVTNSwh as _, &[rd.as_operand(), rn.as_operand()]);
12185    }
12186    fn fcvtnuwh(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12187        return self.emit_n(Opcode::FCVTNUwh as _, &[rd.as_operand(), rn.as_operand()]);
12188    }
12189    fn fcvtaswh(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12190        return self.emit_n(Opcode::FCVTASwh as _, &[rd.as_operand(), rn.as_operand()]);
12191    }
12192    fn fcvtauwh(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12193        return self.emit_n(Opcode::FCVTAUwh as _, &[rd.as_operand(), rn.as_operand()]);
12194    }
12195    fn fcvtpswh(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12196        return self.emit_n(Opcode::FCVTPSwh as _, &[rd.as_operand(), rn.as_operand()]);
12197    }
12198    fn fcvtpuwh(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12199        return self.emit_n(Opcode::FCVTPUwh as _, &[rd.as_operand(), rn.as_operand()]);
12200    }
12201    fn fcvtmswh(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12202        return self.emit_n(Opcode::FCVTMSwh as _, &[rd.as_operand(), rn.as_operand()]);
12203    }
12204    fn fcvtmuwh(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12205        return self.emit_n(Opcode::FCVTMUwh as _, &[rd.as_operand(), rn.as_operand()]);
12206    }
12207    fn fcvtzswh(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12208        return self.emit_n(Opcode::FCVTZSwh as _, &[rd.as_operand(), rn.as_operand()]);
12209    }
12210    fn fcvtzuwh(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12211        return self.emit_n(Opcode::FCVTZUwh as _, &[rd.as_operand(), rn.as_operand()]);
12212    }
12213    fn fcvtnsxs(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12214        return self.emit_n(Opcode::FCVTNSxs as _, &[rd.as_operand(), rn.as_operand()]);
12215    }
12216    fn fcvtnuxs(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12217        return self.emit_n(Opcode::FCVTNUxs as _, &[rd.as_operand(), rn.as_operand()]);
12218    }
12219    fn fcvtasxs(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12220        return self.emit_n(Opcode::FCVTASxs as _, &[rd.as_operand(), rn.as_operand()]);
12221    }
12222    fn fcvtauxs(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12223        return self.emit_n(Opcode::FCVTAUxs as _, &[rd.as_operand(), rn.as_operand()]);
12224    }
12225    fn fcvtpsxs(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12226        return self.emit_n(Opcode::FCVTPSxs as _, &[rd.as_operand(), rn.as_operand()]);
12227    }
12228    fn fcvtpuxs(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12229        return self.emit_n(Opcode::FCVTPUxs as _, &[rd.as_operand(), rn.as_operand()]);
12230    }
12231    fn fcvtmsxs(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12232        return self.emit_n(Opcode::FCVTMSxs as _, &[rd.as_operand(), rn.as_operand()]);
12233    }
12234    fn fcvtmuxs(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12235        return self.emit_n(Opcode::FCVTMUxs as _, &[rd.as_operand(), rn.as_operand()]);
12236    }
12237    fn fcvtzsxs(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12238        return self.emit_n(Opcode::FCVTZSxs as _, &[rd.as_operand(), rn.as_operand()]);
12239    }
12240    fn fcvtzuxs(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12241        return self.emit_n(Opcode::FCVTZUxs as _, &[rd.as_operand(), rn.as_operand()]);
12242    }
12243    fn fcvtnsxd(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12244        return self.emit_n(Opcode::FCVTNSxd as _, &[rd.as_operand(), rn.as_operand()]);
12245    }
12246    fn fcvtnuxd(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12247        return self.emit_n(Opcode::FCVTNUxd as _, &[rd.as_operand(), rn.as_operand()]);
12248    }
12249    fn fcvtasxd(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12250        return self.emit_n(Opcode::FCVTASxd as _, &[rd.as_operand(), rn.as_operand()]);
12251    }
12252    fn fcvtauxd(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12253        return self.emit_n(Opcode::FCVTAUxd as _, &[rd.as_operand(), rn.as_operand()]);
12254    }
12255    fn fcvtpsxd(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12256        return self.emit_n(Opcode::FCVTPSxd as _, &[rd.as_operand(), rn.as_operand()]);
12257    }
12258    fn fcvtpuxd(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12259        return self.emit_n(Opcode::FCVTPUxd as _, &[rd.as_operand(), rn.as_operand()]);
12260    }
12261    fn fcvtmsxd(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12262        return self.emit_n(Opcode::FCVTMSxd as _, &[rd.as_operand(), rn.as_operand()]);
12263    }
12264    fn fcvtmuxd(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12265        return self.emit_n(Opcode::FCVTMUxd as _, &[rd.as_operand(), rn.as_operand()]);
12266    }
12267    fn fcvtzsxd(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12268        return self.emit_n(Opcode::FCVTZSxd as _, &[rd.as_operand(), rn.as_operand()]);
12269    }
12270    fn fcvtzuxd(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12271        return self.emit_n(Opcode::FCVTZUxd as _, &[rd.as_operand(), rn.as_operand()]);
12272    }
12273    fn fcvtnsxh(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12274        return self.emit_n(Opcode::FCVTNSxh as _, &[rd.as_operand(), rn.as_operand()]);
12275    }
12276    fn fcvtnuxh(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12277        return self.emit_n(Opcode::FCVTNUxh as _, &[rd.as_operand(), rn.as_operand()]);
12278    }
12279    fn fcvtasxh(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12280        return self.emit_n(Opcode::FCVTASxh as _, &[rd.as_operand(), rn.as_operand()]);
12281    }
12282    fn fcvtauxh(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12283        return self.emit_n(Opcode::FCVTAUxh as _, &[rd.as_operand(), rn.as_operand()]);
12284    }
12285    fn fcvtpsxh(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12286        return self.emit_n(Opcode::FCVTPSxh as _, &[rd.as_operand(), rn.as_operand()]);
12287    }
12288    fn fcvtpuxh(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12289        return self.emit_n(Opcode::FCVTPUxh as _, &[rd.as_operand(), rn.as_operand()]);
12290    }
12291    fn fcvtmsxh(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12292        return self.emit_n(Opcode::FCVTMSxh as _, &[rd.as_operand(), rn.as_operand()]);
12293    }
12294    fn fcvtmuxh(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12295        return self.emit_n(Opcode::FCVTMUxh as _, &[rd.as_operand(), rn.as_operand()]);
12296    }
12297    fn fcvtzsxh(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12298        return self.emit_n(Opcode::FCVTZSxh as _, &[rd.as_operand(), rn.as_operand()]);
12299    }
12300    fn fcvtzuxh(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12301        return self.emit_n(Opcode::FCVTZUxh as _, &[rd.as_operand(), rn.as_operand()]);
12302    }
12303    fn scvtfsw(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12304        return self.emit_n(Opcode::SCVTFsw as _, &[rd.as_operand(), rn.as_operand()]);
12305    }
12306    fn ucvtfsw(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12307        return self.emit_n(Opcode::UCVTFsw as _, &[rd.as_operand(), rn.as_operand()]);
12308    }
12309    fn scvtfdw(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12310        return self.emit_n(Opcode::SCVTFdw as _, &[rd.as_operand(), rn.as_operand()]);
12311    }
12312    fn ucvtfdw(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12313        return self.emit_n(Opcode::UCVTFdw as _, &[rd.as_operand(), rn.as_operand()]);
12314    }
12315    fn scvtfhw(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12316        return self.emit_n(Opcode::SCVTFhw as _, &[rd.as_operand(), rn.as_operand()]);
12317    }
12318    fn ucvtfhw(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12319        return self.emit_n(Opcode::UCVTFhw as _, &[rd.as_operand(), rn.as_operand()]);
12320    }
12321    fn scvtfsx(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12322        return self.emit_n(Opcode::SCVTFsx as _, &[rd.as_operand(), rn.as_operand()]);
12323    }
12324    fn ucvtfsx(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12325        return self.emit_n(Opcode::UCVTFsx as _, &[rd.as_operand(), rn.as_operand()]);
12326    }
12327    fn scvtfdx(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12328        return self.emit_n(Opcode::SCVTFdx as _, &[rd.as_operand(), rn.as_operand()]);
12329    }
12330    fn ucvtfdx(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12331        return self.emit_n(Opcode::UCVTFdx as _, &[rd.as_operand(), rn.as_operand()]);
12332    }
12333    fn scvtfhx(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12334        return self.emit_n(Opcode::SCVTFhx as _, &[rd.as_operand(), rn.as_operand()]);
12335    }
12336    fn ucvtfhx(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12337        return self.emit_n(Opcode::UCVTFhx as _, &[rd.as_operand(), rn.as_operand()]);
12338    }
12339    fn fmovws(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12340        return self.emit_n(Opcode::FMOVws as _, &[rd.as_operand(), rn.as_operand()]);
12341    }
12342    fn fmovwh(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12343        return self.emit_n(Opcode::FMOVwh as _, &[rd.as_operand(), rn.as_operand()]);
12344    }
12345    fn fmovxd(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12346        return self.emit_n(Opcode::FMOVxd as _, &[rd.as_operand(), rn.as_operand()]);
12347    }
12348    fn fmov_highxd(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12349        return self.emit_n(
12350            Opcode::FMOV_HIGHxd as _,
12351            &[rd.as_operand(), rn.as_operand()],
12352        );
12353    }
12354    fn fmovxh(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12355        return self.emit_n(Opcode::FMOVxh as _, &[rd.as_operand(), rn.as_operand()]);
12356    }
12357    fn fmovsw(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12358        return self.emit_n(Opcode::FMOVsw as _, &[rd.as_operand(), rn.as_operand()]);
12359    }
12360    fn fmovhw(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12361        return self.emit_n(Opcode::FMOVhw as _, &[rd.as_operand(), rn.as_operand()]);
12362    }
12363    fn fmovdx(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12364        return self.emit_n(Opcode::FMOVdx as _, &[rd.as_operand(), rn.as_operand()]);
12365    }
12366    fn fmov_highdx(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12367        return self.emit_n(
12368            Opcode::FMOV_HIGHdx as _,
12369            &[rd.as_operand(), rn.as_operand()],
12370        );
12371    }
12372    fn fmovhx(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12373        return self.emit_n(Opcode::FMOVhx as _, &[rd.as_operand(), rn.as_operand()]);
12374    }
12375    fn fjcvtzswd(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12376        return self.emit_n(Opcode::FJCVTZSwd as _, &[rd.as_operand(), rn.as_operand()]);
12377    }
12378    fn fcvtds(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12379        return self.emit_n(Opcode::FCVTds as _, &[rd.as_operand(), rn.as_operand()]);
12380    }
12381    fn fcvths(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12382        return self.emit_n(Opcode::FCVThs as _, &[rd.as_operand(), rn.as_operand()]);
12383    }
12384    fn fcvtsd(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12385        return self.emit_n(Opcode::FCVTsd as _, &[rd.as_operand(), rn.as_operand()]);
12386    }
12387    fn bfcvt(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12388        return self.emit_n(Opcode::BFCVT as _, &[rd.as_operand(), rn.as_operand()]);
12389    }
12390    fn fcvthd(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12391        return self.emit_n(Opcode::FCVThd as _, &[rd.as_operand(), rn.as_operand()]);
12392    }
12393    fn fcvtsh(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12394        return self.emit_n(Opcode::FCVTsh as _, &[rd.as_operand(), rn.as_operand()]);
12395    }
12396    fn fcvtdh(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12397        return self.emit_n(Opcode::FCVTdh as _, &[rd.as_operand(), rn.as_operand()]);
12398    }
12399    fn frintns(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12400        return self.emit_n(Opcode::FRINTNs as _, &[rd.as_operand(), rn.as_operand()]);
12401    }
12402    fn frintps(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12403        return self.emit_n(Opcode::FRINTPs as _, &[rd.as_operand(), rn.as_operand()]);
12404    }
12405    fn frintms(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12406        return self.emit_n(Opcode::FRINTMs as _, &[rd.as_operand(), rn.as_operand()]);
12407    }
12408    fn frintzs(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12409        return self.emit_n(Opcode::FRINTZs as _, &[rd.as_operand(), rn.as_operand()]);
12410    }
12411    fn frintas(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12412        return self.emit_n(Opcode::FRINTAs as _, &[rd.as_operand(), rn.as_operand()]);
12413    }
12414    fn frintxs(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12415        return self.emit_n(Opcode::FRINTXs as _, &[rd.as_operand(), rn.as_operand()]);
12416    }
12417    fn frintis(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12418        return self.emit_n(Opcode::FRINTIs as _, &[rd.as_operand(), rn.as_operand()]);
12419    }
12420    fn frintnd(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12421        return self.emit_n(Opcode::FRINTNd as _, &[rd.as_operand(), rn.as_operand()]);
12422    }
12423    fn frintpd(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12424        return self.emit_n(Opcode::FRINTPd as _, &[rd.as_operand(), rn.as_operand()]);
12425    }
12426    fn frintmd(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12427        return self.emit_n(Opcode::FRINTMd as _, &[rd.as_operand(), rn.as_operand()]);
12428    }
12429    fn frintzd(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12430        return self.emit_n(Opcode::FRINTZd as _, &[rd.as_operand(), rn.as_operand()]);
12431    }
12432    fn frintad(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12433        return self.emit_n(Opcode::FRINTAd as _, &[rd.as_operand(), rn.as_operand()]);
12434    }
12435    fn frintxd(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12436        return self.emit_n(Opcode::FRINTXd as _, &[rd.as_operand(), rn.as_operand()]);
12437    }
12438    fn frintid(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12439        return self.emit_n(Opcode::FRINTId as _, &[rd.as_operand(), rn.as_operand()]);
12440    }
12441    fn frintnh(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12442        return self.emit_n(Opcode::FRINTNh as _, &[rd.as_operand(), rn.as_operand()]);
12443    }
12444    fn frintph(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12445        return self.emit_n(Opcode::FRINTPh as _, &[rd.as_operand(), rn.as_operand()]);
12446    }
12447    fn frintmh(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12448        return self.emit_n(Opcode::FRINTMh as _, &[rd.as_operand(), rn.as_operand()]);
12449    }
12450    fn frintzh(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12451        return self.emit_n(Opcode::FRINTZh as _, &[rd.as_operand(), rn.as_operand()]);
12452    }
12453    fn frintah(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12454        return self.emit_n(Opcode::FRINTAh as _, &[rd.as_operand(), rn.as_operand()]);
12455    }
12456    fn frintxh(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12457        return self.emit_n(Opcode::FRINTXh as _, &[rd.as_operand(), rn.as_operand()]);
12458    }
12459    fn frintih(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12460        return self.emit_n(Opcode::FRINTIh as _, &[rd.as_operand(), rn.as_operand()]);
12461    }
12462    fn frint32zs(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12463        return self.emit_n(Opcode::FRINT32Zs as _, &[rd.as_operand(), rn.as_operand()]);
12464    }
12465    fn frint32xs(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12466        return self.emit_n(Opcode::FRINT32Xs as _, &[rd.as_operand(), rn.as_operand()]);
12467    }
12468    fn frint64zs(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12469        return self.emit_n(Opcode::FRINT64Zs as _, &[rd.as_operand(), rn.as_operand()]);
12470    }
12471    fn frint64xs(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12472        return self.emit_n(Opcode::FRINT64Xs as _, &[rd.as_operand(), rn.as_operand()]);
12473    }
12474    fn frint32zd(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12475        return self.emit_n(Opcode::FRINT32Zd as _, &[rd.as_operand(), rn.as_operand()]);
12476    }
12477    fn frint32xd(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12478        return self.emit_n(Opcode::FRINT32Xd as _, &[rd.as_operand(), rn.as_operand()]);
12479    }
12480    fn frint64zd(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12481        return self.emit_n(Opcode::FRINT64Zd as _, &[rd.as_operand(), rn.as_operand()]);
12482    }
12483    fn frint64xd(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12484        return self.emit_n(Opcode::FRINT64Xd as _, &[rd.as_operand(), rn.as_operand()]);
12485    }
12486    fn fmovs(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12487        return self.emit_n(Opcode::FMOVs as _, &[rd.as_operand(), rn.as_operand()]);
12488    }
12489    fn fabss(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12490        return self.emit_n(Opcode::FABSs as _, &[rd.as_operand(), rn.as_operand()]);
12491    }
12492    fn fnegs(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12493        return self.emit_n(Opcode::FNEGs as _, &[rd.as_operand(), rn.as_operand()]);
12494    }
12495    fn fsqrts(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12496        return self.emit_n(Opcode::FSQRTs as _, &[rd.as_operand(), rn.as_operand()]);
12497    }
12498    fn fmovd(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12499        return self.emit_n(Opcode::FMOVd as _, &[rd.as_operand(), rn.as_operand()]);
12500    }
12501    fn fabsd(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12502        return self.emit_n(Opcode::FABSd as _, &[rd.as_operand(), rn.as_operand()]);
12503    }
12504    fn fnegd(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12505        return self.emit_n(Opcode::FNEGd as _, &[rd.as_operand(), rn.as_operand()]);
12506    }
12507    fn fsqrtd(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12508        return self.emit_n(Opcode::FSQRTd as _, &[rd.as_operand(), rn.as_operand()]);
12509    }
12510    fn fmovh(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12511        return self.emit_n(Opcode::FMOVh as _, &[rd.as_operand(), rn.as_operand()]);
12512    }
12513    fn fabsh(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12514        return self.emit_n(Opcode::FABSh as _, &[rd.as_operand(), rn.as_operand()]);
12515    }
12516    fn fnegh(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12517        return self.emit_n(Opcode::FNEGh as _, &[rd.as_operand(), rn.as_operand()]);
12518    }
12519    fn fsqrth(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
12520        return self.emit_n(Opcode::FSQRTh as _, &[rd.as_operand(), rn.as_operand()]);
12521    }
12522    fn fmovsi(&mut self, rd: impl OperandCast, imm: impl OperandCast) {
12523        return self.emit_n(Opcode::FMOVsi as _, &[rd.as_operand(), imm.as_operand()]);
12524    }
12525    fn fmovdi(&mut self, rd: impl OperandCast, imm: impl OperandCast) {
12526        return self.emit_n(Opcode::FMOVdi as _, &[rd.as_operand(), imm.as_operand()]);
12527    }
12528    fn fmovhi(&mut self, rd: impl OperandCast, imm: impl OperandCast) {
12529        return self.emit_n(Opcode::FMOVhi as _, &[rd.as_operand(), imm.as_operand()]);
12530    }
12531    fn fmuls(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
12532        return self.emit_n(
12533            Opcode::FMULs as _,
12534            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
12535        );
12536    }
12537    fn fdivs(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
12538        return self.emit_n(
12539            Opcode::FDIVs as _,
12540            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
12541        );
12542    }
12543    fn fadds(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
12544        return self.emit_n(
12545            Opcode::FADDs as _,
12546            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
12547        );
12548    }
12549    fn fsubs(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
12550        return self.emit_n(
12551            Opcode::FSUBs as _,
12552            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
12553        );
12554    }
12555    fn fmaxs(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
12556        return self.emit_n(
12557            Opcode::FMAXs as _,
12558            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
12559        );
12560    }
12561    fn fmins(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
12562        return self.emit_n(
12563            Opcode::FMINs as _,
12564            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
12565        );
12566    }
12567    fn fmaxnms(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
12568        return self.emit_n(
12569            Opcode::FMAXNMs as _,
12570            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
12571        );
12572    }
12573    fn fminnms(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
12574        return self.emit_n(
12575            Opcode::FMINNMs as _,
12576            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
12577        );
12578    }
12579    fn fnmuls(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
12580        return self.emit_n(
12581            Opcode::FNMULs as _,
12582            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
12583        );
12584    }
12585    fn fmuld(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
12586        return self.emit_n(
12587            Opcode::FMULd as _,
12588            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
12589        );
12590    }
12591    fn fdivd(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
12592        return self.emit_n(
12593            Opcode::FDIVd as _,
12594            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
12595        );
12596    }
12597    fn faddd(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
12598        return self.emit_n(
12599            Opcode::FADDd as _,
12600            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
12601        );
12602    }
12603    fn fsubd(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
12604        return self.emit_n(
12605            Opcode::FSUBd as _,
12606            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
12607        );
12608    }
12609    fn fmaxd(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
12610        return self.emit_n(
12611            Opcode::FMAXd as _,
12612            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
12613        );
12614    }
12615    fn fmind(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
12616        return self.emit_n(
12617            Opcode::FMINd as _,
12618            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
12619        );
12620    }
12621    fn fmaxnmd(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
12622        return self.emit_n(
12623            Opcode::FMAXNMd as _,
12624            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
12625        );
12626    }
12627    fn fminnmd(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
12628        return self.emit_n(
12629            Opcode::FMINNMd as _,
12630            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
12631        );
12632    }
12633    fn fnmuld(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
12634        return self.emit_n(
12635            Opcode::FNMULd as _,
12636            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
12637        );
12638    }
12639    fn fmulh(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
12640        return self.emit_n(
12641            Opcode::FMULh as _,
12642            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
12643        );
12644    }
12645    fn fdivh(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
12646        return self.emit_n(
12647            Opcode::FDIVh as _,
12648            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
12649        );
12650    }
12651    fn faddh(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
12652        return self.emit_n(
12653            Opcode::FADDh as _,
12654            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
12655        );
12656    }
12657    fn fsubh(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
12658        return self.emit_n(
12659            Opcode::FSUBh as _,
12660            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
12661        );
12662    }
12663    fn fmaxh(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
12664        return self.emit_n(
12665            Opcode::FMAXh as _,
12666            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
12667        );
12668    }
12669    fn fminh(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
12670        return self.emit_n(
12671            Opcode::FMINh as _,
12672            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
12673        );
12674    }
12675    fn fmaxnmh(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
12676        return self.emit_n(
12677            Opcode::FMAXNMh as _,
12678            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
12679        );
12680    }
12681    fn fminnmh(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
12682        return self.emit_n(
12683            Opcode::FMINNMh as _,
12684            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
12685        );
12686    }
12687    fn fnmulh(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
12688        return self.emit_n(
12689            Opcode::FNMULh as _,
12690            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
12691        );
12692    }
12693    fn fcmp_s(&mut self, rn: impl OperandCast, rm: impl OperandCast) {
12694        return self.emit_n(Opcode::FCMP_s as _, &[rn.as_operand(), rm.as_operand()]);
12695    }
12696    fn fcmp_0s(&mut self, rn: impl OperandCast) {
12697        return self.emit_n(Opcode::FCMP_0s as _, &[rn.as_operand()]);
12698    }
12699    fn fcmpe_s(&mut self, rn: impl OperandCast, rm: impl OperandCast) {
12700        return self.emit_n(Opcode::FCMPE_s as _, &[rn.as_operand(), rm.as_operand()]);
12701    }
12702    fn fcmpe_0s(&mut self, rn: impl OperandCast) {
12703        return self.emit_n(Opcode::FCMPE_0s as _, &[rn.as_operand()]);
12704    }
12705    fn fcmp_d(&mut self, rn: impl OperandCast, rm: impl OperandCast) {
12706        return self.emit_n(Opcode::FCMP_d as _, &[rn.as_operand(), rm.as_operand()]);
12707    }
12708    fn fcmp_0d(&mut self, rn: impl OperandCast) {
12709        return self.emit_n(Opcode::FCMP_0d as _, &[rn.as_operand()]);
12710    }
12711    fn fcmpe_d(&mut self, rn: impl OperandCast, rm: impl OperandCast) {
12712        return self.emit_n(Opcode::FCMPE_d as _, &[rn.as_operand(), rm.as_operand()]);
12713    }
12714    fn fcmpe_0d(&mut self, rn: impl OperandCast) {
12715        return self.emit_n(Opcode::FCMPE_0d as _, &[rn.as_operand()]);
12716    }
12717    fn fcmp_h(&mut self, rn: impl OperandCast, rm: impl OperandCast) {
12718        return self.emit_n(Opcode::FCMP_h as _, &[rn.as_operand(), rm.as_operand()]);
12719    }
12720    fn fcmp_0h(&mut self, rn: impl OperandCast) {
12721        return self.emit_n(Opcode::FCMP_0h as _, &[rn.as_operand()]);
12722    }
12723    fn fcmpe_h(&mut self, rn: impl OperandCast, rm: impl OperandCast) {
12724        return self.emit_n(Opcode::FCMPE_h as _, &[rn.as_operand(), rm.as_operand()]);
12725    }
12726    fn fcmpe_0h(&mut self, rn: impl OperandCast) {
12727        return self.emit_n(Opcode::FCMPE_0h as _, &[rn.as_operand()]);
12728    }
12729    fn fccmps(
12730        &mut self,
12731        rn: impl OperandCast,
12732        rm: impl OperandCast,
12733        nzcv: impl OperandCast,
12734        cond: impl OperandCast,
12735    ) {
12736        return self.emit_n(
12737            Opcode::FCCMPs as _,
12738            &[
12739                rn.as_operand(),
12740                rm.as_operand(),
12741                nzcv.as_operand(),
12742                cond.as_operand(),
12743            ],
12744        );
12745    }
12746    fn fccmpes(
12747        &mut self,
12748        rn: impl OperandCast,
12749        rm: impl OperandCast,
12750        nzcv: impl OperandCast,
12751        cond: impl OperandCast,
12752    ) {
12753        return self.emit_n(
12754            Opcode::FCCMPEs as _,
12755            &[
12756                rn.as_operand(),
12757                rm.as_operand(),
12758                nzcv.as_operand(),
12759                cond.as_operand(),
12760            ],
12761        );
12762    }
12763    fn fccmpd(
12764        &mut self,
12765        rn: impl OperandCast,
12766        rm: impl OperandCast,
12767        nzcv: impl OperandCast,
12768        cond: impl OperandCast,
12769    ) {
12770        return self.emit_n(
12771            Opcode::FCCMPd as _,
12772            &[
12773                rn.as_operand(),
12774                rm.as_operand(),
12775                nzcv.as_operand(),
12776                cond.as_operand(),
12777            ],
12778        );
12779    }
12780    fn fccmped(
12781        &mut self,
12782        rn: impl OperandCast,
12783        rm: impl OperandCast,
12784        nzcv: impl OperandCast,
12785        cond: impl OperandCast,
12786    ) {
12787        return self.emit_n(
12788            Opcode::FCCMPEd as _,
12789            &[
12790                rn.as_operand(),
12791                rm.as_operand(),
12792                nzcv.as_operand(),
12793                cond.as_operand(),
12794            ],
12795        );
12796    }
12797    fn fccmph(
12798        &mut self,
12799        rn: impl OperandCast,
12800        rm: impl OperandCast,
12801        nzcv: impl OperandCast,
12802        cond: impl OperandCast,
12803    ) {
12804        return self.emit_n(
12805            Opcode::FCCMPh as _,
12806            &[
12807                rn.as_operand(),
12808                rm.as_operand(),
12809                nzcv.as_operand(),
12810                cond.as_operand(),
12811            ],
12812        );
12813    }
12814    fn fccmpeh(
12815        &mut self,
12816        rn: impl OperandCast,
12817        rm: impl OperandCast,
12818        nzcv: impl OperandCast,
12819        cond: impl OperandCast,
12820    ) {
12821        return self.emit_n(
12822            Opcode::FCCMPEh as _,
12823            &[
12824                rn.as_operand(),
12825                rm.as_operand(),
12826                nzcv.as_operand(),
12827                cond.as_operand(),
12828            ],
12829        );
12830    }
12831    fn fcsels(
12832        &mut self,
12833        rd: impl OperandCast,
12834        rn: impl OperandCast,
12835        rm: impl OperandCast,
12836        cond: impl OperandCast,
12837    ) {
12838        return self.emit_n(
12839            Opcode::FCSELs as _,
12840            &[
12841                rd.as_operand(),
12842                rn.as_operand(),
12843                rm.as_operand(),
12844                cond.as_operand(),
12845            ],
12846        );
12847    }
12848    fn fcseld(
12849        &mut self,
12850        rd: impl OperandCast,
12851        rn: impl OperandCast,
12852        rm: impl OperandCast,
12853        cond: impl OperandCast,
12854    ) {
12855        return self.emit_n(
12856            Opcode::FCSELd as _,
12857            &[
12858                rd.as_operand(),
12859                rn.as_operand(),
12860                rm.as_operand(),
12861                cond.as_operand(),
12862            ],
12863        );
12864    }
12865    fn fcselh(
12866        &mut self,
12867        rd: impl OperandCast,
12868        rn: impl OperandCast,
12869        rm: impl OperandCast,
12870        cond: impl OperandCast,
12871    ) {
12872        return self.emit_n(
12873            Opcode::FCSELh as _,
12874            &[
12875                rd.as_operand(),
12876                rn.as_operand(),
12877                rm.as_operand(),
12878                cond.as_operand(),
12879            ],
12880        );
12881    }
12882    fn fmadds(
12883        &mut self,
12884        rd: impl OperandCast,
12885        rn: impl OperandCast,
12886        rm: impl OperandCast,
12887        ra: impl OperandCast,
12888    ) {
12889        return self.emit_n(
12890            Opcode::FMADDs as _,
12891            &[
12892                rd.as_operand(),
12893                rn.as_operand(),
12894                rm.as_operand(),
12895                ra.as_operand(),
12896            ],
12897        );
12898    }
12899    fn fmsubs(
12900        &mut self,
12901        rd: impl OperandCast,
12902        rn: impl OperandCast,
12903        rm: impl OperandCast,
12904        ra: impl OperandCast,
12905    ) {
12906        return self.emit_n(
12907            Opcode::FMSUBs as _,
12908            &[
12909                rd.as_operand(),
12910                rn.as_operand(),
12911                rm.as_operand(),
12912                ra.as_operand(),
12913            ],
12914        );
12915    }
12916    fn fnmadds(
12917        &mut self,
12918        rd: impl OperandCast,
12919        rn: impl OperandCast,
12920        rm: impl OperandCast,
12921        ra: impl OperandCast,
12922    ) {
12923        return self.emit_n(
12924            Opcode::FNMADDs as _,
12925            &[
12926                rd.as_operand(),
12927                rn.as_operand(),
12928                rm.as_operand(),
12929                ra.as_operand(),
12930            ],
12931        );
12932    }
12933    fn fnmsubs(
12934        &mut self,
12935        rd: impl OperandCast,
12936        rn: impl OperandCast,
12937        rm: impl OperandCast,
12938        ra: impl OperandCast,
12939    ) {
12940        return self.emit_n(
12941            Opcode::FNMSUBs as _,
12942            &[
12943                rd.as_operand(),
12944                rn.as_operand(),
12945                rm.as_operand(),
12946                ra.as_operand(),
12947            ],
12948        );
12949    }
12950    fn fmaddd(
12951        &mut self,
12952        rd: impl OperandCast,
12953        rn: impl OperandCast,
12954        rm: impl OperandCast,
12955        ra: impl OperandCast,
12956    ) {
12957        return self.emit_n(
12958            Opcode::FMADDd as _,
12959            &[
12960                rd.as_operand(),
12961                rn.as_operand(),
12962                rm.as_operand(),
12963                ra.as_operand(),
12964            ],
12965        );
12966    }
12967    fn fmsubd(
12968        &mut self,
12969        rd: impl OperandCast,
12970        rn: impl OperandCast,
12971        rm: impl OperandCast,
12972        ra: impl OperandCast,
12973    ) {
12974        return self.emit_n(
12975            Opcode::FMSUBd as _,
12976            &[
12977                rd.as_operand(),
12978                rn.as_operand(),
12979                rm.as_operand(),
12980                ra.as_operand(),
12981            ],
12982        );
12983    }
12984    fn fnmaddd(
12985        &mut self,
12986        rd: impl OperandCast,
12987        rn: impl OperandCast,
12988        rm: impl OperandCast,
12989        ra: impl OperandCast,
12990    ) {
12991        return self.emit_n(
12992            Opcode::FNMADDd as _,
12993            &[
12994                rd.as_operand(),
12995                rn.as_operand(),
12996                rm.as_operand(),
12997                ra.as_operand(),
12998            ],
12999        );
13000    }
13001    fn fnmsubd(
13002        &mut self,
13003        rd: impl OperandCast,
13004        rn: impl OperandCast,
13005        rm: impl OperandCast,
13006        ra: impl OperandCast,
13007    ) {
13008        return self.emit_n(
13009            Opcode::FNMSUBd as _,
13010            &[
13011                rd.as_operand(),
13012                rn.as_operand(),
13013                rm.as_operand(),
13014                ra.as_operand(),
13015            ],
13016        );
13017    }
13018    fn fmaddh(
13019        &mut self,
13020        rd: impl OperandCast,
13021        rn: impl OperandCast,
13022        rm: impl OperandCast,
13023        ra: impl OperandCast,
13024    ) {
13025        return self.emit_n(
13026            Opcode::FMADDh as _,
13027            &[
13028                rd.as_operand(),
13029                rn.as_operand(),
13030                rm.as_operand(),
13031                ra.as_operand(),
13032            ],
13033        );
13034    }
13035    fn fmsubh(
13036        &mut self,
13037        rd: impl OperandCast,
13038        rn: impl OperandCast,
13039        rm: impl OperandCast,
13040        ra: impl OperandCast,
13041    ) {
13042        return self.emit_n(
13043            Opcode::FMSUBh as _,
13044            &[
13045                rd.as_operand(),
13046                rn.as_operand(),
13047                rm.as_operand(),
13048                ra.as_operand(),
13049            ],
13050        );
13051    }
13052    fn fnmaddh(
13053        &mut self,
13054        rd: impl OperandCast,
13055        rn: impl OperandCast,
13056        rm: impl OperandCast,
13057        ra: impl OperandCast,
13058    ) {
13059        return self.emit_n(
13060            Opcode::FNMADDh as _,
13061            &[
13062                rd.as_operand(),
13063                rn.as_operand(),
13064                rm.as_operand(),
13065                ra.as_operand(),
13066            ],
13067        );
13068    }
13069    fn fnmsubh(
13070        &mut self,
13071        rd: impl OperandCast,
13072        rn: impl OperandCast,
13073        rm: impl OperandCast,
13074        ra: impl OperandCast,
13075    ) {
13076        return self.emit_n(
13077            Opcode::FNMSUBh as _,
13078            &[
13079                rd.as_operand(),
13080                rn.as_operand(),
13081                rm.as_operand(),
13082                ra.as_operand(),
13083            ],
13084        );
13085    }
13086    fn dupb(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm5: impl OperandCast) {
13087        return self.emit_n(
13088            Opcode::DUPb as _,
13089            &[rd.as_operand(), rn.as_operand(), imm5.as_operand()],
13090        );
13091    }
13092    fn duph(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm5: impl OperandCast) {
13093        return self.emit_n(
13094            Opcode::DUPh as _,
13095            &[rd.as_operand(), rn.as_operand(), imm5.as_operand()],
13096        );
13097    }
13098    fn dups(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm5: impl OperandCast) {
13099        return self.emit_n(
13100            Opcode::DUPs as _,
13101            &[rd.as_operand(), rn.as_operand(), imm5.as_operand()],
13102        );
13103    }
13104    fn dupd(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm5: impl OperandCast) {
13105        return self.emit_n(
13106            Opcode::DUPd as _,
13107            &[rd.as_operand(), rn.as_operand(), imm5.as_operand()],
13108        );
13109    }
13110    fn dup8b(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm5: impl OperandCast) {
13111        return self.emit_n(
13112            Opcode::DUP8b as _,
13113            &[rd.as_operand(), rn.as_operand(), imm5.as_operand()],
13114        );
13115    }
13116    fn dup4h(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm5: impl OperandCast) {
13117        return self.emit_n(
13118            Opcode::DUP4h as _,
13119            &[rd.as_operand(), rn.as_operand(), imm5.as_operand()],
13120        );
13121    }
13122    fn dup2s(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm5: impl OperandCast) {
13123        return self.emit_n(
13124            Opcode::DUP2s as _,
13125            &[rd.as_operand(), rn.as_operand(), imm5.as_operand()],
13126        );
13127    }
13128    fn dup16b(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm5: impl OperandCast) {
13129        return self.emit_n(
13130            Opcode::DUP16b as _,
13131            &[rd.as_operand(), rn.as_operand(), imm5.as_operand()],
13132        );
13133    }
13134    fn dup8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm5: impl OperandCast) {
13135        return self.emit_n(
13136            Opcode::DUP8h as _,
13137            &[rd.as_operand(), rn.as_operand(), imm5.as_operand()],
13138        );
13139    }
13140    fn dup4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm5: impl OperandCast) {
13141        return self.emit_n(
13142            Opcode::DUP4s as _,
13143            &[rd.as_operand(), rn.as_operand(), imm5.as_operand()],
13144        );
13145    }
13146    fn dup2d(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm5: impl OperandCast) {
13147        return self.emit_n(
13148            Opcode::DUP2d as _,
13149            &[rd.as_operand(), rn.as_operand(), imm5.as_operand()],
13150        );
13151    }
13152    fn dup8bw(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
13153        return self.emit_n(Opcode::DUP8bw as _, &[rd.as_operand(), rn.as_operand()]);
13154    }
13155    fn dup4hw(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
13156        return self.emit_n(Opcode::DUP4hw as _, &[rd.as_operand(), rn.as_operand()]);
13157    }
13158    fn dup2sw(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
13159        return self.emit_n(Opcode::DUP2sw as _, &[rd.as_operand(), rn.as_operand()]);
13160    }
13161    fn dup16bw(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
13162        return self.emit_n(Opcode::DUP16bw as _, &[rd.as_operand(), rn.as_operand()]);
13163    }
13164    fn dup8hw(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
13165        return self.emit_n(Opcode::DUP8hw as _, &[rd.as_operand(), rn.as_operand()]);
13166    }
13167    fn dup4sw(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
13168        return self.emit_n(Opcode::DUP4sw as _, &[rd.as_operand(), rn.as_operand()]);
13169    }
13170    fn dup2dx(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
13171        return self.emit_n(Opcode::DUP2dx as _, &[rd.as_operand(), rn.as_operand()]);
13172    }
13173    fn insb(
13174        &mut self,
13175        rd: impl OperandCast,
13176        imm5: impl OperandCast,
13177        rn: impl OperandCast,
13178        imm4: impl OperandCast,
13179    ) {
13180        return self.emit_n(
13181            Opcode::INSb as _,
13182            &[
13183                rd.as_operand(),
13184                imm5.as_operand(),
13185                rn.as_operand(),
13186                imm4.as_operand(),
13187            ],
13188        );
13189    }
13190    fn insh(
13191        &mut self,
13192        rd: impl OperandCast,
13193        imm5: impl OperandCast,
13194        rn: impl OperandCast,
13195        imm4: impl OperandCast,
13196    ) {
13197        return self.emit_n(
13198            Opcode::INSh as _,
13199            &[
13200                rd.as_operand(),
13201                imm5.as_operand(),
13202                rn.as_operand(),
13203                imm4.as_operand(),
13204            ],
13205        );
13206    }
13207    fn inss(
13208        &mut self,
13209        rd: impl OperandCast,
13210        imm5: impl OperandCast,
13211        rn: impl OperandCast,
13212        imm4: impl OperandCast,
13213    ) {
13214        return self.emit_n(
13215            Opcode::INSs as _,
13216            &[
13217                rd.as_operand(),
13218                imm5.as_operand(),
13219                rn.as_operand(),
13220                imm4.as_operand(),
13221            ],
13222        );
13223    }
13224    fn insd(
13225        &mut self,
13226        rd: impl OperandCast,
13227        imm5: impl OperandCast,
13228        rn: impl OperandCast,
13229        imm4: impl OperandCast,
13230    ) {
13231        return self.emit_n(
13232            Opcode::INSd as _,
13233            &[
13234                rd.as_operand(),
13235                imm5.as_operand(),
13236                rn.as_operand(),
13237                imm4.as_operand(),
13238            ],
13239        );
13240    }
13241    fn insbw(&mut self, rd: impl OperandCast, imm5: impl OperandCast, rn: impl OperandCast) {
13242        return self.emit_n(
13243            Opcode::INSbw as _,
13244            &[rd.as_operand(), imm5.as_operand(), rn.as_operand()],
13245        );
13246    }
13247    fn inshw(&mut self, rd: impl OperandCast, imm5: impl OperandCast, rn: impl OperandCast) {
13248        return self.emit_n(
13249            Opcode::INShw as _,
13250            &[rd.as_operand(), imm5.as_operand(), rn.as_operand()],
13251        );
13252    }
13253    fn inssw(&mut self, rd: impl OperandCast, imm5: impl OperandCast, rn: impl OperandCast) {
13254        return self.emit_n(
13255            Opcode::INSsw as _,
13256            &[rd.as_operand(), imm5.as_operand(), rn.as_operand()],
13257        );
13258    }
13259    fn insdx(&mut self, rd: impl OperandCast, imm5: impl OperandCast, rn: impl OperandCast) {
13260        return self.emit_n(
13261            Opcode::INSdx as _,
13262            &[rd.as_operand(), imm5.as_operand(), rn.as_operand()],
13263        );
13264    }
13265    fn smovwb(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm5: impl OperandCast) {
13266        return self.emit_n(
13267            Opcode::SMOVwb as _,
13268            &[rd.as_operand(), rn.as_operand(), imm5.as_operand()],
13269        );
13270    }
13271    fn umovwb(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm5: impl OperandCast) {
13272        return self.emit_n(
13273            Opcode::UMOVwb as _,
13274            &[rd.as_operand(), rn.as_operand(), imm5.as_operand()],
13275        );
13276    }
13277    fn smovwh(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm5: impl OperandCast) {
13278        return self.emit_n(
13279            Opcode::SMOVwh as _,
13280            &[rd.as_operand(), rn.as_operand(), imm5.as_operand()],
13281        );
13282    }
13283    fn umovwh(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm5: impl OperandCast) {
13284        return self.emit_n(
13285            Opcode::UMOVwh as _,
13286            &[rd.as_operand(), rn.as_operand(), imm5.as_operand()],
13287        );
13288    }
13289    fn umovws(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm5: impl OperandCast) {
13290        return self.emit_n(
13291            Opcode::UMOVws as _,
13292            &[rd.as_operand(), rn.as_operand(), imm5.as_operand()],
13293        );
13294    }
13295    fn smovxb(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm5: impl OperandCast) {
13296        return self.emit_n(
13297            Opcode::SMOVxb as _,
13298            &[rd.as_operand(), rn.as_operand(), imm5.as_operand()],
13299        );
13300    }
13301    fn smovxh(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm5: impl OperandCast) {
13302        return self.emit_n(
13303            Opcode::SMOVxh as _,
13304            &[rd.as_operand(), rn.as_operand(), imm5.as_operand()],
13305        );
13306    }
13307    fn smovxs(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm5: impl OperandCast) {
13308        return self.emit_n(
13309            Opcode::SMOVxs as _,
13310            &[rd.as_operand(), rn.as_operand(), imm5.as_operand()],
13311        );
13312    }
13313    fn umovxd(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm5: impl OperandCast) {
13314        return self.emit_n(
13315            Opcode::UMOVxd as _,
13316            &[rd.as_operand(), rn.as_operand(), imm5.as_operand()],
13317        );
13318    }
13319    fn tbl1_8b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
13320        return self.emit_n(
13321            Opcode::TBL1_8b as _,
13322            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
13323        );
13324    }
13325    fn tbx1_8b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
13326        return self.emit_n(
13327            Opcode::TBX1_8b as _,
13328            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
13329        );
13330    }
13331    fn tbl2_8b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
13332        return self.emit_n(
13333            Opcode::TBL2_8b as _,
13334            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
13335        );
13336    }
13337    fn tbx2_8b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
13338        return self.emit_n(
13339            Opcode::TBX2_8b as _,
13340            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
13341        );
13342    }
13343    fn tbl3_8b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
13344        return self.emit_n(
13345            Opcode::TBL3_8b as _,
13346            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
13347        );
13348    }
13349    fn tbx3_8b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
13350        return self.emit_n(
13351            Opcode::TBX3_8b as _,
13352            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
13353        );
13354    }
13355    fn tbl4_8b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
13356        return self.emit_n(
13357            Opcode::TBL4_8b as _,
13358            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
13359        );
13360    }
13361    fn tbx4_8b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
13362        return self.emit_n(
13363            Opcode::TBX4_8b as _,
13364            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
13365        );
13366    }
13367    fn tbl1_16b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
13368        return self.emit_n(
13369            Opcode::TBL1_16b as _,
13370            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
13371        );
13372    }
13373    fn tbx1_16b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
13374        return self.emit_n(
13375            Opcode::TBX1_16b as _,
13376            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
13377        );
13378    }
13379    fn tbl2_16b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
13380        return self.emit_n(
13381            Opcode::TBL2_16b as _,
13382            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
13383        );
13384    }
13385    fn tbx2_16b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
13386        return self.emit_n(
13387            Opcode::TBX2_16b as _,
13388            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
13389        );
13390    }
13391    fn tbl3_16b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
13392        return self.emit_n(
13393            Opcode::TBL3_16b as _,
13394            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
13395        );
13396    }
13397    fn tbx3_16b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
13398        return self.emit_n(
13399            Opcode::TBX3_16b as _,
13400            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
13401        );
13402    }
13403    fn tbl4_16b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
13404        return self.emit_n(
13405            Opcode::TBL4_16b as _,
13406            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
13407        );
13408    }
13409    fn tbx4_16b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
13410        return self.emit_n(
13411            Opcode::TBX4_16b as _,
13412            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
13413        );
13414    }
13415    fn uzp1_8b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
13416        return self.emit_n(
13417            Opcode::UZP1_8b as _,
13418            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
13419        );
13420    }
13421    fn trn1_8b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
13422        return self.emit_n(
13423            Opcode::TRN1_8b as _,
13424            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
13425        );
13426    }
13427    fn zip1_8b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
13428        return self.emit_n(
13429            Opcode::ZIP1_8b as _,
13430            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
13431        );
13432    }
13433    fn uzp2_8b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
13434        return self.emit_n(
13435            Opcode::UZP2_8b as _,
13436            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
13437        );
13438    }
13439    fn trn2_8b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
13440        return self.emit_n(
13441            Opcode::TRN2_8b as _,
13442            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
13443        );
13444    }
13445    fn zip2_8b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
13446        return self.emit_n(
13447            Opcode::ZIP2_8b as _,
13448            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
13449        );
13450    }
13451    fn uzp1_4h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
13452        return self.emit_n(
13453            Opcode::UZP1_4h as _,
13454            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
13455        );
13456    }
13457    fn trn1_4h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
13458        return self.emit_n(
13459            Opcode::TRN1_4h as _,
13460            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
13461        );
13462    }
13463    fn zip1_4h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
13464        return self.emit_n(
13465            Opcode::ZIP1_4h as _,
13466            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
13467        );
13468    }
13469    fn uzp2_4h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
13470        return self.emit_n(
13471            Opcode::UZP2_4h as _,
13472            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
13473        );
13474    }
13475    fn trn2_4h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
13476        return self.emit_n(
13477            Opcode::TRN2_4h as _,
13478            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
13479        );
13480    }
13481    fn zip2_4h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
13482        return self.emit_n(
13483            Opcode::ZIP2_4h as _,
13484            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
13485        );
13486    }
13487    fn uzp1_2s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
13488        return self.emit_n(
13489            Opcode::UZP1_2s as _,
13490            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
13491        );
13492    }
13493    fn trn1_2s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
13494        return self.emit_n(
13495            Opcode::TRN1_2s as _,
13496            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
13497        );
13498    }
13499    fn zip1_2s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
13500        return self.emit_n(
13501            Opcode::ZIP1_2s as _,
13502            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
13503        );
13504    }
13505    fn uzp2_2s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
13506        return self.emit_n(
13507            Opcode::UZP2_2s as _,
13508            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
13509        );
13510    }
13511    fn trn2_2s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
13512        return self.emit_n(
13513            Opcode::TRN2_2s as _,
13514            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
13515        );
13516    }
13517    fn zip2_2s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
13518        return self.emit_n(
13519            Opcode::ZIP2_2s as _,
13520            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
13521        );
13522    }
13523    fn uzp1_16b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
13524        return self.emit_n(
13525            Opcode::UZP1_16b as _,
13526            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
13527        );
13528    }
13529    fn trn1_16b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
13530        return self.emit_n(
13531            Opcode::TRN1_16b as _,
13532            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
13533        );
13534    }
13535    fn zip1_16b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
13536        return self.emit_n(
13537            Opcode::ZIP1_16b as _,
13538            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
13539        );
13540    }
13541    fn uzp2_16b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
13542        return self.emit_n(
13543            Opcode::UZP2_16b as _,
13544            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
13545        );
13546    }
13547    fn trn2_16b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
13548        return self.emit_n(
13549            Opcode::TRN2_16b as _,
13550            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
13551        );
13552    }
13553    fn zip2_16b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
13554        return self.emit_n(
13555            Opcode::ZIP2_16b as _,
13556            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
13557        );
13558    }
13559    fn uzp1_8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
13560        return self.emit_n(
13561            Opcode::UZP1_8h as _,
13562            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
13563        );
13564    }
13565    fn trn1_8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
13566        return self.emit_n(
13567            Opcode::TRN1_8h as _,
13568            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
13569        );
13570    }
13571    fn zip1_8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
13572        return self.emit_n(
13573            Opcode::ZIP1_8h as _,
13574            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
13575        );
13576    }
13577    fn uzp2_8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
13578        return self.emit_n(
13579            Opcode::UZP2_8h as _,
13580            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
13581        );
13582    }
13583    fn trn2_8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
13584        return self.emit_n(
13585            Opcode::TRN2_8h as _,
13586            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
13587        );
13588    }
13589    fn zip2_8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
13590        return self.emit_n(
13591            Opcode::ZIP2_8h as _,
13592            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
13593        );
13594    }
13595    fn uzp1_4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
13596        return self.emit_n(
13597            Opcode::UZP1_4s as _,
13598            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
13599        );
13600    }
13601    fn trn1_4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
13602        return self.emit_n(
13603            Opcode::TRN1_4s as _,
13604            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
13605        );
13606    }
13607    fn zip1_4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
13608        return self.emit_n(
13609            Opcode::ZIP1_4s as _,
13610            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
13611        );
13612    }
13613    fn uzp2_4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
13614        return self.emit_n(
13615            Opcode::UZP2_4s as _,
13616            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
13617        );
13618    }
13619    fn trn2_4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
13620        return self.emit_n(
13621            Opcode::TRN2_4s as _,
13622            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
13623        );
13624    }
13625    fn zip2_4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
13626        return self.emit_n(
13627            Opcode::ZIP2_4s as _,
13628            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
13629        );
13630    }
13631    fn uzp1_2d(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
13632        return self.emit_n(
13633            Opcode::UZP1_2d as _,
13634            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
13635        );
13636    }
13637    fn trn1_2d(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
13638        return self.emit_n(
13639            Opcode::TRN1_2d as _,
13640            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
13641        );
13642    }
13643    fn zip1_2d(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
13644        return self.emit_n(
13645            Opcode::ZIP1_2d as _,
13646            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
13647        );
13648    }
13649    fn uzp2_2d(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
13650        return self.emit_n(
13651            Opcode::UZP2_2d as _,
13652            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
13653        );
13654    }
13655    fn trn2_2d(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
13656        return self.emit_n(
13657            Opcode::TRN2_2d as _,
13658            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
13659        );
13660    }
13661    fn zip2_2d(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
13662        return self.emit_n(
13663            Opcode::ZIP2_2d as _,
13664            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
13665        );
13666    }
13667    fn ext8b(
13668        &mut self,
13669        rd: impl OperandCast,
13670        rn: impl OperandCast,
13671        rm: impl OperandCast,
13672        imm4: impl OperandCast,
13673    ) {
13674        return self.emit_n(
13675            Opcode::EXT8b as _,
13676            &[
13677                rd.as_operand(),
13678                rn.as_operand(),
13679                rm.as_operand(),
13680                imm4.as_operand(),
13681            ],
13682        );
13683    }
13684    fn ext16b(
13685        &mut self,
13686        rd: impl OperandCast,
13687        rn: impl OperandCast,
13688        rm: impl OperandCast,
13689        imm4: impl OperandCast,
13690    ) {
13691        return self.emit_n(
13692            Opcode::EXT16b as _,
13693            &[
13694                rd.as_operand(),
13695                rn.as_operand(),
13696                rm.as_operand(),
13697                imm4.as_operand(),
13698            ],
13699        );
13700    }
13701    fn shadd8b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
13702        return self.emit_n(
13703            Opcode::SHADD8b as _,
13704            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
13705        );
13706    }
13707    fn srhadd8b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
13708        return self.emit_n(
13709            Opcode::SRHADD8b as _,
13710            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
13711        );
13712    }
13713    fn shsub8b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
13714        return self.emit_n(
13715            Opcode::SHSUB8b as _,
13716            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
13717        );
13718    }
13719    fn shadd4h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
13720        return self.emit_n(
13721            Opcode::SHADD4h as _,
13722            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
13723        );
13724    }
13725    fn srhadd4h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
13726        return self.emit_n(
13727            Opcode::SRHADD4h as _,
13728            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
13729        );
13730    }
13731    fn shsub4h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
13732        return self.emit_n(
13733            Opcode::SHSUB4h as _,
13734            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
13735        );
13736    }
13737    fn shadd2s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
13738        return self.emit_n(
13739            Opcode::SHADD2s as _,
13740            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
13741        );
13742    }
13743    fn srhadd2s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
13744        return self.emit_n(
13745            Opcode::SRHADD2s as _,
13746            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
13747        );
13748    }
13749    fn shsub2s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
13750        return self.emit_n(
13751            Opcode::SHSUB2s as _,
13752            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
13753        );
13754    }
13755    fn uhadd8b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
13756        return self.emit_n(
13757            Opcode::UHADD8b as _,
13758            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
13759        );
13760    }
13761    fn urhadd8b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
13762        return self.emit_n(
13763            Opcode::URHADD8b as _,
13764            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
13765        );
13766    }
13767    fn uhsub8b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
13768        return self.emit_n(
13769            Opcode::UHSUB8b as _,
13770            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
13771        );
13772    }
13773    fn uhadd4h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
13774        return self.emit_n(
13775            Opcode::UHADD4h as _,
13776            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
13777        );
13778    }
13779    fn urhadd4h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
13780        return self.emit_n(
13781            Opcode::URHADD4h as _,
13782            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
13783        );
13784    }
13785    fn uhsub4h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
13786        return self.emit_n(
13787            Opcode::UHSUB4h as _,
13788            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
13789        );
13790    }
13791    fn uhadd2s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
13792        return self.emit_n(
13793            Opcode::UHADD2s as _,
13794            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
13795        );
13796    }
13797    fn urhadd2s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
13798        return self.emit_n(
13799            Opcode::URHADD2s as _,
13800            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
13801        );
13802    }
13803    fn uhsub2s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
13804        return self.emit_n(
13805            Opcode::UHSUB2s as _,
13806            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
13807        );
13808    }
13809    fn shadd16b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
13810        return self.emit_n(
13811            Opcode::SHADD16b as _,
13812            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
13813        );
13814    }
13815    fn srhadd16b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
13816        return self.emit_n(
13817            Opcode::SRHADD16b as _,
13818            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
13819        );
13820    }
13821    fn shsub16b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
13822        return self.emit_n(
13823            Opcode::SHSUB16b as _,
13824            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
13825        );
13826    }
13827    fn shadd8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
13828        return self.emit_n(
13829            Opcode::SHADD8h as _,
13830            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
13831        );
13832    }
13833    fn srhadd8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
13834        return self.emit_n(
13835            Opcode::SRHADD8h as _,
13836            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
13837        );
13838    }
13839    fn shsub8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
13840        return self.emit_n(
13841            Opcode::SHSUB8h as _,
13842            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
13843        );
13844    }
13845    fn shadd4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
13846        return self.emit_n(
13847            Opcode::SHADD4s as _,
13848            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
13849        );
13850    }
13851    fn srhadd4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
13852        return self.emit_n(
13853            Opcode::SRHADD4s as _,
13854            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
13855        );
13856    }
13857    fn shsub4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
13858        return self.emit_n(
13859            Opcode::SHSUB4s as _,
13860            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
13861        );
13862    }
13863    fn uhadd16b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
13864        return self.emit_n(
13865            Opcode::UHADD16b as _,
13866            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
13867        );
13868    }
13869    fn urhadd16b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
13870        return self.emit_n(
13871            Opcode::URHADD16b as _,
13872            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
13873        );
13874    }
13875    fn uhsub16b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
13876        return self.emit_n(
13877            Opcode::UHSUB16b as _,
13878            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
13879        );
13880    }
13881    fn uhadd8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
13882        return self.emit_n(
13883            Opcode::UHADD8h as _,
13884            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
13885        );
13886    }
13887    fn urhadd8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
13888        return self.emit_n(
13889            Opcode::URHADD8h as _,
13890            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
13891        );
13892    }
13893    fn uhsub8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
13894        return self.emit_n(
13895            Opcode::UHSUB8h as _,
13896            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
13897        );
13898    }
13899    fn uhadd4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
13900        return self.emit_n(
13901            Opcode::UHADD4s as _,
13902            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
13903        );
13904    }
13905    fn urhadd4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
13906        return self.emit_n(
13907            Opcode::URHADD4s as _,
13908            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
13909        );
13910    }
13911    fn uhsub4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
13912        return self.emit_n(
13913            Opcode::UHSUB4s as _,
13914            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
13915        );
13916    }
13917    fn sqaddb(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
13918        return self.emit_n(
13919            Opcode::SQADDb as _,
13920            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
13921        );
13922    }
13923    fn sqsubb(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
13924        return self.emit_n(
13925            Opcode::SQSUBb as _,
13926            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
13927        );
13928    }
13929    fn sqaddh(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
13930        return self.emit_n(
13931            Opcode::SQADDh as _,
13932            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
13933        );
13934    }
13935    fn sqsubh(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
13936        return self.emit_n(
13937            Opcode::SQSUBh as _,
13938            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
13939        );
13940    }
13941    fn sqadds(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
13942        return self.emit_n(
13943            Opcode::SQADDs as _,
13944            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
13945        );
13946    }
13947    fn sqsubs(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
13948        return self.emit_n(
13949            Opcode::SQSUBs as _,
13950            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
13951        );
13952    }
13953    fn sqaddd(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
13954        return self.emit_n(
13955            Opcode::SQADDd as _,
13956            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
13957        );
13958    }
13959    fn sqsubd(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
13960        return self.emit_n(
13961            Opcode::SQSUBd as _,
13962            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
13963        );
13964    }
13965    fn uqaddb(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
13966        return self.emit_n(
13967            Opcode::UQADDb as _,
13968            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
13969        );
13970    }
13971    fn uqsubb(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
13972        return self.emit_n(
13973            Opcode::UQSUBb as _,
13974            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
13975        );
13976    }
13977    fn uqaddh(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
13978        return self.emit_n(
13979            Opcode::UQADDh as _,
13980            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
13981        );
13982    }
13983    fn uqsubh(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
13984        return self.emit_n(
13985            Opcode::UQSUBh as _,
13986            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
13987        );
13988    }
13989    fn uqadds(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
13990        return self.emit_n(
13991            Opcode::UQADDs as _,
13992            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
13993        );
13994    }
13995    fn uqsubs(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
13996        return self.emit_n(
13997            Opcode::UQSUBs as _,
13998            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
13999        );
14000    }
14001    fn uqaddd(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
14002        return self.emit_n(
14003            Opcode::UQADDd as _,
14004            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
14005        );
14006    }
14007    fn uqsubd(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
14008        return self.emit_n(
14009            Opcode::UQSUBd as _,
14010            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
14011        );
14012    }
14013    fn sqadd8b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
14014        return self.emit_n(
14015            Opcode::SQADD8b as _,
14016            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
14017        );
14018    }
14019    fn sqsub8b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
14020        return self.emit_n(
14021            Opcode::SQSUB8b as _,
14022            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
14023        );
14024    }
14025    fn sqadd4h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
14026        return self.emit_n(
14027            Opcode::SQADD4h as _,
14028            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
14029        );
14030    }
14031    fn sqsub4h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
14032        return self.emit_n(
14033            Opcode::SQSUB4h as _,
14034            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
14035        );
14036    }
14037    fn sqadd2s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
14038        return self.emit_n(
14039            Opcode::SQADD2s as _,
14040            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
14041        );
14042    }
14043    fn sqsub2s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
14044        return self.emit_n(
14045            Opcode::SQSUB2s as _,
14046            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
14047        );
14048    }
14049    fn uqadd8b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
14050        return self.emit_n(
14051            Opcode::UQADD8b as _,
14052            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
14053        );
14054    }
14055    fn uqsub8b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
14056        return self.emit_n(
14057            Opcode::UQSUB8b as _,
14058            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
14059        );
14060    }
14061    fn uqadd4h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
14062        return self.emit_n(
14063            Opcode::UQADD4h as _,
14064            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
14065        );
14066    }
14067    fn uqsub4h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
14068        return self.emit_n(
14069            Opcode::UQSUB4h as _,
14070            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
14071        );
14072    }
14073    fn uqadd2s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
14074        return self.emit_n(
14075            Opcode::UQADD2s as _,
14076            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
14077        );
14078    }
14079    fn uqsub2s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
14080        return self.emit_n(
14081            Opcode::UQSUB2s as _,
14082            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
14083        );
14084    }
14085    fn sqadd16b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
14086        return self.emit_n(
14087            Opcode::SQADD16b as _,
14088            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
14089        );
14090    }
14091    fn sqsub16b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
14092        return self.emit_n(
14093            Opcode::SQSUB16b as _,
14094            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
14095        );
14096    }
14097    fn sqadd8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
14098        return self.emit_n(
14099            Opcode::SQADD8h as _,
14100            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
14101        );
14102    }
14103    fn sqsub8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
14104        return self.emit_n(
14105            Opcode::SQSUB8h as _,
14106            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
14107        );
14108    }
14109    fn sqadd4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
14110        return self.emit_n(
14111            Opcode::SQADD4s as _,
14112            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
14113        );
14114    }
14115    fn sqsub4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
14116        return self.emit_n(
14117            Opcode::SQSUB4s as _,
14118            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
14119        );
14120    }
14121    fn sqadd2d(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
14122        return self.emit_n(
14123            Opcode::SQADD2d as _,
14124            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
14125        );
14126    }
14127    fn sqsub2d(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
14128        return self.emit_n(
14129            Opcode::SQSUB2d as _,
14130            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
14131        );
14132    }
14133    fn uqadd16b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
14134        return self.emit_n(
14135            Opcode::UQADD16b as _,
14136            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
14137        );
14138    }
14139    fn uqsub16b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
14140        return self.emit_n(
14141            Opcode::UQSUB16b as _,
14142            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
14143        );
14144    }
14145    fn uqadd8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
14146        return self.emit_n(
14147            Opcode::UQADD8h as _,
14148            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
14149        );
14150    }
14151    fn uqsub8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
14152        return self.emit_n(
14153            Opcode::UQSUB8h as _,
14154            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
14155        );
14156    }
14157    fn uqadd4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
14158        return self.emit_n(
14159            Opcode::UQADD4s as _,
14160            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
14161        );
14162    }
14163    fn uqsub4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
14164        return self.emit_n(
14165            Opcode::UQSUB4s as _,
14166            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
14167        );
14168    }
14169    fn uqadd2d(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
14170        return self.emit_n(
14171            Opcode::UQADD2d as _,
14172            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
14173        );
14174    }
14175    fn uqsub2d(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
14176        return self.emit_n(
14177            Opcode::UQSUB2d as _,
14178            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
14179        );
14180    }
14181    fn cmgtd(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
14182        return self.emit_n(
14183            Opcode::CMGTd as _,
14184            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
14185        );
14186    }
14187    fn cmged(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
14188        return self.emit_n(
14189            Opcode::CMGEd as _,
14190            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
14191        );
14192    }
14193    fn cmhid(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
14194        return self.emit_n(
14195            Opcode::CMHId as _,
14196            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
14197        );
14198    }
14199    fn cmhsd(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
14200        return self.emit_n(
14201            Opcode::CMHSd as _,
14202            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
14203        );
14204    }
14205    fn cmgt8b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
14206        return self.emit_n(
14207            Opcode::CMGT8b as _,
14208            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
14209        );
14210    }
14211    fn cmge8b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
14212        return self.emit_n(
14213            Opcode::CMGE8b as _,
14214            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
14215        );
14216    }
14217    fn cmgt4h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
14218        return self.emit_n(
14219            Opcode::CMGT4h as _,
14220            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
14221        );
14222    }
14223    fn cmge4h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
14224        return self.emit_n(
14225            Opcode::CMGE4h as _,
14226            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
14227        );
14228    }
14229    fn cmgt2s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
14230        return self.emit_n(
14231            Opcode::CMGT2s as _,
14232            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
14233        );
14234    }
14235    fn cmge2s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
14236        return self.emit_n(
14237            Opcode::CMGE2s as _,
14238            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
14239        );
14240    }
14241    fn cmhi8b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
14242        return self.emit_n(
14243            Opcode::CMHI8b as _,
14244            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
14245        );
14246    }
14247    fn cmhs8b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
14248        return self.emit_n(
14249            Opcode::CMHS8b as _,
14250            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
14251        );
14252    }
14253    fn cmhi4h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
14254        return self.emit_n(
14255            Opcode::CMHI4h as _,
14256            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
14257        );
14258    }
14259    fn cmhs4h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
14260        return self.emit_n(
14261            Opcode::CMHS4h as _,
14262            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
14263        );
14264    }
14265    fn cmhi2s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
14266        return self.emit_n(
14267            Opcode::CMHI2s as _,
14268            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
14269        );
14270    }
14271    fn cmhs2s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
14272        return self.emit_n(
14273            Opcode::CMHS2s as _,
14274            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
14275        );
14276    }
14277    fn cmgt16b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
14278        return self.emit_n(
14279            Opcode::CMGT16b as _,
14280            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
14281        );
14282    }
14283    fn cmge16b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
14284        return self.emit_n(
14285            Opcode::CMGE16b as _,
14286            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
14287        );
14288    }
14289    fn cmgt8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
14290        return self.emit_n(
14291            Opcode::CMGT8h as _,
14292            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
14293        );
14294    }
14295    fn cmge8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
14296        return self.emit_n(
14297            Opcode::CMGE8h as _,
14298            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
14299        );
14300    }
14301    fn cmgt4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
14302        return self.emit_n(
14303            Opcode::CMGT4s as _,
14304            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
14305        );
14306    }
14307    fn cmge4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
14308        return self.emit_n(
14309            Opcode::CMGE4s as _,
14310            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
14311        );
14312    }
14313    fn cmgt2d(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
14314        return self.emit_n(
14315            Opcode::CMGT2d as _,
14316            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
14317        );
14318    }
14319    fn cmge2d(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
14320        return self.emit_n(
14321            Opcode::CMGE2d as _,
14322            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
14323        );
14324    }
14325    fn cmhi16b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
14326        return self.emit_n(
14327            Opcode::CMHI16b as _,
14328            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
14329        );
14330    }
14331    fn cmhs16b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
14332        return self.emit_n(
14333            Opcode::CMHS16b as _,
14334            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
14335        );
14336    }
14337    fn cmhi8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
14338        return self.emit_n(
14339            Opcode::CMHI8h as _,
14340            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
14341        );
14342    }
14343    fn cmhs8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
14344        return self.emit_n(
14345            Opcode::CMHS8h as _,
14346            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
14347        );
14348    }
14349    fn cmhi4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
14350        return self.emit_n(
14351            Opcode::CMHI4s as _,
14352            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
14353        );
14354    }
14355    fn cmhs4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
14356        return self.emit_n(
14357            Opcode::CMHS4s as _,
14358            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
14359        );
14360    }
14361    fn cmhi2d(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
14362        return self.emit_n(
14363            Opcode::CMHI2d as _,
14364            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
14365        );
14366    }
14367    fn cmhs2d(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
14368        return self.emit_n(
14369            Opcode::CMHS2d as _,
14370            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
14371        );
14372    }
14373    fn cmtstd(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
14374        return self.emit_n(
14375            Opcode::CMTSTd as _,
14376            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
14377        );
14378    }
14379    fn cmeqd(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
14380        return self.emit_n(
14381            Opcode::CMEQd as _,
14382            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
14383        );
14384    }
14385    fn cmtst8b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
14386        return self.emit_n(
14387            Opcode::CMTST8b as _,
14388            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
14389        );
14390    }
14391    fn cmtst4h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
14392        return self.emit_n(
14393            Opcode::CMTST4h as _,
14394            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
14395        );
14396    }
14397    fn cmtst2s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
14398        return self.emit_n(
14399            Opcode::CMTST2s as _,
14400            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
14401        );
14402    }
14403    fn cmeq8b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
14404        return self.emit_n(
14405            Opcode::CMEQ8b as _,
14406            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
14407        );
14408    }
14409    fn cmeq4h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
14410        return self.emit_n(
14411            Opcode::CMEQ4h as _,
14412            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
14413        );
14414    }
14415    fn cmeq2s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
14416        return self.emit_n(
14417            Opcode::CMEQ2s as _,
14418            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
14419        );
14420    }
14421    fn cmtst16b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
14422        return self.emit_n(
14423            Opcode::CMTST16b as _,
14424            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
14425        );
14426    }
14427    fn cmtst8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
14428        return self.emit_n(
14429            Opcode::CMTST8h as _,
14430            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
14431        );
14432    }
14433    fn cmtst4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
14434        return self.emit_n(
14435            Opcode::CMTST4s as _,
14436            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
14437        );
14438    }
14439    fn cmtst2d(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
14440        return self.emit_n(
14441            Opcode::CMTST2d as _,
14442            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
14443        );
14444    }
14445    fn cmeq16b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
14446        return self.emit_n(
14447            Opcode::CMEQ16b as _,
14448            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
14449        );
14450    }
14451    fn cmeq8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
14452        return self.emit_n(
14453            Opcode::CMEQ8h as _,
14454            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
14455        );
14456    }
14457    fn cmeq4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
14458        return self.emit_n(
14459            Opcode::CMEQ4s as _,
14460            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
14461        );
14462    }
14463    fn cmeq2d(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
14464        return self.emit_n(
14465            Opcode::CMEQ2d as _,
14466            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
14467        );
14468    }
14469    fn cmgtd_zero(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14470        return self.emit_n(Opcode::CMGTd_zero as _, &[rd.as_operand(), rn.as_operand()]);
14471    }
14472    fn cmeqd_zero(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14473        return self.emit_n(Opcode::CMEQd_zero as _, &[rd.as_operand(), rn.as_operand()]);
14474    }
14475    fn cmltd_zero(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14476        return self.emit_n(Opcode::CMLTd_zero as _, &[rd.as_operand(), rn.as_operand()]);
14477    }
14478    fn cmged_zero(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14479        return self.emit_n(Opcode::CMGEd_zero as _, &[rd.as_operand(), rn.as_operand()]);
14480    }
14481    fn cmled_zero(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14482        return self.emit_n(Opcode::CMLEd_zero as _, &[rd.as_operand(), rn.as_operand()]);
14483    }
14484    fn cmgt8b_zero(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14485        return self.emit_n(
14486            Opcode::CMGT8b_zero as _,
14487            &[rd.as_operand(), rn.as_operand()],
14488        );
14489    }
14490    fn cmeq8b_zero(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14491        return self.emit_n(
14492            Opcode::CMEQ8b_zero as _,
14493            &[rd.as_operand(), rn.as_operand()],
14494        );
14495    }
14496    fn cmlt8b_zero(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14497        return self.emit_n(
14498            Opcode::CMLT8b_zero as _,
14499            &[rd.as_operand(), rn.as_operand()],
14500        );
14501    }
14502    fn cmgt4h_zero(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14503        return self.emit_n(
14504            Opcode::CMGT4h_zero as _,
14505            &[rd.as_operand(), rn.as_operand()],
14506        );
14507    }
14508    fn cmeq4h_zero(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14509        return self.emit_n(
14510            Opcode::CMEQ4h_zero as _,
14511            &[rd.as_operand(), rn.as_operand()],
14512        );
14513    }
14514    fn cmlt4h_zero(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14515        return self.emit_n(
14516            Opcode::CMLT4h_zero as _,
14517            &[rd.as_operand(), rn.as_operand()],
14518        );
14519    }
14520    fn cmgt2s_zero(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14521        return self.emit_n(
14522            Opcode::CMGT2s_zero as _,
14523            &[rd.as_operand(), rn.as_operand()],
14524        );
14525    }
14526    fn cmeq2s_zero(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14527        return self.emit_n(
14528            Opcode::CMEQ2s_zero as _,
14529            &[rd.as_operand(), rn.as_operand()],
14530        );
14531    }
14532    fn cmlt2s_zero(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14533        return self.emit_n(
14534            Opcode::CMLT2s_zero as _,
14535            &[rd.as_operand(), rn.as_operand()],
14536        );
14537    }
14538    fn cmge8b_zero(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14539        return self.emit_n(
14540            Opcode::CMGE8b_zero as _,
14541            &[rd.as_operand(), rn.as_operand()],
14542        );
14543    }
14544    fn cmle8b_zero(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14545        return self.emit_n(
14546            Opcode::CMLE8b_zero as _,
14547            &[rd.as_operand(), rn.as_operand()],
14548        );
14549    }
14550    fn cmge4h_zero(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14551        return self.emit_n(
14552            Opcode::CMGE4h_zero as _,
14553            &[rd.as_operand(), rn.as_operand()],
14554        );
14555    }
14556    fn cmle4h_zero(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14557        return self.emit_n(
14558            Opcode::CMLE4h_zero as _,
14559            &[rd.as_operand(), rn.as_operand()],
14560        );
14561    }
14562    fn cmge2s_zero(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14563        return self.emit_n(
14564            Opcode::CMGE2s_zero as _,
14565            &[rd.as_operand(), rn.as_operand()],
14566        );
14567    }
14568    fn cmle2s_zero(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14569        return self.emit_n(
14570            Opcode::CMLE2s_zero as _,
14571            &[rd.as_operand(), rn.as_operand()],
14572        );
14573    }
14574    fn cmgt16b_zero(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14575        return self.emit_n(
14576            Opcode::CMGT16b_zero as _,
14577            &[rd.as_operand(), rn.as_operand()],
14578        );
14579    }
14580    fn cmeq16b_zero(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14581        return self.emit_n(
14582            Opcode::CMEQ16b_zero as _,
14583            &[rd.as_operand(), rn.as_operand()],
14584        );
14585    }
14586    fn cmlt16b_zero(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14587        return self.emit_n(
14588            Opcode::CMLT16b_zero as _,
14589            &[rd.as_operand(), rn.as_operand()],
14590        );
14591    }
14592    fn cmgt8h_zero(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14593        return self.emit_n(
14594            Opcode::CMGT8h_zero as _,
14595            &[rd.as_operand(), rn.as_operand()],
14596        );
14597    }
14598    fn cmeq8h_zero(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14599        return self.emit_n(
14600            Opcode::CMEQ8h_zero as _,
14601            &[rd.as_operand(), rn.as_operand()],
14602        );
14603    }
14604    fn cmlt8h_zero(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14605        return self.emit_n(
14606            Opcode::CMLT8h_zero as _,
14607            &[rd.as_operand(), rn.as_operand()],
14608        );
14609    }
14610    fn cmgt4s_zero(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14611        return self.emit_n(
14612            Opcode::CMGT4s_zero as _,
14613            &[rd.as_operand(), rn.as_operand()],
14614        );
14615    }
14616    fn cmeq4s_zero(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14617        return self.emit_n(
14618            Opcode::CMEQ4s_zero as _,
14619            &[rd.as_operand(), rn.as_operand()],
14620        );
14621    }
14622    fn cmlt4s_zero(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14623        return self.emit_n(
14624            Opcode::CMLT4s_zero as _,
14625            &[rd.as_operand(), rn.as_operand()],
14626        );
14627    }
14628    fn cmgt2d_zero(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14629        return self.emit_n(
14630            Opcode::CMGT2d_zero as _,
14631            &[rd.as_operand(), rn.as_operand()],
14632        );
14633    }
14634    fn cmeq2d_zero(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14635        return self.emit_n(
14636            Opcode::CMEQ2d_zero as _,
14637            &[rd.as_operand(), rn.as_operand()],
14638        );
14639    }
14640    fn cmlt2d_zero(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14641        return self.emit_n(
14642            Opcode::CMLT2d_zero as _,
14643            &[rd.as_operand(), rn.as_operand()],
14644        );
14645    }
14646    fn cmge16b_zero(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14647        return self.emit_n(
14648            Opcode::CMGE16b_zero as _,
14649            &[rd.as_operand(), rn.as_operand()],
14650        );
14651    }
14652    fn cmle16b_zero(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14653        return self.emit_n(
14654            Opcode::CMLE16b_zero as _,
14655            &[rd.as_operand(), rn.as_operand()],
14656        );
14657    }
14658    fn cmge8h_zero(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14659        return self.emit_n(
14660            Opcode::CMGE8h_zero as _,
14661            &[rd.as_operand(), rn.as_operand()],
14662        );
14663    }
14664    fn cmle8h_zero(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14665        return self.emit_n(
14666            Opcode::CMLE8h_zero as _,
14667            &[rd.as_operand(), rn.as_operand()],
14668        );
14669    }
14670    fn cmge4s_zero(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14671        return self.emit_n(
14672            Opcode::CMGE4s_zero as _,
14673            &[rd.as_operand(), rn.as_operand()],
14674        );
14675    }
14676    fn cmle4s_zero(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14677        return self.emit_n(
14678            Opcode::CMLE4s_zero as _,
14679            &[rd.as_operand(), rn.as_operand()],
14680        );
14681    }
14682    fn cmge2d_zero(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14683        return self.emit_n(
14684            Opcode::CMGE2d_zero as _,
14685            &[rd.as_operand(), rn.as_operand()],
14686        );
14687    }
14688    fn cmle2d_zero(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14689        return self.emit_n(
14690            Opcode::CMLE2d_zero as _,
14691            &[rd.as_operand(), rn.as_operand()],
14692        );
14693    }
14694    fn suqaddb(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14695        return self.emit_n(Opcode::SUQADDb as _, &[rd.as_operand(), rn.as_operand()]);
14696    }
14697    fn sqabsb(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14698        return self.emit_n(Opcode::SQABSb as _, &[rd.as_operand(), rn.as_operand()]);
14699    }
14700    fn suqaddh(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14701        return self.emit_n(Opcode::SUQADDh as _, &[rd.as_operand(), rn.as_operand()]);
14702    }
14703    fn sqabsh(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14704        return self.emit_n(Opcode::SQABSh as _, &[rd.as_operand(), rn.as_operand()]);
14705    }
14706    fn suqadds(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14707        return self.emit_n(Opcode::SUQADDs as _, &[rd.as_operand(), rn.as_operand()]);
14708    }
14709    fn sqabss(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14710        return self.emit_n(Opcode::SQABSs as _, &[rd.as_operand(), rn.as_operand()]);
14711    }
14712    fn suqaddd(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14713        return self.emit_n(Opcode::SUQADDd as _, &[rd.as_operand(), rn.as_operand()]);
14714    }
14715    fn sqabsd(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14716        return self.emit_n(Opcode::SQABSd as _, &[rd.as_operand(), rn.as_operand()]);
14717    }
14718    fn absd(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14719        return self.emit_n(Opcode::ABSd as _, &[rd.as_operand(), rn.as_operand()]);
14720    }
14721    fn usqaddb(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14722        return self.emit_n(Opcode::USQADDb as _, &[rd.as_operand(), rn.as_operand()]);
14723    }
14724    fn sqnegb(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14725        return self.emit_n(Opcode::SQNEGb as _, &[rd.as_operand(), rn.as_operand()]);
14726    }
14727    fn usqaddh(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14728        return self.emit_n(Opcode::USQADDh as _, &[rd.as_operand(), rn.as_operand()]);
14729    }
14730    fn sqnegh(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14731        return self.emit_n(Opcode::SQNEGh as _, &[rd.as_operand(), rn.as_operand()]);
14732    }
14733    fn usqadds(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14734        return self.emit_n(Opcode::USQADDs as _, &[rd.as_operand(), rn.as_operand()]);
14735    }
14736    fn sqnegs(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14737        return self.emit_n(Opcode::SQNEGs as _, &[rd.as_operand(), rn.as_operand()]);
14738    }
14739    fn usqaddd(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14740        return self.emit_n(Opcode::USQADDd as _, &[rd.as_operand(), rn.as_operand()]);
14741    }
14742    fn sqnegd(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14743        return self.emit_n(Opcode::SQNEGd as _, &[rd.as_operand(), rn.as_operand()]);
14744    }
14745    fn negd(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14746        return self.emit_n(Opcode::NEGd as _, &[rd.as_operand(), rn.as_operand()]);
14747    }
14748    fn suqadd8b(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14749        return self.emit_n(Opcode::SUQADD8b as _, &[rd.as_operand(), rn.as_operand()]);
14750    }
14751    fn sqabs8b(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14752        return self.emit_n(Opcode::SQABS8b as _, &[rd.as_operand(), rn.as_operand()]);
14753    }
14754    fn abs8b(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14755        return self.emit_n(Opcode::ABS8b as _, &[rd.as_operand(), rn.as_operand()]);
14756    }
14757    fn suqadd4h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14758        return self.emit_n(Opcode::SUQADD4h as _, &[rd.as_operand(), rn.as_operand()]);
14759    }
14760    fn sqabs4h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14761        return self.emit_n(Opcode::SQABS4h as _, &[rd.as_operand(), rn.as_operand()]);
14762    }
14763    fn abs4h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14764        return self.emit_n(Opcode::ABS4h as _, &[rd.as_operand(), rn.as_operand()]);
14765    }
14766    fn suqadd2s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14767        return self.emit_n(Opcode::SUQADD2s as _, &[rd.as_operand(), rn.as_operand()]);
14768    }
14769    fn sqabs2s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14770        return self.emit_n(Opcode::SQABS2s as _, &[rd.as_operand(), rn.as_operand()]);
14771    }
14772    fn abs2s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14773        return self.emit_n(Opcode::ABS2s as _, &[rd.as_operand(), rn.as_operand()]);
14774    }
14775    fn usqadd8b(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14776        return self.emit_n(Opcode::USQADD8b as _, &[rd.as_operand(), rn.as_operand()]);
14777    }
14778    fn sqneg8b(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14779        return self.emit_n(Opcode::SQNEG8b as _, &[rd.as_operand(), rn.as_operand()]);
14780    }
14781    fn neg8b(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14782        return self.emit_n(Opcode::NEG8b as _, &[rd.as_operand(), rn.as_operand()]);
14783    }
14784    fn usqadd4h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14785        return self.emit_n(Opcode::USQADD4h as _, &[rd.as_operand(), rn.as_operand()]);
14786    }
14787    fn sqneg4h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14788        return self.emit_n(Opcode::SQNEG4h as _, &[rd.as_operand(), rn.as_operand()]);
14789    }
14790    fn neg4h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14791        return self.emit_n(Opcode::NEG4h as _, &[rd.as_operand(), rn.as_operand()]);
14792    }
14793    fn usqadd2s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14794        return self.emit_n(Opcode::USQADD2s as _, &[rd.as_operand(), rn.as_operand()]);
14795    }
14796    fn sqneg2s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14797        return self.emit_n(Opcode::SQNEG2s as _, &[rd.as_operand(), rn.as_operand()]);
14798    }
14799    fn neg2s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14800        return self.emit_n(Opcode::NEG2s as _, &[rd.as_operand(), rn.as_operand()]);
14801    }
14802    fn suqadd16b(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14803        return self.emit_n(Opcode::SUQADD16b as _, &[rd.as_operand(), rn.as_operand()]);
14804    }
14805    fn sqabs16b(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14806        return self.emit_n(Opcode::SQABS16b as _, &[rd.as_operand(), rn.as_operand()]);
14807    }
14808    fn abs16b(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14809        return self.emit_n(Opcode::ABS16b as _, &[rd.as_operand(), rn.as_operand()]);
14810    }
14811    fn suqadd8h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14812        return self.emit_n(Opcode::SUQADD8h as _, &[rd.as_operand(), rn.as_operand()]);
14813    }
14814    fn sqabs8h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14815        return self.emit_n(Opcode::SQABS8h as _, &[rd.as_operand(), rn.as_operand()]);
14816    }
14817    fn abs8h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14818        return self.emit_n(Opcode::ABS8h as _, &[rd.as_operand(), rn.as_operand()]);
14819    }
14820    fn suqadd4s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14821        return self.emit_n(Opcode::SUQADD4s as _, &[rd.as_operand(), rn.as_operand()]);
14822    }
14823    fn sqabs4s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14824        return self.emit_n(Opcode::SQABS4s as _, &[rd.as_operand(), rn.as_operand()]);
14825    }
14826    fn abs4s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14827        return self.emit_n(Opcode::ABS4s as _, &[rd.as_operand(), rn.as_operand()]);
14828    }
14829    fn suqadd2d(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14830        return self.emit_n(Opcode::SUQADD2d as _, &[rd.as_operand(), rn.as_operand()]);
14831    }
14832    fn sqabs2d(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14833        return self.emit_n(Opcode::SQABS2d as _, &[rd.as_operand(), rn.as_operand()]);
14834    }
14835    fn abs2d(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14836        return self.emit_n(Opcode::ABS2d as _, &[rd.as_operand(), rn.as_operand()]);
14837    }
14838    fn usqadd16b(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14839        return self.emit_n(Opcode::USQADD16b as _, &[rd.as_operand(), rn.as_operand()]);
14840    }
14841    fn sqneg16b(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14842        return self.emit_n(Opcode::SQNEG16b as _, &[rd.as_operand(), rn.as_operand()]);
14843    }
14844    fn neg16b(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14845        return self.emit_n(Opcode::NEG16b as _, &[rd.as_operand(), rn.as_operand()]);
14846    }
14847    fn usqadd8h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14848        return self.emit_n(Opcode::USQADD8h as _, &[rd.as_operand(), rn.as_operand()]);
14849    }
14850    fn sqneg8h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14851        return self.emit_n(Opcode::SQNEG8h as _, &[rd.as_operand(), rn.as_operand()]);
14852    }
14853    fn neg8h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14854        return self.emit_n(Opcode::NEG8h as _, &[rd.as_operand(), rn.as_operand()]);
14855    }
14856    fn usqadd4s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14857        return self.emit_n(Opcode::USQADD4s as _, &[rd.as_operand(), rn.as_operand()]);
14858    }
14859    fn sqneg4s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14860        return self.emit_n(Opcode::SQNEG4s as _, &[rd.as_operand(), rn.as_operand()]);
14861    }
14862    fn neg4s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14863        return self.emit_n(Opcode::NEG4s as _, &[rd.as_operand(), rn.as_operand()]);
14864    }
14865    fn usqadd2d(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14866        return self.emit_n(Opcode::USQADD2d as _, &[rd.as_operand(), rn.as_operand()]);
14867    }
14868    fn sqneg2d(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14869        return self.emit_n(Opcode::SQNEG2d as _, &[rd.as_operand(), rn.as_operand()]);
14870    }
14871    fn neg2d(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14872        return self.emit_n(Opcode::NEG2d as _, &[rd.as_operand(), rn.as_operand()]);
14873    }
14874    fn saddlp4h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14875        return self.emit_n(Opcode::SADDLP4h as _, &[rd.as_operand(), rn.as_operand()]);
14876    }
14877    fn sadalp4h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14878        return self.emit_n(Opcode::SADALP4h as _, &[rd.as_operand(), rn.as_operand()]);
14879    }
14880    fn saddlp2s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14881        return self.emit_n(Opcode::SADDLP2s as _, &[rd.as_operand(), rn.as_operand()]);
14882    }
14883    fn sadalp2s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14884        return self.emit_n(Opcode::SADALP2s as _, &[rd.as_operand(), rn.as_operand()]);
14885    }
14886    fn saddlp1d(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14887        return self.emit_n(Opcode::SADDLP1d as _, &[rd.as_operand(), rn.as_operand()]);
14888    }
14889    fn sadalp1d(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14890        return self.emit_n(Opcode::SADALP1d as _, &[rd.as_operand(), rn.as_operand()]);
14891    }
14892    fn uaddlp4h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14893        return self.emit_n(Opcode::UADDLP4h as _, &[rd.as_operand(), rn.as_operand()]);
14894    }
14895    fn uadalp4h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14896        return self.emit_n(Opcode::UADALP4h as _, &[rd.as_operand(), rn.as_operand()]);
14897    }
14898    fn uaddlp2s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14899        return self.emit_n(Opcode::UADDLP2s as _, &[rd.as_operand(), rn.as_operand()]);
14900    }
14901    fn uadalp2s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14902        return self.emit_n(Opcode::UADALP2s as _, &[rd.as_operand(), rn.as_operand()]);
14903    }
14904    fn uaddlp1d(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14905        return self.emit_n(Opcode::UADDLP1d as _, &[rd.as_operand(), rn.as_operand()]);
14906    }
14907    fn uadalp1d(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14908        return self.emit_n(Opcode::UADALP1d as _, &[rd.as_operand(), rn.as_operand()]);
14909    }
14910    fn saddlp8h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14911        return self.emit_n(Opcode::SADDLP8h as _, &[rd.as_operand(), rn.as_operand()]);
14912    }
14913    fn sadalp8h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14914        return self.emit_n(Opcode::SADALP8h as _, &[rd.as_operand(), rn.as_operand()]);
14915    }
14916    fn saddlp4s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14917        return self.emit_n(Opcode::SADDLP4s as _, &[rd.as_operand(), rn.as_operand()]);
14918    }
14919    fn sadalp4s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14920        return self.emit_n(Opcode::SADALP4s as _, &[rd.as_operand(), rn.as_operand()]);
14921    }
14922    fn saddlp2d(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14923        return self.emit_n(Opcode::SADDLP2d as _, &[rd.as_operand(), rn.as_operand()]);
14924    }
14925    fn sadalp2d(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14926        return self.emit_n(Opcode::SADALP2d as _, &[rd.as_operand(), rn.as_operand()]);
14927    }
14928    fn uaddlp8h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14929        return self.emit_n(Opcode::UADDLP8h as _, &[rd.as_operand(), rn.as_operand()]);
14930    }
14931    fn uadalp8h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14932        return self.emit_n(Opcode::UADALP8h as _, &[rd.as_operand(), rn.as_operand()]);
14933    }
14934    fn uaddlp4s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14935        return self.emit_n(Opcode::UADDLP4s as _, &[rd.as_operand(), rn.as_operand()]);
14936    }
14937    fn uadalp4s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14938        return self.emit_n(Opcode::UADALP4s as _, &[rd.as_operand(), rn.as_operand()]);
14939    }
14940    fn uaddlp2d(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14941        return self.emit_n(Opcode::UADDLP2d as _, &[rd.as_operand(), rn.as_operand()]);
14942    }
14943    fn uadalp2d(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14944        return self.emit_n(Opcode::UADALP2d as _, &[rd.as_operand(), rn.as_operand()]);
14945    }
14946    fn cls8b(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14947        return self.emit_n(Opcode::CLS8b as _, &[rd.as_operand(), rn.as_operand()]);
14948    }
14949    fn cls4h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14950        return self.emit_n(Opcode::CLS4h as _, &[rd.as_operand(), rn.as_operand()]);
14951    }
14952    fn cls2s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14953        return self.emit_n(Opcode::CLS2s as _, &[rd.as_operand(), rn.as_operand()]);
14954    }
14955    fn clz8b(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14956        return self.emit_n(Opcode::CLZ8b as _, &[rd.as_operand(), rn.as_operand()]);
14957    }
14958    fn clz4h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14959        return self.emit_n(Opcode::CLZ4h as _, &[rd.as_operand(), rn.as_operand()]);
14960    }
14961    fn clz2s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14962        return self.emit_n(Opcode::CLZ2s as _, &[rd.as_operand(), rn.as_operand()]);
14963    }
14964    fn cls16b(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14965        return self.emit_n(Opcode::CLS16b as _, &[rd.as_operand(), rn.as_operand()]);
14966    }
14967    fn cls8h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14968        return self.emit_n(Opcode::CLS8h as _, &[rd.as_operand(), rn.as_operand()]);
14969    }
14970    fn cls4s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14971        return self.emit_n(Opcode::CLS4s as _, &[rd.as_operand(), rn.as_operand()]);
14972    }
14973    fn clz16b(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14974        return self.emit_n(Opcode::CLZ16b as _, &[rd.as_operand(), rn.as_operand()]);
14975    }
14976    fn clz8h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14977        return self.emit_n(Opcode::CLZ8h as _, &[rd.as_operand(), rn.as_operand()]);
14978    }
14979    fn clz4s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14980        return self.emit_n(Opcode::CLZ4s as _, &[rd.as_operand(), rn.as_operand()]);
14981    }
14982    fn cnt8b(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14983        return self.emit_n(Opcode::CNT8b as _, &[rd.as_operand(), rn.as_operand()]);
14984    }
14985    fn not8b(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14986        return self.emit_n(Opcode::NOT8b as _, &[rd.as_operand(), rn.as_operand()]);
14987    }
14988    fn rbit8b(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14989        return self.emit_n(Opcode::RBIT8b as _, &[rd.as_operand(), rn.as_operand()]);
14990    }
14991    fn cnt16b(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14992        return self.emit_n(Opcode::CNT16b as _, &[rd.as_operand(), rn.as_operand()]);
14993    }
14994    fn not16b(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14995        return self.emit_n(Opcode::NOT16b as _, &[rd.as_operand(), rn.as_operand()]);
14996    }
14997    fn rbit16b(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
14998        return self.emit_n(Opcode::RBIT16b as _, &[rd.as_operand(), rn.as_operand()]);
14999    }
15000    fn mvn8b(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
15001        return self.emit_n(Opcode::MVN8b as _, &[rd.as_operand(), rn.as_operand()]);
15002    }
15003    fn mvn16b(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
15004        return self.emit_n(Opcode::MVN16b as _, &[rd.as_operand(), rn.as_operand()]);
15005    }
15006    fn rev64_8b(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
15007        return self.emit_n(Opcode::REV64_8b as _, &[rd.as_operand(), rn.as_operand()]);
15008    }
15009    fn rev16_8b(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
15010        return self.emit_n(Opcode::REV16_8b as _, &[rd.as_operand(), rn.as_operand()]);
15011    }
15012    fn rev64_4h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
15013        return self.emit_n(Opcode::REV64_4h as _, &[rd.as_operand(), rn.as_operand()]);
15014    }
15015    fn rev64_2s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
15016        return self.emit_n(Opcode::REV64_2s as _, &[rd.as_operand(), rn.as_operand()]);
15017    }
15018    fn rev32_8b(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
15019        return self.emit_n(Opcode::REV32_8b as _, &[rd.as_operand(), rn.as_operand()]);
15020    }
15021    fn rev32_4h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
15022        return self.emit_n(Opcode::REV32_4h as _, &[rd.as_operand(), rn.as_operand()]);
15023    }
15024    fn rev64_16b(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
15025        return self.emit_n(Opcode::REV64_16b as _, &[rd.as_operand(), rn.as_operand()]);
15026    }
15027    fn rev16_16b(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
15028        return self.emit_n(Opcode::REV16_16b as _, &[rd.as_operand(), rn.as_operand()]);
15029    }
15030    fn rev64_8h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
15031        return self.emit_n(Opcode::REV64_8h as _, &[rd.as_operand(), rn.as_operand()]);
15032    }
15033    fn rev64_4s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
15034        return self.emit_n(Opcode::REV64_4s as _, &[rd.as_operand(), rn.as_operand()]);
15035    }
15036    fn rev32_16b(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
15037        return self.emit_n(Opcode::REV32_16b as _, &[rd.as_operand(), rn.as_operand()]);
15038    }
15039    fn rev32_8h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
15040        return self.emit_n(Opcode::REV32_8h as _, &[rd.as_operand(), rn.as_operand()]);
15041    }
15042    fn sqxtnb(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
15043        return self.emit_n(Opcode::SQXTNb as _, &[rd.as_operand(), rn.as_operand()]);
15044    }
15045    fn sqxtnh(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
15046        return self.emit_n(Opcode::SQXTNh as _, &[rd.as_operand(), rn.as_operand()]);
15047    }
15048    fn sqxtns(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
15049        return self.emit_n(Opcode::SQXTNs as _, &[rd.as_operand(), rn.as_operand()]);
15050    }
15051    fn sqxtunb(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
15052        return self.emit_n(Opcode::SQXTUNb as _, &[rd.as_operand(), rn.as_operand()]);
15053    }
15054    fn uqxtnb(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
15055        return self.emit_n(Opcode::UQXTNb as _, &[rd.as_operand(), rn.as_operand()]);
15056    }
15057    fn sqxtunh(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
15058        return self.emit_n(Opcode::SQXTUNh as _, &[rd.as_operand(), rn.as_operand()]);
15059    }
15060    fn uqxtnh(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
15061        return self.emit_n(Opcode::UQXTNh as _, &[rd.as_operand(), rn.as_operand()]);
15062    }
15063    fn sqxtuns(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
15064        return self.emit_n(Opcode::SQXTUNs as _, &[rd.as_operand(), rn.as_operand()]);
15065    }
15066    fn uqxtns(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
15067        return self.emit_n(Opcode::UQXTNs as _, &[rd.as_operand(), rn.as_operand()]);
15068    }
15069    fn xtn_8b(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
15070        return self.emit_n(Opcode::XTN_8b as _, &[rd.as_operand(), rn.as_operand()]);
15071    }
15072    fn sqxtn_8b(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
15073        return self.emit_n(Opcode::SQXTN_8b as _, &[rd.as_operand(), rn.as_operand()]);
15074    }
15075    fn xtn_4h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
15076        return self.emit_n(Opcode::XTN_4h as _, &[rd.as_operand(), rn.as_operand()]);
15077    }
15078    fn sqxtn_4h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
15079        return self.emit_n(Opcode::SQXTN_4h as _, &[rd.as_operand(), rn.as_operand()]);
15080    }
15081    fn xtn_2s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
15082        return self.emit_n(Opcode::XTN_2s as _, &[rd.as_operand(), rn.as_operand()]);
15083    }
15084    fn sqxtn_2s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
15085        return self.emit_n(Opcode::SQXTN_2s as _, &[rd.as_operand(), rn.as_operand()]);
15086    }
15087    fn sqxtun_8b(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
15088        return self.emit_n(Opcode::SQXTUN_8b as _, &[rd.as_operand(), rn.as_operand()]);
15089    }
15090    fn uqxtn_8b(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
15091        return self.emit_n(Opcode::UQXTN_8b as _, &[rd.as_operand(), rn.as_operand()]);
15092    }
15093    fn sqxtun_4h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
15094        return self.emit_n(Opcode::SQXTUN_4h as _, &[rd.as_operand(), rn.as_operand()]);
15095    }
15096    fn uqxtn_4h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
15097        return self.emit_n(Opcode::UQXTN_4h as _, &[rd.as_operand(), rn.as_operand()]);
15098    }
15099    fn sqxtun_2s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
15100        return self.emit_n(Opcode::SQXTUN_2s as _, &[rd.as_operand(), rn.as_operand()]);
15101    }
15102    fn uqxtn_2s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
15103        return self.emit_n(Opcode::UQXTN_2s as _, &[rd.as_operand(), rn.as_operand()]);
15104    }
15105    fn xtn2_16b(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
15106        return self.emit_n(Opcode::XTN2_16b as _, &[rd.as_operand(), rn.as_operand()]);
15107    }
15108    fn sqxtn2_16b(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
15109        return self.emit_n(Opcode::SQXTN2_16b as _, &[rd.as_operand(), rn.as_operand()]);
15110    }
15111    fn xtn2_8h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
15112        return self.emit_n(Opcode::XTN2_8h as _, &[rd.as_operand(), rn.as_operand()]);
15113    }
15114    fn sqxtn2_8h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
15115        return self.emit_n(Opcode::SQXTN2_8h as _, &[rd.as_operand(), rn.as_operand()]);
15116    }
15117    fn xtn2_4s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
15118        return self.emit_n(Opcode::XTN2_4s as _, &[rd.as_operand(), rn.as_operand()]);
15119    }
15120    fn sqxtn2_4s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
15121        return self.emit_n(Opcode::SQXTN2_4s as _, &[rd.as_operand(), rn.as_operand()]);
15122    }
15123    fn sqxtun2_16b(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
15124        return self.emit_n(
15125            Opcode::SQXTUN2_16b as _,
15126            &[rd.as_operand(), rn.as_operand()],
15127        );
15128    }
15129    fn uqxtn2_16b(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
15130        return self.emit_n(Opcode::UQXTN2_16b as _, &[rd.as_operand(), rn.as_operand()]);
15131    }
15132    fn sqxtun2_8h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
15133        return self.emit_n(Opcode::SQXTUN2_8h as _, &[rd.as_operand(), rn.as_operand()]);
15134    }
15135    fn uqxtn2_8h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
15136        return self.emit_n(Opcode::UQXTN2_8h as _, &[rd.as_operand(), rn.as_operand()]);
15137    }
15138    fn sqxtun2_4s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
15139        return self.emit_n(Opcode::SQXTUN2_4s as _, &[rd.as_operand(), rn.as_operand()]);
15140    }
15141    fn uqxtn2_4s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
15142        return self.emit_n(Opcode::UQXTN2_4s as _, &[rd.as_operand(), rn.as_operand()]);
15143    }
15144    fn sqshlb(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15145        return self.emit_n(
15146            Opcode::SQSHLb as _,
15147            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15148        );
15149    }
15150    fn sqrshlb(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15151        return self.emit_n(
15152            Opcode::SQRSHLb as _,
15153            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15154        );
15155    }
15156    fn sqshlh(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15157        return self.emit_n(
15158            Opcode::SQSHLh as _,
15159            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15160        );
15161    }
15162    fn sqrshlh(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15163        return self.emit_n(
15164            Opcode::SQRSHLh as _,
15165            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15166        );
15167    }
15168    fn sqshls(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15169        return self.emit_n(
15170            Opcode::SQSHLs as _,
15171            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15172        );
15173    }
15174    fn sqrshls(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15175        return self.emit_n(
15176            Opcode::SQRSHLs as _,
15177            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15178        );
15179    }
15180    fn sshld(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15181        return self.emit_n(
15182            Opcode::SSHLd as _,
15183            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15184        );
15185    }
15186    fn sqshld(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15187        return self.emit_n(
15188            Opcode::SQSHLd as _,
15189            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15190        );
15191    }
15192    fn srshld(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15193        return self.emit_n(
15194            Opcode::SRSHLd as _,
15195            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15196        );
15197    }
15198    fn sqrshld(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15199        return self.emit_n(
15200            Opcode::SQRSHLd as _,
15201            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15202        );
15203    }
15204    fn uqshlb(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15205        return self.emit_n(
15206            Opcode::UQSHLb as _,
15207            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15208        );
15209    }
15210    fn uqrshlb(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15211        return self.emit_n(
15212            Opcode::UQRSHLb as _,
15213            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15214        );
15215    }
15216    fn uqshlh(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15217        return self.emit_n(
15218            Opcode::UQSHLh as _,
15219            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15220        );
15221    }
15222    fn uqrshlh(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15223        return self.emit_n(
15224            Opcode::UQRSHLh as _,
15225            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15226        );
15227    }
15228    fn uqshls(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15229        return self.emit_n(
15230            Opcode::UQSHLs as _,
15231            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15232        );
15233    }
15234    fn uqrshls(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15235        return self.emit_n(
15236            Opcode::UQRSHLs as _,
15237            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15238        );
15239    }
15240    fn ushld(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15241        return self.emit_n(
15242            Opcode::USHLd as _,
15243            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15244        );
15245    }
15246    fn uqshld(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15247        return self.emit_n(
15248            Opcode::UQSHLd as _,
15249            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15250        );
15251    }
15252    fn urshld(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15253        return self.emit_n(
15254            Opcode::URSHLd as _,
15255            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15256        );
15257    }
15258    fn uqrshld(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15259        return self.emit_n(
15260            Opcode::UQRSHLd as _,
15261            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15262        );
15263    }
15264    fn sshl8b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15265        return self.emit_n(
15266            Opcode::SSHL8b as _,
15267            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15268        );
15269    }
15270    fn sqshl8b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15271        return self.emit_n(
15272            Opcode::SQSHL8b as _,
15273            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15274        );
15275    }
15276    fn srshl8b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15277        return self.emit_n(
15278            Opcode::SRSHL8b as _,
15279            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15280        );
15281    }
15282    fn sqrshl8b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15283        return self.emit_n(
15284            Opcode::SQRSHL8b as _,
15285            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15286        );
15287    }
15288    fn sshl4h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15289        return self.emit_n(
15290            Opcode::SSHL4h as _,
15291            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15292        );
15293    }
15294    fn sqshl4h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15295        return self.emit_n(
15296            Opcode::SQSHL4h as _,
15297            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15298        );
15299    }
15300    fn srshl4h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15301        return self.emit_n(
15302            Opcode::SRSHL4h as _,
15303            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15304        );
15305    }
15306    fn sqrshl4h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15307        return self.emit_n(
15308            Opcode::SQRSHL4h as _,
15309            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15310        );
15311    }
15312    fn sshl2s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15313        return self.emit_n(
15314            Opcode::SSHL2s as _,
15315            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15316        );
15317    }
15318    fn sqshl2s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15319        return self.emit_n(
15320            Opcode::SQSHL2s as _,
15321            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15322        );
15323    }
15324    fn srshl2s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15325        return self.emit_n(
15326            Opcode::SRSHL2s as _,
15327            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15328        );
15329    }
15330    fn sqrshl2s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15331        return self.emit_n(
15332            Opcode::SQRSHL2s as _,
15333            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15334        );
15335    }
15336    fn ushl8b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15337        return self.emit_n(
15338            Opcode::USHL8b as _,
15339            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15340        );
15341    }
15342    fn uqshl8b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15343        return self.emit_n(
15344            Opcode::UQSHL8b as _,
15345            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15346        );
15347    }
15348    fn urshl8b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15349        return self.emit_n(
15350            Opcode::URSHL8b as _,
15351            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15352        );
15353    }
15354    fn uqrshl8b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15355        return self.emit_n(
15356            Opcode::UQRSHL8b as _,
15357            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15358        );
15359    }
15360    fn ushl4h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15361        return self.emit_n(
15362            Opcode::USHL4h as _,
15363            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15364        );
15365    }
15366    fn uqshl4h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15367        return self.emit_n(
15368            Opcode::UQSHL4h as _,
15369            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15370        );
15371    }
15372    fn urshl4h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15373        return self.emit_n(
15374            Opcode::URSHL4h as _,
15375            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15376        );
15377    }
15378    fn uqrshl4h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15379        return self.emit_n(
15380            Opcode::UQRSHL4h as _,
15381            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15382        );
15383    }
15384    fn ushl2s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15385        return self.emit_n(
15386            Opcode::USHL2s as _,
15387            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15388        );
15389    }
15390    fn uqshl2s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15391        return self.emit_n(
15392            Opcode::UQSHL2s as _,
15393            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15394        );
15395    }
15396    fn urshl2s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15397        return self.emit_n(
15398            Opcode::URSHL2s as _,
15399            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15400        );
15401    }
15402    fn uqrshl2s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15403        return self.emit_n(
15404            Opcode::UQRSHL2s as _,
15405            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15406        );
15407    }
15408    fn sshl16b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15409        return self.emit_n(
15410            Opcode::SSHL16b as _,
15411            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15412        );
15413    }
15414    fn sqshl16b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15415        return self.emit_n(
15416            Opcode::SQSHL16b as _,
15417            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15418        );
15419    }
15420    fn srshl16b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15421        return self.emit_n(
15422            Opcode::SRSHL16b as _,
15423            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15424        );
15425    }
15426    fn sqrshl16b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15427        return self.emit_n(
15428            Opcode::SQRSHL16b as _,
15429            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15430        );
15431    }
15432    fn sshl8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15433        return self.emit_n(
15434            Opcode::SSHL8h as _,
15435            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15436        );
15437    }
15438    fn sqshl8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15439        return self.emit_n(
15440            Opcode::SQSHL8h as _,
15441            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15442        );
15443    }
15444    fn srshl8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15445        return self.emit_n(
15446            Opcode::SRSHL8h as _,
15447            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15448        );
15449    }
15450    fn sqrshl8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15451        return self.emit_n(
15452            Opcode::SQRSHL8h as _,
15453            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15454        );
15455    }
15456    fn sshl4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15457        return self.emit_n(
15458            Opcode::SSHL4s as _,
15459            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15460        );
15461    }
15462    fn sqshl4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15463        return self.emit_n(
15464            Opcode::SQSHL4s as _,
15465            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15466        );
15467    }
15468    fn srshl4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15469        return self.emit_n(
15470            Opcode::SRSHL4s as _,
15471            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15472        );
15473    }
15474    fn sqrshl4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15475        return self.emit_n(
15476            Opcode::SQRSHL4s as _,
15477            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15478        );
15479    }
15480    fn sshl2d(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15481        return self.emit_n(
15482            Opcode::SSHL2d as _,
15483            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15484        );
15485    }
15486    fn sqshl2d(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15487        return self.emit_n(
15488            Opcode::SQSHL2d as _,
15489            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15490        );
15491    }
15492    fn srshl2d(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15493        return self.emit_n(
15494            Opcode::SRSHL2d as _,
15495            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15496        );
15497    }
15498    fn sqrshl2d(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15499        return self.emit_n(
15500            Opcode::SQRSHL2d as _,
15501            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15502        );
15503    }
15504    fn ushl16b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15505        return self.emit_n(
15506            Opcode::USHL16b as _,
15507            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15508        );
15509    }
15510    fn uqshl16b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15511        return self.emit_n(
15512            Opcode::UQSHL16b as _,
15513            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15514        );
15515    }
15516    fn urshl16b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15517        return self.emit_n(
15518            Opcode::URSHL16b as _,
15519            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15520        );
15521    }
15522    fn uqrshl16b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15523        return self.emit_n(
15524            Opcode::UQRSHL16b as _,
15525            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15526        );
15527    }
15528    fn ushl8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15529        return self.emit_n(
15530            Opcode::USHL8h as _,
15531            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15532        );
15533    }
15534    fn uqshl8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15535        return self.emit_n(
15536            Opcode::UQSHL8h as _,
15537            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15538        );
15539    }
15540    fn urshl8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15541        return self.emit_n(
15542            Opcode::URSHL8h as _,
15543            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15544        );
15545    }
15546    fn uqrshl8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15547        return self.emit_n(
15548            Opcode::UQRSHL8h as _,
15549            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15550        );
15551    }
15552    fn ushl4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15553        return self.emit_n(
15554            Opcode::USHL4s as _,
15555            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15556        );
15557    }
15558    fn uqshl4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15559        return self.emit_n(
15560            Opcode::UQSHL4s as _,
15561            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15562        );
15563    }
15564    fn urshl4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15565        return self.emit_n(
15566            Opcode::URSHL4s as _,
15567            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15568        );
15569    }
15570    fn uqrshl4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15571        return self.emit_n(
15572            Opcode::UQRSHL4s as _,
15573            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15574        );
15575    }
15576    fn ushl2d(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15577        return self.emit_n(
15578            Opcode::USHL2d as _,
15579            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15580        );
15581    }
15582    fn uqshl2d(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15583        return self.emit_n(
15584            Opcode::UQSHL2d as _,
15585            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15586        );
15587    }
15588    fn urshl2d(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15589        return self.emit_n(
15590            Opcode::URSHL2d as _,
15591            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15592        );
15593    }
15594    fn uqrshl2d(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15595        return self.emit_n(
15596            Opcode::UQRSHL2d as _,
15597            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15598        );
15599    }
15600    fn smax8b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15601        return self.emit_n(
15602            Opcode::SMAX8b as _,
15603            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15604        );
15605    }
15606    fn smin8b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15607        return self.emit_n(
15608            Opcode::SMIN8b as _,
15609            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15610        );
15611    }
15612    fn smaxp8b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15613        return self.emit_n(
15614            Opcode::SMAXP8b as _,
15615            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15616        );
15617    }
15618    fn sminp8b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15619        return self.emit_n(
15620            Opcode::SMINP8b as _,
15621            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15622        );
15623    }
15624    fn smax4h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15625        return self.emit_n(
15626            Opcode::SMAX4h as _,
15627            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15628        );
15629    }
15630    fn smin4h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15631        return self.emit_n(
15632            Opcode::SMIN4h as _,
15633            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15634        );
15635    }
15636    fn smaxp4h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15637        return self.emit_n(
15638            Opcode::SMAXP4h as _,
15639            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15640        );
15641    }
15642    fn sminp4h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15643        return self.emit_n(
15644            Opcode::SMINP4h as _,
15645            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15646        );
15647    }
15648    fn smax2s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15649        return self.emit_n(
15650            Opcode::SMAX2s as _,
15651            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15652        );
15653    }
15654    fn smin2s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15655        return self.emit_n(
15656            Opcode::SMIN2s as _,
15657            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15658        );
15659    }
15660    fn smaxp2s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15661        return self.emit_n(
15662            Opcode::SMAXP2s as _,
15663            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15664        );
15665    }
15666    fn sminp2s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15667        return self.emit_n(
15668            Opcode::SMINP2s as _,
15669            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15670        );
15671    }
15672    fn umax8b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15673        return self.emit_n(
15674            Opcode::UMAX8b as _,
15675            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15676        );
15677    }
15678    fn umin8b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15679        return self.emit_n(
15680            Opcode::UMIN8b as _,
15681            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15682        );
15683    }
15684    fn umaxp8b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15685        return self.emit_n(
15686            Opcode::UMAXP8b as _,
15687            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15688        );
15689    }
15690    fn uminp8b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15691        return self.emit_n(
15692            Opcode::UMINP8b as _,
15693            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15694        );
15695    }
15696    fn umax4h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15697        return self.emit_n(
15698            Opcode::UMAX4h as _,
15699            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15700        );
15701    }
15702    fn umin4h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15703        return self.emit_n(
15704            Opcode::UMIN4h as _,
15705            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15706        );
15707    }
15708    fn umaxp4h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15709        return self.emit_n(
15710            Opcode::UMAXP4h as _,
15711            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15712        );
15713    }
15714    fn uminp4h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15715        return self.emit_n(
15716            Opcode::UMINP4h as _,
15717            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15718        );
15719    }
15720    fn umax2s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15721        return self.emit_n(
15722            Opcode::UMAX2s as _,
15723            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15724        );
15725    }
15726    fn umin2s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15727        return self.emit_n(
15728            Opcode::UMIN2s as _,
15729            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15730        );
15731    }
15732    fn umaxp2s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15733        return self.emit_n(
15734            Opcode::UMAXP2s as _,
15735            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15736        );
15737    }
15738    fn uminp2s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15739        return self.emit_n(
15740            Opcode::UMINP2s as _,
15741            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15742        );
15743    }
15744    fn smax16b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15745        return self.emit_n(
15746            Opcode::SMAX16b as _,
15747            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15748        );
15749    }
15750    fn smin16b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15751        return self.emit_n(
15752            Opcode::SMIN16b as _,
15753            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15754        );
15755    }
15756    fn smaxp16b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15757        return self.emit_n(
15758            Opcode::SMAXP16b as _,
15759            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15760        );
15761    }
15762    fn sminp16b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15763        return self.emit_n(
15764            Opcode::SMINP16b as _,
15765            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15766        );
15767    }
15768    fn smax8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15769        return self.emit_n(
15770            Opcode::SMAX8h as _,
15771            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15772        );
15773    }
15774    fn smin8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15775        return self.emit_n(
15776            Opcode::SMIN8h as _,
15777            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15778        );
15779    }
15780    fn smaxp8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15781        return self.emit_n(
15782            Opcode::SMAXP8h as _,
15783            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15784        );
15785    }
15786    fn sminp8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15787        return self.emit_n(
15788            Opcode::SMINP8h as _,
15789            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15790        );
15791    }
15792    fn smax4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15793        return self.emit_n(
15794            Opcode::SMAX4s as _,
15795            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15796        );
15797    }
15798    fn smin4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15799        return self.emit_n(
15800            Opcode::SMIN4s as _,
15801            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15802        );
15803    }
15804    fn smaxp4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15805        return self.emit_n(
15806            Opcode::SMAXP4s as _,
15807            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15808        );
15809    }
15810    fn sminp4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15811        return self.emit_n(
15812            Opcode::SMINP4s as _,
15813            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15814        );
15815    }
15816    fn umax16b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15817        return self.emit_n(
15818            Opcode::UMAX16b as _,
15819            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15820        );
15821    }
15822    fn umin16b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15823        return self.emit_n(
15824            Opcode::UMIN16b as _,
15825            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15826        );
15827    }
15828    fn umaxp16b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15829        return self.emit_n(
15830            Opcode::UMAXP16b as _,
15831            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15832        );
15833    }
15834    fn uminp16b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15835        return self.emit_n(
15836            Opcode::UMINP16b as _,
15837            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15838        );
15839    }
15840    fn umax8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15841        return self.emit_n(
15842            Opcode::UMAX8h as _,
15843            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15844        );
15845    }
15846    fn umin8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15847        return self.emit_n(
15848            Opcode::UMIN8h as _,
15849            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15850        );
15851    }
15852    fn umaxp8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15853        return self.emit_n(
15854            Opcode::UMAXP8h as _,
15855            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15856        );
15857    }
15858    fn uminp8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15859        return self.emit_n(
15860            Opcode::UMINP8h as _,
15861            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15862        );
15863    }
15864    fn umax4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15865        return self.emit_n(
15866            Opcode::UMAX4s as _,
15867            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15868        );
15869    }
15870    fn umin4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15871        return self.emit_n(
15872            Opcode::UMIN4s as _,
15873            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15874        );
15875    }
15876    fn umaxp4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15877        return self.emit_n(
15878            Opcode::UMAXP4s as _,
15879            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15880        );
15881    }
15882    fn uminp4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15883        return self.emit_n(
15884            Opcode::UMINP4s as _,
15885            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15886        );
15887    }
15888    fn sabd8b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15889        return self.emit_n(
15890            Opcode::SABD8b as _,
15891            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15892        );
15893    }
15894    fn saba8b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15895        return self.emit_n(
15896            Opcode::SABA8b as _,
15897            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15898        );
15899    }
15900    fn sabd4h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15901        return self.emit_n(
15902            Opcode::SABD4h as _,
15903            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15904        );
15905    }
15906    fn saba4h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15907        return self.emit_n(
15908            Opcode::SABA4h as _,
15909            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15910        );
15911    }
15912    fn sabd2s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15913        return self.emit_n(
15914            Opcode::SABD2s as _,
15915            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15916        );
15917    }
15918    fn saba2s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15919        return self.emit_n(
15920            Opcode::SABA2s as _,
15921            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15922        );
15923    }
15924    fn uabd8b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15925        return self.emit_n(
15926            Opcode::UABD8b as _,
15927            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15928        );
15929    }
15930    fn uaba8b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15931        return self.emit_n(
15932            Opcode::UABA8b as _,
15933            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15934        );
15935    }
15936    fn uabd4h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15937        return self.emit_n(
15938            Opcode::UABD4h as _,
15939            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15940        );
15941    }
15942    fn uaba4h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15943        return self.emit_n(
15944            Opcode::UABA4h as _,
15945            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15946        );
15947    }
15948    fn uabd2s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15949        return self.emit_n(
15950            Opcode::UABD2s as _,
15951            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15952        );
15953    }
15954    fn uaba2s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15955        return self.emit_n(
15956            Opcode::UABA2s as _,
15957            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15958        );
15959    }
15960    fn sabd16b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15961        return self.emit_n(
15962            Opcode::SABD16b as _,
15963            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15964        );
15965    }
15966    fn saba16b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15967        return self.emit_n(
15968            Opcode::SABA16b as _,
15969            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15970        );
15971    }
15972    fn sabd8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15973        return self.emit_n(
15974            Opcode::SABD8h as _,
15975            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15976        );
15977    }
15978    fn saba8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15979        return self.emit_n(
15980            Opcode::SABA8h as _,
15981            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15982        );
15983    }
15984    fn sabd4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15985        return self.emit_n(
15986            Opcode::SABD4s as _,
15987            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15988        );
15989    }
15990    fn saba4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15991        return self.emit_n(
15992            Opcode::SABA4s as _,
15993            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
15994        );
15995    }
15996    fn uabd16b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
15997        return self.emit_n(
15998            Opcode::UABD16b as _,
15999            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16000        );
16001    }
16002    fn uaba16b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16003        return self.emit_n(
16004            Opcode::UABA16b as _,
16005            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16006        );
16007    }
16008    fn uabd8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16009        return self.emit_n(
16010            Opcode::UABD8h as _,
16011            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16012        );
16013    }
16014    fn uaba8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16015        return self.emit_n(
16016            Opcode::UABA8h as _,
16017            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16018        );
16019    }
16020    fn uabd4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16021        return self.emit_n(
16022            Opcode::UABD4s as _,
16023            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16024        );
16025    }
16026    fn uaba4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16027        return self.emit_n(
16028            Opcode::UABA4s as _,
16029            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16030        );
16031    }
16032    fn addd(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16033        return self.emit_n(
16034            Opcode::ADDd as _,
16035            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16036        );
16037    }
16038    fn subd(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16039        return self.emit_n(
16040            Opcode::SUBd as _,
16041            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16042        );
16043    }
16044    fn add8b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16045        return self.emit_n(
16046            Opcode::ADD8b as _,
16047            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16048        );
16049    }
16050    fn add4h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16051        return self.emit_n(
16052            Opcode::ADD4h as _,
16053            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16054        );
16055    }
16056    fn add2s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16057        return self.emit_n(
16058            Opcode::ADD2s as _,
16059            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16060        );
16061    }
16062    fn sub8b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16063        return self.emit_n(
16064            Opcode::SUB8b as _,
16065            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16066        );
16067    }
16068    fn sub4h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16069        return self.emit_n(
16070            Opcode::SUB4h as _,
16071            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16072        );
16073    }
16074    fn sub2s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16075        return self.emit_n(
16076            Opcode::SUB2s as _,
16077            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16078        );
16079    }
16080    fn add16b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16081        return self.emit_n(
16082            Opcode::ADD16b as _,
16083            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16084        );
16085    }
16086    fn add8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16087        return self.emit_n(
16088            Opcode::ADD8h as _,
16089            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16090        );
16091    }
16092    fn add4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16093        return self.emit_n(
16094            Opcode::ADD4s as _,
16095            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16096        );
16097    }
16098    fn add2d(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16099        return self.emit_n(
16100            Opcode::ADD2d as _,
16101            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16102        );
16103    }
16104    fn sub16b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16105        return self.emit_n(
16106            Opcode::SUB16b as _,
16107            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16108        );
16109    }
16110    fn sub8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16111        return self.emit_n(
16112            Opcode::SUB8h as _,
16113            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16114        );
16115    }
16116    fn sub4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16117        return self.emit_n(
16118            Opcode::SUB4s as _,
16119            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16120        );
16121    }
16122    fn sub2d(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16123        return self.emit_n(
16124            Opcode::SUB2d as _,
16125            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16126        );
16127    }
16128    fn addp8b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16129        return self.emit_n(
16130            Opcode::ADDP8b as _,
16131            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16132        );
16133    }
16134    fn addp4h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16135        return self.emit_n(
16136            Opcode::ADDP4h as _,
16137            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16138        );
16139    }
16140    fn addp2s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16141        return self.emit_n(
16142            Opcode::ADDP2s as _,
16143            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16144        );
16145    }
16146    fn addp16b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16147        return self.emit_n(
16148            Opcode::ADDP16b as _,
16149            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16150        );
16151    }
16152    fn addp8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16153        return self.emit_n(
16154            Opcode::ADDP8h as _,
16155            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16156        );
16157    }
16158    fn addp4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16159        return self.emit_n(
16160            Opcode::ADDP4s as _,
16161            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16162        );
16163    }
16164    fn addp2d(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16165        return self.emit_n(
16166            Opcode::ADDP2d as _,
16167            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16168        );
16169    }
16170    fn mla8b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16171        return self.emit_n(
16172            Opcode::MLA8b as _,
16173            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16174        );
16175    }
16176    fn mul8b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16177        return self.emit_n(
16178            Opcode::MUL8b as _,
16179            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16180        );
16181    }
16182    fn mla4h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16183        return self.emit_n(
16184            Opcode::MLA4h as _,
16185            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16186        );
16187    }
16188    fn mul4h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16189        return self.emit_n(
16190            Opcode::MUL4h as _,
16191            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16192        );
16193    }
16194    fn mla2s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16195        return self.emit_n(
16196            Opcode::MLA2s as _,
16197            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16198        );
16199    }
16200    fn mul2s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16201        return self.emit_n(
16202            Opcode::MUL2s as _,
16203            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16204        );
16205    }
16206    fn mls8b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16207        return self.emit_n(
16208            Opcode::MLS8b as _,
16209            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16210        );
16211    }
16212    fn pmul8b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16213        return self.emit_n(
16214            Opcode::PMUL8b as _,
16215            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16216        );
16217    }
16218    fn mls4h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16219        return self.emit_n(
16220            Opcode::MLS4h as _,
16221            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16222        );
16223    }
16224    fn mls2s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16225        return self.emit_n(
16226            Opcode::MLS2s as _,
16227            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16228        );
16229    }
16230    fn mla16b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16231        return self.emit_n(
16232            Opcode::MLA16b as _,
16233            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16234        );
16235    }
16236    fn mul16b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16237        return self.emit_n(
16238            Opcode::MUL16b as _,
16239            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16240        );
16241    }
16242    fn mla8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16243        return self.emit_n(
16244            Opcode::MLA8h as _,
16245            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16246        );
16247    }
16248    fn mul8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16249        return self.emit_n(
16250            Opcode::MUL8h as _,
16251            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16252        );
16253    }
16254    fn mla4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16255        return self.emit_n(
16256            Opcode::MLA4s as _,
16257            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16258        );
16259    }
16260    fn mul4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16261        return self.emit_n(
16262            Opcode::MUL4s as _,
16263            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16264        );
16265    }
16266    fn mls16b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16267        return self.emit_n(
16268            Opcode::MLS16b as _,
16269            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16270        );
16271    }
16272    fn pmul16b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16273        return self.emit_n(
16274            Opcode::PMUL16b as _,
16275            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16276        );
16277    }
16278    fn mls8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16279        return self.emit_n(
16280            Opcode::MLS8h as _,
16281            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16282        );
16283    }
16284    fn mls4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16285        return self.emit_n(
16286            Opcode::MLS4s as _,
16287            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16288        );
16289    }
16290    fn sqdmulhh(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16291        return self.emit_n(
16292            Opcode::SQDMULHh as _,
16293            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16294        );
16295    }
16296    fn sqdmulhs(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16297        return self.emit_n(
16298            Opcode::SQDMULHs as _,
16299            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16300        );
16301    }
16302    fn sqrdmulhh(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16303        return self.emit_n(
16304            Opcode::SQRDMULHh as _,
16305            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16306        );
16307    }
16308    fn sqrdmulhs(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16309        return self.emit_n(
16310            Opcode::SQRDMULHs as _,
16311            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16312        );
16313    }
16314    fn sqdmulh4h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16315        return self.emit_n(
16316            Opcode::SQDMULH4h as _,
16317            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16318        );
16319    }
16320    fn sqdmulh2s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16321        return self.emit_n(
16322            Opcode::SQDMULH2s as _,
16323            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16324        );
16325    }
16326    fn sqrdmulh4h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16327        return self.emit_n(
16328            Opcode::SQRDMULH4h as _,
16329            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16330        );
16331    }
16332    fn sqrdmulh2s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16333        return self.emit_n(
16334            Opcode::SQRDMULH2s as _,
16335            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16336        );
16337    }
16338    fn sqdmulh8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16339        return self.emit_n(
16340            Opcode::SQDMULH8h as _,
16341            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16342        );
16343    }
16344    fn sqdmulh4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16345        return self.emit_n(
16346            Opcode::SQDMULH4s as _,
16347            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16348        );
16349    }
16350    fn sqrdmulh8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16351        return self.emit_n(
16352            Opcode::SQRDMULH8h as _,
16353            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16354        );
16355    }
16356    fn sqrdmulh4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16357        return self.emit_n(
16358            Opcode::SQRDMULH4s as _,
16359            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16360        );
16361    }
16362    fn fmaxnm2s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16363        return self.emit_n(
16364            Opcode::FMAXNM2s as _,
16365            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16366        );
16367    }
16368    fn fmax2s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16369        return self.emit_n(
16370            Opcode::FMAX2s as _,
16371            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16372        );
16373    }
16374    fn fminnm2s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16375        return self.emit_n(
16376            Opcode::FMINNM2s as _,
16377            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16378        );
16379    }
16380    fn fmin2s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16381        return self.emit_n(
16382            Opcode::FMIN2s as _,
16383            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16384        );
16385    }
16386    fn fmaxnmp2s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16387        return self.emit_n(
16388            Opcode::FMAXNMP2s as _,
16389            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16390        );
16391    }
16392    fn fmaxp2s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16393        return self.emit_n(
16394            Opcode::FMAXP2s as _,
16395            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16396        );
16397    }
16398    fn fminnmp2s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16399        return self.emit_n(
16400            Opcode::FMINNMP2s as _,
16401            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16402        );
16403    }
16404    fn fminp2s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16405        return self.emit_n(
16406            Opcode::FMINP2s as _,
16407            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16408        );
16409    }
16410    fn fmaxnm4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16411        return self.emit_n(
16412            Opcode::FMAXNM4s as _,
16413            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16414        );
16415    }
16416    fn fmax4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16417        return self.emit_n(
16418            Opcode::FMAX4s as _,
16419            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16420        );
16421    }
16422    fn fmaxnm2d(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16423        return self.emit_n(
16424            Opcode::FMAXNM2d as _,
16425            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16426        );
16427    }
16428    fn fmax2d(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16429        return self.emit_n(
16430            Opcode::FMAX2d as _,
16431            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16432        );
16433    }
16434    fn fminnm4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16435        return self.emit_n(
16436            Opcode::FMINNM4s as _,
16437            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16438        );
16439    }
16440    fn fmin4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16441        return self.emit_n(
16442            Opcode::FMIN4s as _,
16443            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16444        );
16445    }
16446    fn fminnm2d(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16447        return self.emit_n(
16448            Opcode::FMINNM2d as _,
16449            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16450        );
16451    }
16452    fn fmin2d(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16453        return self.emit_n(
16454            Opcode::FMIN2d as _,
16455            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16456        );
16457    }
16458    fn fmaxnmp4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16459        return self.emit_n(
16460            Opcode::FMAXNMP4s as _,
16461            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16462        );
16463    }
16464    fn fmaxp4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16465        return self.emit_n(
16466            Opcode::FMAXP4s as _,
16467            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16468        );
16469    }
16470    fn fmaxnmp2d(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16471        return self.emit_n(
16472            Opcode::FMAXNMP2d as _,
16473            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16474        );
16475    }
16476    fn fmaxp2d(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16477        return self.emit_n(
16478            Opcode::FMAXP2d as _,
16479            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16480        );
16481    }
16482    fn fminnmp4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16483        return self.emit_n(
16484            Opcode::FMINNMP4s as _,
16485            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16486        );
16487    }
16488    fn fminp4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16489        return self.emit_n(
16490            Opcode::FMINP4s as _,
16491            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16492        );
16493    }
16494    fn fminnmp2d(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16495        return self.emit_n(
16496            Opcode::FMINNMP2d as _,
16497            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16498        );
16499    }
16500    fn fminp2d(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16501        return self.emit_n(
16502            Opcode::FMINP2d as _,
16503            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16504        );
16505    }
16506    fn fcmeqs(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16507        return self.emit_n(
16508            Opcode::FCMEQs as _,
16509            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16510        );
16511    }
16512    fn fcmeqd(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16513        return self.emit_n(
16514            Opcode::FCMEQd as _,
16515            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16516        );
16517    }
16518    fn fcmges(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16519        return self.emit_n(
16520            Opcode::FCMGEs as _,
16521            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16522        );
16523    }
16524    fn facges(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16525        return self.emit_n(
16526            Opcode::FACGEs as _,
16527            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16528        );
16529    }
16530    fn fcmged(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16531        return self.emit_n(
16532            Opcode::FCMGEd as _,
16533            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16534        );
16535    }
16536    fn facged(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16537        return self.emit_n(
16538            Opcode::FACGEd as _,
16539            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16540        );
16541    }
16542    fn fcmgts(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16543        return self.emit_n(
16544            Opcode::FCMGTs as _,
16545            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16546        );
16547    }
16548    fn facgts(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16549        return self.emit_n(
16550            Opcode::FACGTs as _,
16551            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16552        );
16553    }
16554    fn fcmgtd(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16555        return self.emit_n(
16556            Opcode::FCMGTd as _,
16557            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16558        );
16559    }
16560    fn facgtd(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16561        return self.emit_n(
16562            Opcode::FACGTd as _,
16563            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16564        );
16565    }
16566    fn fcmgts_zero(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
16567        return self.emit_n(
16568            Opcode::FCMGTs_zero as _,
16569            &[rd.as_operand(), rn.as_operand()],
16570        );
16571    }
16572    fn fcmeqs_zero(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
16573        return self.emit_n(
16574            Opcode::FCMEQs_zero as _,
16575            &[rd.as_operand(), rn.as_operand()],
16576        );
16577    }
16578    fn fcmlts_zero(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
16579        return self.emit_n(
16580            Opcode::FCMLTs_zero as _,
16581            &[rd.as_operand(), rn.as_operand()],
16582        );
16583    }
16584    fn fcmgtd_zero(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
16585        return self.emit_n(
16586            Opcode::FCMGTd_zero as _,
16587            &[rd.as_operand(), rn.as_operand()],
16588        );
16589    }
16590    fn fcmeqd_zero(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
16591        return self.emit_n(
16592            Opcode::FCMEQd_zero as _,
16593            &[rd.as_operand(), rn.as_operand()],
16594        );
16595    }
16596    fn fcmltd_zero(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
16597        return self.emit_n(
16598            Opcode::FCMLTd_zero as _,
16599            &[rd.as_operand(), rn.as_operand()],
16600        );
16601    }
16602    fn fcmges_zero(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
16603        return self.emit_n(
16604            Opcode::FCMGEs_zero as _,
16605            &[rd.as_operand(), rn.as_operand()],
16606        );
16607    }
16608    fn fcmles_zero(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
16609        return self.emit_n(
16610            Opcode::FCMLEs_zero as _,
16611            &[rd.as_operand(), rn.as_operand()],
16612        );
16613    }
16614    fn fcmged_zero(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
16615        return self.emit_n(
16616            Opcode::FCMGEd_zero as _,
16617            &[rd.as_operand(), rn.as_operand()],
16618        );
16619    }
16620    fn fcmled_zero(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
16621        return self.emit_n(
16622            Opcode::FCMLEd_zero as _,
16623            &[rd.as_operand(), rn.as_operand()],
16624        );
16625    }
16626    fn fcmeq2s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16627        return self.emit_n(
16628            Opcode::FCMEQ2s as _,
16629            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16630        );
16631    }
16632    fn fcmge2s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16633        return self.emit_n(
16634            Opcode::FCMGE2s as _,
16635            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16636        );
16637    }
16638    fn facge2s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16639        return self.emit_n(
16640            Opcode::FACGE2s as _,
16641            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16642        );
16643    }
16644    fn fcmgt2s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16645        return self.emit_n(
16646            Opcode::FCMGT2s as _,
16647            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16648        );
16649    }
16650    fn facgt2s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16651        return self.emit_n(
16652            Opcode::FACGT2s as _,
16653            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16654        );
16655    }
16656    fn fcmeq4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16657        return self.emit_n(
16658            Opcode::FCMEQ4s as _,
16659            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16660        );
16661    }
16662    fn fcmeq2d(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16663        return self.emit_n(
16664            Opcode::FCMEQ2d as _,
16665            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16666        );
16667    }
16668    fn fcmge4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16669        return self.emit_n(
16670            Opcode::FCMGE4s as _,
16671            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16672        );
16673    }
16674    fn facge4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16675        return self.emit_n(
16676            Opcode::FACGE4s as _,
16677            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16678        );
16679    }
16680    fn fcmge2d(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16681        return self.emit_n(
16682            Opcode::FCMGE2d as _,
16683            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16684        );
16685    }
16686    fn facge2d(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16687        return self.emit_n(
16688            Opcode::FACGE2d as _,
16689            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16690        );
16691    }
16692    fn fcmgt4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16693        return self.emit_n(
16694            Opcode::FCMGT4s as _,
16695            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16696        );
16697    }
16698    fn facgt4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16699        return self.emit_n(
16700            Opcode::FACGT4s as _,
16701            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16702        );
16703    }
16704    fn fcmgt2d(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16705        return self.emit_n(
16706            Opcode::FCMGT2d as _,
16707            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16708        );
16709    }
16710    fn facgt2d(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16711        return self.emit_n(
16712            Opcode::FACGT2d as _,
16713            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16714        );
16715    }
16716    fn fcmgt2s_zero(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
16717        return self.emit_n(
16718            Opcode::FCMGT2s_zero as _,
16719            &[rd.as_operand(), rn.as_operand()],
16720        );
16721    }
16722    fn fcmeq2s_zero(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
16723        return self.emit_n(
16724            Opcode::FCMEQ2s_zero as _,
16725            &[rd.as_operand(), rn.as_operand()],
16726        );
16727    }
16728    fn fcmlt2s_zero(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
16729        return self.emit_n(
16730            Opcode::FCMLT2s_zero as _,
16731            &[rd.as_operand(), rn.as_operand()],
16732        );
16733    }
16734    fn fcmge2s_zero(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
16735        return self.emit_n(
16736            Opcode::FCMGE2s_zero as _,
16737            &[rd.as_operand(), rn.as_operand()],
16738        );
16739    }
16740    fn fcmle2s_zero(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
16741        return self.emit_n(
16742            Opcode::FCMLE2s_zero as _,
16743            &[rd.as_operand(), rn.as_operand()],
16744        );
16745    }
16746    fn fcmgt4s_zero(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
16747        return self.emit_n(
16748            Opcode::FCMGT4s_zero as _,
16749            &[rd.as_operand(), rn.as_operand()],
16750        );
16751    }
16752    fn fcmeq4s_zero(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
16753        return self.emit_n(
16754            Opcode::FCMEQ4s_zero as _,
16755            &[rd.as_operand(), rn.as_operand()],
16756        );
16757    }
16758    fn fcmlt4s_zero(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
16759        return self.emit_n(
16760            Opcode::FCMLT4s_zero as _,
16761            &[rd.as_operand(), rn.as_operand()],
16762        );
16763    }
16764    fn fcmgt2d_zero(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
16765        return self.emit_n(
16766            Opcode::FCMGT2d_zero as _,
16767            &[rd.as_operand(), rn.as_operand()],
16768        );
16769    }
16770    fn fcmeq2d_zero(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
16771        return self.emit_n(
16772            Opcode::FCMEQ2d_zero as _,
16773            &[rd.as_operand(), rn.as_operand()],
16774        );
16775    }
16776    fn fcmlt2d_zero(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
16777        return self.emit_n(
16778            Opcode::FCMLT2d_zero as _,
16779            &[rd.as_operand(), rn.as_operand()],
16780        );
16781    }
16782    fn fcmge4s_zero(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
16783        return self.emit_n(
16784            Opcode::FCMGE4s_zero as _,
16785            &[rd.as_operand(), rn.as_operand()],
16786        );
16787    }
16788    fn fcmle4s_zero(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
16789        return self.emit_n(
16790            Opcode::FCMLE4s_zero as _,
16791            &[rd.as_operand(), rn.as_operand()],
16792        );
16793    }
16794    fn fcmge2d_zero(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
16795        return self.emit_n(
16796            Opcode::FCMGE2d_zero as _,
16797            &[rd.as_operand(), rn.as_operand()],
16798        );
16799    }
16800    fn fcmle2d_zero(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
16801        return self.emit_n(
16802            Opcode::FCMLE2d_zero as _,
16803            &[rd.as_operand(), rn.as_operand()],
16804        );
16805    }
16806    fn fabs2s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
16807        return self.emit_n(Opcode::FABS2s as _, &[rd.as_operand(), rn.as_operand()]);
16808    }
16809    fn fneg2s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
16810        return self.emit_n(Opcode::FNEG2s as _, &[rd.as_operand(), rn.as_operand()]);
16811    }
16812    fn fsqrt2s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
16813        return self.emit_n(Opcode::FSQRT2s as _, &[rd.as_operand(), rn.as_operand()]);
16814    }
16815    fn fabs4s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
16816        return self.emit_n(Opcode::FABS4s as _, &[rd.as_operand(), rn.as_operand()]);
16817    }
16818    fn fabs2d(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
16819        return self.emit_n(Opcode::FABS2d as _, &[rd.as_operand(), rn.as_operand()]);
16820    }
16821    fn fneg4s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
16822        return self.emit_n(Opcode::FNEG4s as _, &[rd.as_operand(), rn.as_operand()]);
16823    }
16824    fn fsqrt4s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
16825        return self.emit_n(Opcode::FSQRT4s as _, &[rd.as_operand(), rn.as_operand()]);
16826    }
16827    fn fneg2d(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
16828        return self.emit_n(Opcode::FNEG2d as _, &[rd.as_operand(), rn.as_operand()]);
16829    }
16830    fn fsqrt2d(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
16831        return self.emit_n(Opcode::FSQRT2d as _, &[rd.as_operand(), rn.as_operand()]);
16832    }
16833    fn fabds(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16834        return self.emit_n(
16835            Opcode::FABDs as _,
16836            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16837        );
16838    }
16839    fn fabdd(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16840        return self.emit_n(
16841            Opcode::FABDd as _,
16842            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16843        );
16844    }
16845    fn fadd2s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16846        return self.emit_n(
16847            Opcode::FADD2s as _,
16848            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16849        );
16850    }
16851    fn fsub2s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16852        return self.emit_n(
16853            Opcode::FSUB2s as _,
16854            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16855        );
16856    }
16857    fn faddp2s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16858        return self.emit_n(
16859            Opcode::FADDP2s as _,
16860            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16861        );
16862    }
16863    fn fabd2s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16864        return self.emit_n(
16865            Opcode::FABD2s as _,
16866            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16867        );
16868    }
16869    fn fadd4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16870        return self.emit_n(
16871            Opcode::FADD4s as _,
16872            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16873        );
16874    }
16875    fn fadd2d(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16876        return self.emit_n(
16877            Opcode::FADD2d as _,
16878            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16879        );
16880    }
16881    fn fsub4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16882        return self.emit_n(
16883            Opcode::FSUB4s as _,
16884            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16885        );
16886    }
16887    fn fsub2d(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16888        return self.emit_n(
16889            Opcode::FSUB2d as _,
16890            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16891        );
16892    }
16893    fn faddp4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16894        return self.emit_n(
16895            Opcode::FADDP4s as _,
16896            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16897        );
16898    }
16899    fn faddp2d(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16900        return self.emit_n(
16901            Opcode::FADDP2d as _,
16902            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16903        );
16904    }
16905    fn fabd4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16906        return self.emit_n(
16907            Opcode::FABD4s as _,
16908            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16909        );
16910    }
16911    fn fabd2d(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16912        return self.emit_n(
16913            Opcode::FABD2d as _,
16914            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16915        );
16916    }
16917    fn frecpes(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
16918        return self.emit_n(Opcode::FRECPEs as _, &[rd.as_operand(), rn.as_operand()]);
16919    }
16920    fn frecpxs(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
16921        return self.emit_n(Opcode::FRECPXs as _, &[rd.as_operand(), rn.as_operand()]);
16922    }
16923    fn frecped(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
16924        return self.emit_n(Opcode::FRECPEd as _, &[rd.as_operand(), rn.as_operand()]);
16925    }
16926    fn frecpxd(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
16927        return self.emit_n(Opcode::FRECPXd as _, &[rd.as_operand(), rn.as_operand()]);
16928    }
16929    fn frsqrtes(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
16930        return self.emit_n(Opcode::FRSQRTEs as _, &[rd.as_operand(), rn.as_operand()]);
16931    }
16932    fn frsqrted(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
16933        return self.emit_n(Opcode::FRSQRTEd as _, &[rd.as_operand(), rn.as_operand()]);
16934    }
16935    fn urecpe2s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
16936        return self.emit_n(Opcode::URECPE2s as _, &[rd.as_operand(), rn.as_operand()]);
16937    }
16938    fn frecpe2s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
16939        return self.emit_n(Opcode::FRECPE2s as _, &[rd.as_operand(), rn.as_operand()]);
16940    }
16941    fn ursqrte2s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
16942        return self.emit_n(Opcode::URSQRTE2s as _, &[rd.as_operand(), rn.as_operand()]);
16943    }
16944    fn frsqrte2s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
16945        return self.emit_n(Opcode::FRSQRTE2s as _, &[rd.as_operand(), rn.as_operand()]);
16946    }
16947    fn urecpe4s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
16948        return self.emit_n(Opcode::URECPE4s as _, &[rd.as_operand(), rn.as_operand()]);
16949    }
16950    fn frecpe4s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
16951        return self.emit_n(Opcode::FRECPE4s as _, &[rd.as_operand(), rn.as_operand()]);
16952    }
16953    fn frecpe2d(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
16954        return self.emit_n(Opcode::FRECPE2d as _, &[rd.as_operand(), rn.as_operand()]);
16955    }
16956    fn ursqrte4s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
16957        return self.emit_n(Opcode::URSQRTE4s as _, &[rd.as_operand(), rn.as_operand()]);
16958    }
16959    fn frsqrte4s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
16960        return self.emit_n(Opcode::FRSQRTE4s as _, &[rd.as_operand(), rn.as_operand()]);
16961    }
16962    fn frsqrte2d(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
16963        return self.emit_n(Opcode::FRSQRTE2d as _, &[rd.as_operand(), rn.as_operand()]);
16964    }
16965    fn frecpss(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16966        return self.emit_n(
16967            Opcode::FRECPSs as _,
16968            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16969        );
16970    }
16971    fn frecpsd(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16972        return self.emit_n(
16973            Opcode::FRECPSd as _,
16974            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16975        );
16976    }
16977    fn frsqrtss(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16978        return self.emit_n(
16979            Opcode::FRSQRTSs as _,
16980            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16981        );
16982    }
16983    fn frsqrtsd(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16984        return self.emit_n(
16985            Opcode::FRSQRTSd as _,
16986            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16987        );
16988    }
16989    fn frecps2s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16990        return self.emit_n(
16991            Opcode::FRECPS2s as _,
16992            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16993        );
16994    }
16995    fn frsqrts2s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
16996        return self.emit_n(
16997            Opcode::FRSQRTS2s as _,
16998            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
16999        );
17000    }
17001    fn frecps4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17002        return self.emit_n(
17003            Opcode::FRECPS4s as _,
17004            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17005        );
17006    }
17007    fn frecps2d(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17008        return self.emit_n(
17009            Opcode::FRECPS2d as _,
17010            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17011        );
17012    }
17013    fn frsqrts4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17014        return self.emit_n(
17015            Opcode::FRSQRTS4s as _,
17016            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17017        );
17018    }
17019    fn frsqrts2d(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17020        return self.emit_n(
17021            Opcode::FRSQRTS2d as _,
17022            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17023        );
17024    }
17025    fn fmulxs(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17026        return self.emit_n(
17027            Opcode::FMULXs as _,
17028            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17029        );
17030    }
17031    fn fmulxd(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17032        return self.emit_n(
17033            Opcode::FMULXd as _,
17034            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17035        );
17036    }
17037    fn fmulx2s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17038        return self.emit_n(
17039            Opcode::FMULX2s as _,
17040            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17041        );
17042    }
17043    fn fmul2s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17044        return self.emit_n(
17045            Opcode::FMUL2s as _,
17046            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17047        );
17048    }
17049    fn fmulx4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17050        return self.emit_n(
17051            Opcode::FMULX4s as _,
17052            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17053        );
17054    }
17055    fn fmulx2d(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17056        return self.emit_n(
17057            Opcode::FMULX2d as _,
17058            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17059        );
17060    }
17061    fn fmul4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17062        return self.emit_n(
17063            Opcode::FMUL4s as _,
17064            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17065        );
17066    }
17067    fn fmul2d(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17068        return self.emit_n(
17069            Opcode::FMUL2d as _,
17070            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17071        );
17072    }
17073    fn fmla2s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17074        return self.emit_n(
17075            Opcode::FMLA2s as _,
17076            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17077        );
17078    }
17079    fn fmls2s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17080        return self.emit_n(
17081            Opcode::FMLS2s as _,
17082            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17083        );
17084    }
17085    fn fmla4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17086        return self.emit_n(
17087            Opcode::FMLA4s as _,
17088            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17089        );
17090    }
17091    fn fmla2d(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17092        return self.emit_n(
17093            Opcode::FMLA2d as _,
17094            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17095        );
17096    }
17097    fn fmls4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17098        return self.emit_n(
17099            Opcode::FMLS4s as _,
17100            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17101        );
17102    }
17103    fn fmls2d(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17104        return self.emit_n(
17105            Opcode::FMLS2d as _,
17106            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17107        );
17108    }
17109    fn fdiv2s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17110        return self.emit_n(
17111            Opcode::FDIV2s as _,
17112            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17113        );
17114    }
17115    fn fdiv4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17116        return self.emit_n(
17117            Opcode::FDIV4s as _,
17118            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17119        );
17120    }
17121    fn fdiv2d(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17122        return self.emit_n(
17123            Opcode::FDIV2d as _,
17124            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17125        );
17126    }
17127    fn fmulxh(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17128        return self.emit_n(
17129            Opcode::FMULXh as _,
17130            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17131        );
17132    }
17133    fn fcmeqh(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17134        return self.emit_n(
17135            Opcode::FCMEQh as _,
17136            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17137        );
17138    }
17139    fn frecpsh(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17140        return self.emit_n(
17141            Opcode::FRECPSh as _,
17142            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17143        );
17144    }
17145    fn frsqrtsh(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17146        return self.emit_n(
17147            Opcode::FRSQRTSh as _,
17148            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17149        );
17150    }
17151    fn fcmgeh(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17152        return self.emit_n(
17153            Opcode::FCMGEh as _,
17154            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17155        );
17156    }
17157    fn facgeh(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17158        return self.emit_n(
17159            Opcode::FACGEh as _,
17160            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17161        );
17162    }
17163    fn fabdh(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17164        return self.emit_n(
17165            Opcode::FABDh as _,
17166            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17167        );
17168    }
17169    fn fcmgth(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17170        return self.emit_n(
17171            Opcode::FCMGTh as _,
17172            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17173        );
17174    }
17175    fn facgth(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17176        return self.emit_n(
17177            Opcode::FACGTh as _,
17178            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17179        );
17180    }
17181    fn fmaxnm4h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17182        return self.emit_n(
17183            Opcode::FMAXNM4h as _,
17184            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17185        );
17186    }
17187    fn fmla4h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17188        return self.emit_n(
17189            Opcode::FMLA4h as _,
17190            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17191        );
17192    }
17193    fn fadd4h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17194        return self.emit_n(
17195            Opcode::FADD4h as _,
17196            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17197        );
17198    }
17199    fn fmulx4h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17200        return self.emit_n(
17201            Opcode::FMULX4h as _,
17202            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17203        );
17204    }
17205    fn fcmeq4h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17206        return self.emit_n(
17207            Opcode::FCMEQ4h as _,
17208            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17209        );
17210    }
17211    fn fmax4h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17212        return self.emit_n(
17213            Opcode::FMAX4h as _,
17214            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17215        );
17216    }
17217    fn frecps4h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17218        return self.emit_n(
17219            Opcode::FRECPS4h as _,
17220            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17221        );
17222    }
17223    fn fminnm4h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17224        return self.emit_n(
17225            Opcode::FMINNM4h as _,
17226            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17227        );
17228    }
17229    fn fmls4h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17230        return self.emit_n(
17231            Opcode::FMLS4h as _,
17232            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17233        );
17234    }
17235    fn fsub4h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17236        return self.emit_n(
17237            Opcode::FSUB4h as _,
17238            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17239        );
17240    }
17241    fn fmin4h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17242        return self.emit_n(
17243            Opcode::FMIN4h as _,
17244            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17245        );
17246    }
17247    fn frsqrts4h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17248        return self.emit_n(
17249            Opcode::FRSQRTS4h as _,
17250            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17251        );
17252    }
17253    fn fmaxnmp4h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17254        return self.emit_n(
17255            Opcode::FMAXNMP4h as _,
17256            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17257        );
17258    }
17259    fn faddp4h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17260        return self.emit_n(
17261            Opcode::FADDP4h as _,
17262            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17263        );
17264    }
17265    fn fmul4h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17266        return self.emit_n(
17267            Opcode::FMUL4h as _,
17268            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17269        );
17270    }
17271    fn fcmge4h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17272        return self.emit_n(
17273            Opcode::FCMGE4h as _,
17274            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17275        );
17276    }
17277    fn facge4h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17278        return self.emit_n(
17279            Opcode::FACGE4h as _,
17280            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17281        );
17282    }
17283    fn fmaxp4h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17284        return self.emit_n(
17285            Opcode::FMAXP4h as _,
17286            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17287        );
17288    }
17289    fn fdiv4h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17290        return self.emit_n(
17291            Opcode::FDIV4h as _,
17292            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17293        );
17294    }
17295    fn fminnmp4h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17296        return self.emit_n(
17297            Opcode::FMINNMP4h as _,
17298            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17299        );
17300    }
17301    fn fabd4h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17302        return self.emit_n(
17303            Opcode::FABD4h as _,
17304            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17305        );
17306    }
17307    fn fcmgt4h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17308        return self.emit_n(
17309            Opcode::FCMGT4h as _,
17310            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17311        );
17312    }
17313    fn facgt4h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17314        return self.emit_n(
17315            Opcode::FACGT4h as _,
17316            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17317        );
17318    }
17319    fn fminp4h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17320        return self.emit_n(
17321            Opcode::FMINP4h as _,
17322            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17323        );
17324    }
17325    fn fmaxnm8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17326        return self.emit_n(
17327            Opcode::FMAXNM8h as _,
17328            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17329        );
17330    }
17331    fn fmla8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17332        return self.emit_n(
17333            Opcode::FMLA8h as _,
17334            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17335        );
17336    }
17337    fn fadd8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17338        return self.emit_n(
17339            Opcode::FADD8h as _,
17340            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17341        );
17342    }
17343    fn fmulx8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17344        return self.emit_n(
17345            Opcode::FMULX8h as _,
17346            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17347        );
17348    }
17349    fn fcmeq8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17350        return self.emit_n(
17351            Opcode::FCMEQ8h as _,
17352            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17353        );
17354    }
17355    fn fmax8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17356        return self.emit_n(
17357            Opcode::FMAX8h as _,
17358            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17359        );
17360    }
17361    fn frecps8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17362        return self.emit_n(
17363            Opcode::FRECPS8h as _,
17364            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17365        );
17366    }
17367    fn fminnm8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17368        return self.emit_n(
17369            Opcode::FMINNM8h as _,
17370            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17371        );
17372    }
17373    fn fmls8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17374        return self.emit_n(
17375            Opcode::FMLS8h as _,
17376            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17377        );
17378    }
17379    fn fsub8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17380        return self.emit_n(
17381            Opcode::FSUB8h as _,
17382            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17383        );
17384    }
17385    fn fmin8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17386        return self.emit_n(
17387            Opcode::FMIN8h as _,
17388            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17389        );
17390    }
17391    fn frsqrts8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17392        return self.emit_n(
17393            Opcode::FRSQRTS8h as _,
17394            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17395        );
17396    }
17397    fn fmaxnmp8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17398        return self.emit_n(
17399            Opcode::FMAXNMP8h as _,
17400            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17401        );
17402    }
17403    fn faddp8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17404        return self.emit_n(
17405            Opcode::FADDP8h as _,
17406            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17407        );
17408    }
17409    fn fmul8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17410        return self.emit_n(
17411            Opcode::FMUL8h as _,
17412            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17413        );
17414    }
17415    fn fcmge8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17416        return self.emit_n(
17417            Opcode::FCMGE8h as _,
17418            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17419        );
17420    }
17421    fn facge8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17422        return self.emit_n(
17423            Opcode::FACGE8h as _,
17424            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17425        );
17426    }
17427    fn fmaxp8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17428        return self.emit_n(
17429            Opcode::FMAXP8h as _,
17430            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17431        );
17432    }
17433    fn fdiv8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17434        return self.emit_n(
17435            Opcode::FDIV8h as _,
17436            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17437        );
17438    }
17439    fn fminnmp8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17440        return self.emit_n(
17441            Opcode::FMINNMP8h as _,
17442            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17443        );
17444    }
17445    fn fabd8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17446        return self.emit_n(
17447            Opcode::FABD8h as _,
17448            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17449        );
17450    }
17451    fn fcmgt8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17452        return self.emit_n(
17453            Opcode::FCMGT8h as _,
17454            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17455        );
17456    }
17457    fn facgt8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17458        return self.emit_n(
17459            Opcode::FACGT8h as _,
17460            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17461        );
17462    }
17463    fn fminp8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17464        return self.emit_n(
17465            Opcode::FMINP8h as _,
17466            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17467        );
17468    }
17469    fn fcvtnsh(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
17470        return self.emit_n(Opcode::FCVTNSh as _, &[rd.as_operand(), rn.as_operand()]);
17471    }
17472    fn fcvtmsh(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
17473        return self.emit_n(Opcode::FCVTMSh as _, &[rd.as_operand(), rn.as_operand()]);
17474    }
17475    fn fcvtash(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
17476        return self.emit_n(Opcode::FCVTASh as _, &[rd.as_operand(), rn.as_operand()]);
17477    }
17478    fn scvtfh(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
17479        return self.emit_n(Opcode::SCVTFh as _, &[rd.as_operand(), rn.as_operand()]);
17480    }
17481    fn fcmgth_zero(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
17482        return self.emit_n(
17483            Opcode::FCMGTh_zero as _,
17484            &[rd.as_operand(), rn.as_operand()],
17485        );
17486    }
17487    fn fcmeqh_zero(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
17488        return self.emit_n(
17489            Opcode::FCMEQh_zero as _,
17490            &[rd.as_operand(), rn.as_operand()],
17491        );
17492    }
17493    fn fcmlth_zero(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
17494        return self.emit_n(
17495            Opcode::FCMLTh_zero as _,
17496            &[rd.as_operand(), rn.as_operand()],
17497        );
17498    }
17499    fn fcvtpsh(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
17500        return self.emit_n(Opcode::FCVTPSh as _, &[rd.as_operand(), rn.as_operand()]);
17501    }
17502    fn fcvtzsh(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
17503        return self.emit_n(Opcode::FCVTZSh as _, &[rd.as_operand(), rn.as_operand()]);
17504    }
17505    fn frecpeh(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
17506        return self.emit_n(Opcode::FRECPEh as _, &[rd.as_operand(), rn.as_operand()]);
17507    }
17508    fn frecpxh(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
17509        return self.emit_n(Opcode::FRECPXh as _, &[rd.as_operand(), rn.as_operand()]);
17510    }
17511    fn fcvtnuh(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
17512        return self.emit_n(Opcode::FCVTNUh as _, &[rd.as_operand(), rn.as_operand()]);
17513    }
17514    fn fcvtmuh(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
17515        return self.emit_n(Opcode::FCVTMUh as _, &[rd.as_operand(), rn.as_operand()]);
17516    }
17517    fn fcvtauh(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
17518        return self.emit_n(Opcode::FCVTAUh as _, &[rd.as_operand(), rn.as_operand()]);
17519    }
17520    fn ucvtfh(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
17521        return self.emit_n(Opcode::UCVTFh as _, &[rd.as_operand(), rn.as_operand()]);
17522    }
17523    fn fcmgeh_zero(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
17524        return self.emit_n(
17525            Opcode::FCMGEh_zero as _,
17526            &[rd.as_operand(), rn.as_operand()],
17527        );
17528    }
17529    fn fcmleh_zero(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
17530        return self.emit_n(
17531            Opcode::FCMLEh_zero as _,
17532            &[rd.as_operand(), rn.as_operand()],
17533        );
17534    }
17535    fn fcvtpuh(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
17536        return self.emit_n(Opcode::FCVTPUh as _, &[rd.as_operand(), rn.as_operand()]);
17537    }
17538    fn fcvtzuh(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
17539        return self.emit_n(Opcode::FCVTZUh as _, &[rd.as_operand(), rn.as_operand()]);
17540    }
17541    fn frsqrteh(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
17542        return self.emit_n(Opcode::FRSQRTEh as _, &[rd.as_operand(), rn.as_operand()]);
17543    }
17544    fn frintn4h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
17545        return self.emit_n(Opcode::FRINTN4h as _, &[rd.as_operand(), rn.as_operand()]);
17546    }
17547    fn frintm4h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
17548        return self.emit_n(Opcode::FRINTM4h as _, &[rd.as_operand(), rn.as_operand()]);
17549    }
17550    fn fcvtns4h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
17551        return self.emit_n(Opcode::FCVTNS4h as _, &[rd.as_operand(), rn.as_operand()]);
17552    }
17553    fn fcvtms4h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
17554        return self.emit_n(Opcode::FCVTMS4h as _, &[rd.as_operand(), rn.as_operand()]);
17555    }
17556    fn fcvtas4h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
17557        return self.emit_n(Opcode::FCVTAS4h as _, &[rd.as_operand(), rn.as_operand()]);
17558    }
17559    fn scvtf4h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
17560        return self.emit_n(Opcode::SCVTF4h as _, &[rd.as_operand(), rn.as_operand()]);
17561    }
17562    fn fcmgt4h_zero(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
17563        return self.emit_n(
17564            Opcode::FCMGT4h_zero as _,
17565            &[rd.as_operand(), rn.as_operand()],
17566        );
17567    }
17568    fn fcmeq4h_zero(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
17569        return self.emit_n(
17570            Opcode::FCMEQ4h_zero as _,
17571            &[rd.as_operand(), rn.as_operand()],
17572        );
17573    }
17574    fn fcmlt4h_zero(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
17575        return self.emit_n(
17576            Opcode::FCMLT4h_zero as _,
17577            &[rd.as_operand(), rn.as_operand()],
17578        );
17579    }
17580    fn fabs4h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
17581        return self.emit_n(Opcode::FABS4h as _, &[rd.as_operand(), rn.as_operand()]);
17582    }
17583    fn frintp4h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
17584        return self.emit_n(Opcode::FRINTP4h as _, &[rd.as_operand(), rn.as_operand()]);
17585    }
17586    fn frintz4h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
17587        return self.emit_n(Opcode::FRINTZ4h as _, &[rd.as_operand(), rn.as_operand()]);
17588    }
17589    fn fcvtps4h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
17590        return self.emit_n(Opcode::FCVTPS4h as _, &[rd.as_operand(), rn.as_operand()]);
17591    }
17592    fn fcvtzs4h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
17593        return self.emit_n(Opcode::FCVTZS4h as _, &[rd.as_operand(), rn.as_operand()]);
17594    }
17595    fn frecpe4h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
17596        return self.emit_n(Opcode::FRECPE4h as _, &[rd.as_operand(), rn.as_operand()]);
17597    }
17598    fn frinta4h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
17599        return self.emit_n(Opcode::FRINTA4h as _, &[rd.as_operand(), rn.as_operand()]);
17600    }
17601    fn frintx4h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
17602        return self.emit_n(Opcode::FRINTX4h as _, &[rd.as_operand(), rn.as_operand()]);
17603    }
17604    fn fcvtnu4h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
17605        return self.emit_n(Opcode::FCVTNU4h as _, &[rd.as_operand(), rn.as_operand()]);
17606    }
17607    fn fcvtmu4h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
17608        return self.emit_n(Opcode::FCVTMU4h as _, &[rd.as_operand(), rn.as_operand()]);
17609    }
17610    fn fcvtau4h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
17611        return self.emit_n(Opcode::FCVTAU4h as _, &[rd.as_operand(), rn.as_operand()]);
17612    }
17613    fn ucvtf4h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
17614        return self.emit_n(Opcode::UCVTF4h as _, &[rd.as_operand(), rn.as_operand()]);
17615    }
17616    fn fcmge4h_zero(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
17617        return self.emit_n(
17618            Opcode::FCMGE4h_zero as _,
17619            &[rd.as_operand(), rn.as_operand()],
17620        );
17621    }
17622    fn fcmle4h_zero(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
17623        return self.emit_n(
17624            Opcode::FCMLE4h_zero as _,
17625            &[rd.as_operand(), rn.as_operand()],
17626        );
17627    }
17628    fn fneg4h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
17629        return self.emit_n(Opcode::FNEG4h as _, &[rd.as_operand(), rn.as_operand()]);
17630    }
17631    fn frinti4h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
17632        return self.emit_n(Opcode::FRINTI4h as _, &[rd.as_operand(), rn.as_operand()]);
17633    }
17634    fn fcvtpu4h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
17635        return self.emit_n(Opcode::FCVTPU4h as _, &[rd.as_operand(), rn.as_operand()]);
17636    }
17637    fn fcvtzu4h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
17638        return self.emit_n(Opcode::FCVTZU4h as _, &[rd.as_operand(), rn.as_operand()]);
17639    }
17640    fn frsqrte4h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
17641        return self.emit_n(Opcode::FRSQRTE4h as _, &[rd.as_operand(), rn.as_operand()]);
17642    }
17643    fn fsqrt4h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
17644        return self.emit_n(Opcode::FSQRT4h as _, &[rd.as_operand(), rn.as_operand()]);
17645    }
17646    fn frintn8h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
17647        return self.emit_n(Opcode::FRINTN8h as _, &[rd.as_operand(), rn.as_operand()]);
17648    }
17649    fn frintm8h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
17650        return self.emit_n(Opcode::FRINTM8h as _, &[rd.as_operand(), rn.as_operand()]);
17651    }
17652    fn fcvtns8h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
17653        return self.emit_n(Opcode::FCVTNS8h as _, &[rd.as_operand(), rn.as_operand()]);
17654    }
17655    fn fcvtms8h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
17656        return self.emit_n(Opcode::FCVTMS8h as _, &[rd.as_operand(), rn.as_operand()]);
17657    }
17658    fn fcvtas8h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
17659        return self.emit_n(Opcode::FCVTAS8h as _, &[rd.as_operand(), rn.as_operand()]);
17660    }
17661    fn scvtf8h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
17662        return self.emit_n(Opcode::SCVTF8h as _, &[rd.as_operand(), rn.as_operand()]);
17663    }
17664    fn fcmgt8h_zero(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
17665        return self.emit_n(
17666            Opcode::FCMGT8h_zero as _,
17667            &[rd.as_operand(), rn.as_operand()],
17668        );
17669    }
17670    fn fcmeq8h_zero(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
17671        return self.emit_n(
17672            Opcode::FCMEQ8h_zero as _,
17673            &[rd.as_operand(), rn.as_operand()],
17674        );
17675    }
17676    fn fcmlt8h_zero(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
17677        return self.emit_n(
17678            Opcode::FCMLT8h_zero as _,
17679            &[rd.as_operand(), rn.as_operand()],
17680        );
17681    }
17682    fn fabs8h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
17683        return self.emit_n(Opcode::FABS8h as _, &[rd.as_operand(), rn.as_operand()]);
17684    }
17685    fn frintp8h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
17686        return self.emit_n(Opcode::FRINTP8h as _, &[rd.as_operand(), rn.as_operand()]);
17687    }
17688    fn frintz8h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
17689        return self.emit_n(Opcode::FRINTZ8h as _, &[rd.as_operand(), rn.as_operand()]);
17690    }
17691    fn fcvtps8h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
17692        return self.emit_n(Opcode::FCVTPS8h as _, &[rd.as_operand(), rn.as_operand()]);
17693    }
17694    fn fcvtzs8h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
17695        return self.emit_n(Opcode::FCVTZS8h as _, &[rd.as_operand(), rn.as_operand()]);
17696    }
17697    fn frecpe8h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
17698        return self.emit_n(Opcode::FRECPE8h as _, &[rd.as_operand(), rn.as_operand()]);
17699    }
17700    fn frinta8h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
17701        return self.emit_n(Opcode::FRINTA8h as _, &[rd.as_operand(), rn.as_operand()]);
17702    }
17703    fn frintx8h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
17704        return self.emit_n(Opcode::FRINTX8h as _, &[rd.as_operand(), rn.as_operand()]);
17705    }
17706    fn fcvtnu8h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
17707        return self.emit_n(Opcode::FCVTNU8h as _, &[rd.as_operand(), rn.as_operand()]);
17708    }
17709    fn fcvtmu8h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
17710        return self.emit_n(Opcode::FCVTMU8h as _, &[rd.as_operand(), rn.as_operand()]);
17711    }
17712    fn fcvtau8h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
17713        return self.emit_n(Opcode::FCVTAU8h as _, &[rd.as_operand(), rn.as_operand()]);
17714    }
17715    fn ucvtf8h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
17716        return self.emit_n(Opcode::UCVTF8h as _, &[rd.as_operand(), rn.as_operand()]);
17717    }
17718    fn fcmge8h_zero(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
17719        return self.emit_n(
17720            Opcode::FCMGE8h_zero as _,
17721            &[rd.as_operand(), rn.as_operand()],
17722        );
17723    }
17724    fn fcmle8h_zero(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
17725        return self.emit_n(
17726            Opcode::FCMLE8h_zero as _,
17727            &[rd.as_operand(), rn.as_operand()],
17728        );
17729    }
17730    fn fneg8h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
17731        return self.emit_n(Opcode::FNEG8h as _, &[rd.as_operand(), rn.as_operand()]);
17732    }
17733    fn frinti8h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
17734        return self.emit_n(Opcode::FRINTI8h as _, &[rd.as_operand(), rn.as_operand()]);
17735    }
17736    fn fcvtpu8h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
17737        return self.emit_n(Opcode::FCVTPU8h as _, &[rd.as_operand(), rn.as_operand()]);
17738    }
17739    fn fcvtzu8h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
17740        return self.emit_n(Opcode::FCVTZU8h as _, &[rd.as_operand(), rn.as_operand()]);
17741    }
17742    fn frsqrte8h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
17743        return self.emit_n(Opcode::FRSQRTE8h as _, &[rd.as_operand(), rn.as_operand()]);
17744    }
17745    fn fsqrt8h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
17746        return self.emit_n(Opcode::FSQRT8h as _, &[rd.as_operand(), rn.as_operand()]);
17747    }
17748    fn and8b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17749        return self.emit_n(
17750            Opcode::AND8b as _,
17751            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17752        );
17753    }
17754    fn bic8b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17755        return self.emit_n(
17756            Opcode::BIC8b as _,
17757            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17758        );
17759    }
17760    fn orr8b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17761        return self.emit_n(
17762            Opcode::ORR8b as _,
17763            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17764        );
17765    }
17766    fn orn8b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17767        return self.emit_n(
17768            Opcode::ORN8b as _,
17769            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17770        );
17771    }
17772    fn eor8b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17773        return self.emit_n(
17774            Opcode::EOR8b as _,
17775            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17776        );
17777    }
17778    fn bsl8b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17779        return self.emit_n(
17780            Opcode::BSL8b as _,
17781            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17782        );
17783    }
17784    fn bit8b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17785        return self.emit_n(
17786            Opcode::BIT8b as _,
17787            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17788        );
17789    }
17790    fn bif8b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17791        return self.emit_n(
17792            Opcode::BIF8b as _,
17793            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17794        );
17795    }
17796    fn and16b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17797        return self.emit_n(
17798            Opcode::AND16b as _,
17799            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17800        );
17801    }
17802    fn bic16b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17803        return self.emit_n(
17804            Opcode::BIC16b as _,
17805            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17806        );
17807    }
17808    fn orr16b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17809        return self.emit_n(
17810            Opcode::ORR16b as _,
17811            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17812        );
17813    }
17814    fn orn16b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17815        return self.emit_n(
17816            Opcode::ORN16b as _,
17817            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17818        );
17819    }
17820    fn eor16b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17821        return self.emit_n(
17822            Opcode::EOR16b as _,
17823            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17824        );
17825    }
17826    fn bsl16b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17827        return self.emit_n(
17828            Opcode::BSL16b as _,
17829            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17830        );
17831    }
17832    fn bit16b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17833        return self.emit_n(
17834            Opcode::BIT16b as _,
17835            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17836        );
17837    }
17838    fn bif16b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17839        return self.emit_n(
17840            Opcode::BIF16b as _,
17841            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17842        );
17843    }
17844    fn mov8b(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
17845        return self.emit_n(Opcode::MOV8b as _, &[rd.as_operand(), rn.as_operand()]);
17846    }
17847    fn mov16b(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
17848        return self.emit_n(Opcode::MOV16b as _, &[rd.as_operand(), rn.as_operand()]);
17849    }
17850    fn saddl_8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17851        return self.emit_n(
17852            Opcode::SADDL_8h as _,
17853            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17854        );
17855    }
17856    fn ssubl_8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17857        return self.emit_n(
17858            Opcode::SSUBL_8h as _,
17859            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17860        );
17861    }
17862    fn saddl_4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17863        return self.emit_n(
17864            Opcode::SADDL_4s as _,
17865            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17866        );
17867    }
17868    fn ssubl_4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17869        return self.emit_n(
17870            Opcode::SSUBL_4s as _,
17871            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17872        );
17873    }
17874    fn saddl_2d(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17875        return self.emit_n(
17876            Opcode::SADDL_2d as _,
17877            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17878        );
17879    }
17880    fn ssubl_2d(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17881        return self.emit_n(
17882            Opcode::SSUBL_2d as _,
17883            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17884        );
17885    }
17886    fn uaddl_8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17887        return self.emit_n(
17888            Opcode::UADDL_8h as _,
17889            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17890        );
17891    }
17892    fn usubl_8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17893        return self.emit_n(
17894            Opcode::USUBL_8h as _,
17895            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17896        );
17897    }
17898    fn uaddl_4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17899        return self.emit_n(
17900            Opcode::UADDL_4s as _,
17901            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17902        );
17903    }
17904    fn usubl_4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17905        return self.emit_n(
17906            Opcode::USUBL_4s as _,
17907            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17908        );
17909    }
17910    fn uaddl_2d(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17911        return self.emit_n(
17912            Opcode::UADDL_2d as _,
17913            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17914        );
17915    }
17916    fn usubl_2d(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17917        return self.emit_n(
17918            Opcode::USUBL_2d as _,
17919            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17920        );
17921    }
17922    fn saddl2_8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17923        return self.emit_n(
17924            Opcode::SADDL2_8h as _,
17925            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17926        );
17927    }
17928    fn ssubl2_8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17929        return self.emit_n(
17930            Opcode::SSUBL2_8h as _,
17931            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17932        );
17933    }
17934    fn saddl2_4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17935        return self.emit_n(
17936            Opcode::SADDL2_4s as _,
17937            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17938        );
17939    }
17940    fn ssubl2_4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17941        return self.emit_n(
17942            Opcode::SSUBL2_4s as _,
17943            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17944        );
17945    }
17946    fn saddl2_2d(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17947        return self.emit_n(
17948            Opcode::SADDL2_2d as _,
17949            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17950        );
17951    }
17952    fn ssubl2_2d(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17953        return self.emit_n(
17954            Opcode::SSUBL2_2d as _,
17955            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17956        );
17957    }
17958    fn uaddl2_8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17959        return self.emit_n(
17960            Opcode::UADDL2_8h as _,
17961            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17962        );
17963    }
17964    fn usubl2_8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17965        return self.emit_n(
17966            Opcode::USUBL2_8h as _,
17967            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17968        );
17969    }
17970    fn uaddl2_4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17971        return self.emit_n(
17972            Opcode::UADDL2_4s as _,
17973            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17974        );
17975    }
17976    fn usubl2_4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17977        return self.emit_n(
17978            Opcode::USUBL2_4s as _,
17979            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17980        );
17981    }
17982    fn uaddl2_2d(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17983        return self.emit_n(
17984            Opcode::UADDL2_2d as _,
17985            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17986        );
17987    }
17988    fn usubl2_2d(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17989        return self.emit_n(
17990            Opcode::USUBL2_2d as _,
17991            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17992        );
17993    }
17994    fn saddw_8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
17995        return self.emit_n(
17996            Opcode::SADDW_8h as _,
17997            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
17998        );
17999    }
18000    fn ssubw_8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18001        return self.emit_n(
18002            Opcode::SSUBW_8h as _,
18003            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18004        );
18005    }
18006    fn saddw_4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18007        return self.emit_n(
18008            Opcode::SADDW_4s as _,
18009            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18010        );
18011    }
18012    fn ssubw_4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18013        return self.emit_n(
18014            Opcode::SSUBW_4s as _,
18015            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18016        );
18017    }
18018    fn saddw_2d(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18019        return self.emit_n(
18020            Opcode::SADDW_2d as _,
18021            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18022        );
18023    }
18024    fn ssubw_2d(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18025        return self.emit_n(
18026            Opcode::SSUBW_2d as _,
18027            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18028        );
18029    }
18030    fn uaddw_8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18031        return self.emit_n(
18032            Opcode::UADDW_8h as _,
18033            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18034        );
18035    }
18036    fn usubw_8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18037        return self.emit_n(
18038            Opcode::USUBW_8h as _,
18039            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18040        );
18041    }
18042    fn uaddw_4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18043        return self.emit_n(
18044            Opcode::UADDW_4s as _,
18045            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18046        );
18047    }
18048    fn usubw_4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18049        return self.emit_n(
18050            Opcode::USUBW_4s as _,
18051            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18052        );
18053    }
18054    fn uaddw_2d(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18055        return self.emit_n(
18056            Opcode::UADDW_2d as _,
18057            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18058        );
18059    }
18060    fn usubw_2d(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18061        return self.emit_n(
18062            Opcode::USUBW_2d as _,
18063            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18064        );
18065    }
18066    fn saddw2_8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18067        return self.emit_n(
18068            Opcode::SADDW2_8h as _,
18069            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18070        );
18071    }
18072    fn ssubw2_8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18073        return self.emit_n(
18074            Opcode::SSUBW2_8h as _,
18075            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18076        );
18077    }
18078    fn saddw2_4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18079        return self.emit_n(
18080            Opcode::SADDW2_4s as _,
18081            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18082        );
18083    }
18084    fn ssubw2_4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18085        return self.emit_n(
18086            Opcode::SSUBW2_4s as _,
18087            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18088        );
18089    }
18090    fn saddw2_2d(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18091        return self.emit_n(
18092            Opcode::SADDW2_2d as _,
18093            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18094        );
18095    }
18096    fn ssubw2_2d(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18097        return self.emit_n(
18098            Opcode::SSUBW2_2d as _,
18099            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18100        );
18101    }
18102    fn uaddw2_8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18103        return self.emit_n(
18104            Opcode::UADDW2_8h as _,
18105            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18106        );
18107    }
18108    fn usubw2_8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18109        return self.emit_n(
18110            Opcode::USUBW2_8h as _,
18111            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18112        );
18113    }
18114    fn uaddw2_4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18115        return self.emit_n(
18116            Opcode::UADDW2_4s as _,
18117            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18118        );
18119    }
18120    fn usubw2_4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18121        return self.emit_n(
18122            Opcode::USUBW2_4s as _,
18123            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18124        );
18125    }
18126    fn uaddw2_2d(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18127        return self.emit_n(
18128            Opcode::UADDW2_2d as _,
18129            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18130        );
18131    }
18132    fn usubw2_2d(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18133        return self.emit_n(
18134            Opcode::USUBW2_2d as _,
18135            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18136        );
18137    }
18138    fn addhn_8b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18139        return self.emit_n(
18140            Opcode::ADDHN_8b as _,
18141            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18142        );
18143    }
18144    fn subhn_8b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18145        return self.emit_n(
18146            Opcode::SUBHN_8b as _,
18147            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18148        );
18149    }
18150    fn addhn_4h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18151        return self.emit_n(
18152            Opcode::ADDHN_4h as _,
18153            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18154        );
18155    }
18156    fn subhn_4h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18157        return self.emit_n(
18158            Opcode::SUBHN_4h as _,
18159            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18160        );
18161    }
18162    fn addhn_2s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18163        return self.emit_n(
18164            Opcode::ADDHN_2s as _,
18165            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18166        );
18167    }
18168    fn subhn_2s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18169        return self.emit_n(
18170            Opcode::SUBHN_2s as _,
18171            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18172        );
18173    }
18174    fn raddhn_8b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18175        return self.emit_n(
18176            Opcode::RADDHN_8b as _,
18177            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18178        );
18179    }
18180    fn rsubhn_8b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18181        return self.emit_n(
18182            Opcode::RSUBHN_8b as _,
18183            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18184        );
18185    }
18186    fn raddhn_4h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18187        return self.emit_n(
18188            Opcode::RADDHN_4h as _,
18189            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18190        );
18191    }
18192    fn rsubhn_4h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18193        return self.emit_n(
18194            Opcode::RSUBHN_4h as _,
18195            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18196        );
18197    }
18198    fn raddhn_2s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18199        return self.emit_n(
18200            Opcode::RADDHN_2s as _,
18201            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18202        );
18203    }
18204    fn rsubhn_2s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18205        return self.emit_n(
18206            Opcode::RSUBHN_2s as _,
18207            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18208        );
18209    }
18210    fn addhn2_16b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18211        return self.emit_n(
18212            Opcode::ADDHN2_16b as _,
18213            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18214        );
18215    }
18216    fn subhn2_16b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18217        return self.emit_n(
18218            Opcode::SUBHN2_16b as _,
18219            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18220        );
18221    }
18222    fn addhn2_8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18223        return self.emit_n(
18224            Opcode::ADDHN2_8h as _,
18225            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18226        );
18227    }
18228    fn subhn2_8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18229        return self.emit_n(
18230            Opcode::SUBHN2_8h as _,
18231            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18232        );
18233    }
18234    fn addhn2_4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18235        return self.emit_n(
18236            Opcode::ADDHN2_4s as _,
18237            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18238        );
18239    }
18240    fn subhn2_4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18241        return self.emit_n(
18242            Opcode::SUBHN2_4s as _,
18243            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18244        );
18245    }
18246    fn raddhn2_16b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18247        return self.emit_n(
18248            Opcode::RADDHN2_16b as _,
18249            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18250        );
18251    }
18252    fn rsubhn2_16b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18253        return self.emit_n(
18254            Opcode::RSUBHN2_16b as _,
18255            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18256        );
18257    }
18258    fn raddhn2_8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18259        return self.emit_n(
18260            Opcode::RADDHN2_8h as _,
18261            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18262        );
18263    }
18264    fn rsubhn2_8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18265        return self.emit_n(
18266            Opcode::RSUBHN2_8h as _,
18267            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18268        );
18269    }
18270    fn raddhn2_4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18271        return self.emit_n(
18272            Opcode::RADDHN2_4s as _,
18273            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18274        );
18275    }
18276    fn rsubhn2_4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18277        return self.emit_n(
18278            Opcode::RSUBHN2_4s as _,
18279            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18280        );
18281    }
18282    fn sabal_8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18283        return self.emit_n(
18284            Opcode::SABAL_8h as _,
18285            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18286        );
18287    }
18288    fn sabdl_8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18289        return self.emit_n(
18290            Opcode::SABDL_8h as _,
18291            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18292        );
18293    }
18294    fn sabal_4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18295        return self.emit_n(
18296            Opcode::SABAL_4s as _,
18297            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18298        );
18299    }
18300    fn sabdl_4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18301        return self.emit_n(
18302            Opcode::SABDL_4s as _,
18303            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18304        );
18305    }
18306    fn sabal_2d(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18307        return self.emit_n(
18308            Opcode::SABAL_2d as _,
18309            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18310        );
18311    }
18312    fn sabdl_2d(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18313        return self.emit_n(
18314            Opcode::SABDL_2d as _,
18315            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18316        );
18317    }
18318    fn uabal_8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18319        return self.emit_n(
18320            Opcode::UABAL_8h as _,
18321            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18322        );
18323    }
18324    fn uabdl_8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18325        return self.emit_n(
18326            Opcode::UABDL_8h as _,
18327            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18328        );
18329    }
18330    fn uabal_4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18331        return self.emit_n(
18332            Opcode::UABAL_4s as _,
18333            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18334        );
18335    }
18336    fn uabdl_4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18337        return self.emit_n(
18338            Opcode::UABDL_4s as _,
18339            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18340        );
18341    }
18342    fn uabal_2d(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18343        return self.emit_n(
18344            Opcode::UABAL_2d as _,
18345            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18346        );
18347    }
18348    fn uabdl_2d(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18349        return self.emit_n(
18350            Opcode::UABDL_2d as _,
18351            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18352        );
18353    }
18354    fn sabal2_8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18355        return self.emit_n(
18356            Opcode::SABAL2_8h as _,
18357            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18358        );
18359    }
18360    fn sabdl2_8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18361        return self.emit_n(
18362            Opcode::SABDL2_8h as _,
18363            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18364        );
18365    }
18366    fn sabal2_4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18367        return self.emit_n(
18368            Opcode::SABAL2_4s as _,
18369            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18370        );
18371    }
18372    fn sabdl2_4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18373        return self.emit_n(
18374            Opcode::SABDL2_4s as _,
18375            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18376        );
18377    }
18378    fn sabal2_2d(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18379        return self.emit_n(
18380            Opcode::SABAL2_2d as _,
18381            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18382        );
18383    }
18384    fn sabdl2_2d(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18385        return self.emit_n(
18386            Opcode::SABDL2_2d as _,
18387            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18388        );
18389    }
18390    fn uabal2_8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18391        return self.emit_n(
18392            Opcode::UABAL2_8h as _,
18393            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18394        );
18395    }
18396    fn uabdl2_8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18397        return self.emit_n(
18398            Opcode::UABDL2_8h as _,
18399            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18400        );
18401    }
18402    fn uabal2_4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18403        return self.emit_n(
18404            Opcode::UABAL2_4s as _,
18405            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18406        );
18407    }
18408    fn uabdl2_4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18409        return self.emit_n(
18410            Opcode::UABDL2_4s as _,
18411            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18412        );
18413    }
18414    fn uabal2_2d(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18415        return self.emit_n(
18416            Opcode::UABAL2_2d as _,
18417            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18418        );
18419    }
18420    fn uabdl2_2d(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18421        return self.emit_n(
18422            Opcode::UABDL2_2d as _,
18423            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18424        );
18425    }
18426    fn smlal_8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18427        return self.emit_n(
18428            Opcode::SMLAL_8h as _,
18429            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18430        );
18431    }
18432    fn smlsl_8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18433        return self.emit_n(
18434            Opcode::SMLSL_8h as _,
18435            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18436        );
18437    }
18438    fn smull_8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18439        return self.emit_n(
18440            Opcode::SMULL_8h as _,
18441            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18442        );
18443    }
18444    fn smlal_4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18445        return self.emit_n(
18446            Opcode::SMLAL_4s as _,
18447            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18448        );
18449    }
18450    fn smlsl_4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18451        return self.emit_n(
18452            Opcode::SMLSL_4s as _,
18453            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18454        );
18455    }
18456    fn smull_4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18457        return self.emit_n(
18458            Opcode::SMULL_4s as _,
18459            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18460        );
18461    }
18462    fn smlal_2d(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18463        return self.emit_n(
18464            Opcode::SMLAL_2d as _,
18465            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18466        );
18467    }
18468    fn smlsl_2d(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18469        return self.emit_n(
18470            Opcode::SMLSL_2d as _,
18471            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18472        );
18473    }
18474    fn smull_2d(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18475        return self.emit_n(
18476            Opcode::SMULL_2d as _,
18477            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18478        );
18479    }
18480    fn umlal_8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18481        return self.emit_n(
18482            Opcode::UMLAL_8h as _,
18483            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18484        );
18485    }
18486    fn umlsl_8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18487        return self.emit_n(
18488            Opcode::UMLSL_8h as _,
18489            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18490        );
18491    }
18492    fn umull_8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18493        return self.emit_n(
18494            Opcode::UMULL_8h as _,
18495            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18496        );
18497    }
18498    fn umlal_4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18499        return self.emit_n(
18500            Opcode::UMLAL_4s as _,
18501            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18502        );
18503    }
18504    fn umlsl_4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18505        return self.emit_n(
18506            Opcode::UMLSL_4s as _,
18507            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18508        );
18509    }
18510    fn umull_4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18511        return self.emit_n(
18512            Opcode::UMULL_4s as _,
18513            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18514        );
18515    }
18516    fn umlal_2d(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18517        return self.emit_n(
18518            Opcode::UMLAL_2d as _,
18519            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18520        );
18521    }
18522    fn umlsl_2d(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18523        return self.emit_n(
18524            Opcode::UMLSL_2d as _,
18525            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18526        );
18527    }
18528    fn umull_2d(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18529        return self.emit_n(
18530            Opcode::UMULL_2d as _,
18531            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18532        );
18533    }
18534    fn smlal2_8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18535        return self.emit_n(
18536            Opcode::SMLAL2_8h as _,
18537            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18538        );
18539    }
18540    fn smlsl2_8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18541        return self.emit_n(
18542            Opcode::SMLSL2_8h as _,
18543            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18544        );
18545    }
18546    fn smull2_8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18547        return self.emit_n(
18548            Opcode::SMULL2_8h as _,
18549            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18550        );
18551    }
18552    fn smlal2_4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18553        return self.emit_n(
18554            Opcode::SMLAL2_4s as _,
18555            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18556        );
18557    }
18558    fn smlsl2_4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18559        return self.emit_n(
18560            Opcode::SMLSL2_4s as _,
18561            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18562        );
18563    }
18564    fn smull2_4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18565        return self.emit_n(
18566            Opcode::SMULL2_4s as _,
18567            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18568        );
18569    }
18570    fn smlal2_2d(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18571        return self.emit_n(
18572            Opcode::SMLAL2_2d as _,
18573            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18574        );
18575    }
18576    fn smlsl2_2d(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18577        return self.emit_n(
18578            Opcode::SMLSL2_2d as _,
18579            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18580        );
18581    }
18582    fn smull2_2d(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18583        return self.emit_n(
18584            Opcode::SMULL2_2d as _,
18585            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18586        );
18587    }
18588    fn umlal2_8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18589        return self.emit_n(
18590            Opcode::UMLAL2_8h as _,
18591            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18592        );
18593    }
18594    fn umlsl2_8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18595        return self.emit_n(
18596            Opcode::UMLSL2_8h as _,
18597            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18598        );
18599    }
18600    fn umull2_8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18601        return self.emit_n(
18602            Opcode::UMULL2_8h as _,
18603            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18604        );
18605    }
18606    fn umlal2_4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18607        return self.emit_n(
18608            Opcode::UMLAL2_4s as _,
18609            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18610        );
18611    }
18612    fn umlsl2_4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18613        return self.emit_n(
18614            Opcode::UMLSL2_4s as _,
18615            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18616        );
18617    }
18618    fn umull2_4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18619        return self.emit_n(
18620            Opcode::UMULL2_4s as _,
18621            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18622        );
18623    }
18624    fn umlal2_2d(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18625        return self.emit_n(
18626            Opcode::UMLAL2_2d as _,
18627            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18628        );
18629    }
18630    fn umlsl2_2d(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18631        return self.emit_n(
18632            Opcode::UMLSL2_2d as _,
18633            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18634        );
18635    }
18636    fn umull2_2d(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18637        return self.emit_n(
18638            Opcode::UMULL2_2d as _,
18639            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18640        );
18641    }
18642    fn sqdmlals(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18643        return self.emit_n(
18644            Opcode::SQDMLALs as _,
18645            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18646        );
18647    }
18648    fn sqdmlsls(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18649        return self.emit_n(
18650            Opcode::SQDMLSLs as _,
18651            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18652        );
18653    }
18654    fn sqdmulls(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18655        return self.emit_n(
18656            Opcode::SQDMULLs as _,
18657            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18658        );
18659    }
18660    fn sqdmlald(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18661        return self.emit_n(
18662            Opcode::SQDMLALd as _,
18663            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18664        );
18665    }
18666    fn sqdmlsld(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18667        return self.emit_n(
18668            Opcode::SQDMLSLd as _,
18669            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18670        );
18671    }
18672    fn sqdmulld(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18673        return self.emit_n(
18674            Opcode::SQDMULLd as _,
18675            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18676        );
18677    }
18678    fn sqdmlal_4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18679        return self.emit_n(
18680            Opcode::SQDMLAL_4s as _,
18681            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18682        );
18683    }
18684    fn sqdmlsl_4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18685        return self.emit_n(
18686            Opcode::SQDMLSL_4s as _,
18687            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18688        );
18689    }
18690    fn sqdmull_4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18691        return self.emit_n(
18692            Opcode::SQDMULL_4s as _,
18693            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18694        );
18695    }
18696    fn sqdmlal_2d(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18697        return self.emit_n(
18698            Opcode::SQDMLAL_2d as _,
18699            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18700        );
18701    }
18702    fn sqdmlsl_2d(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18703        return self.emit_n(
18704            Opcode::SQDMLSL_2d as _,
18705            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18706        );
18707    }
18708    fn sqdmull_2d(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18709        return self.emit_n(
18710            Opcode::SQDMULL_2d as _,
18711            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18712        );
18713    }
18714    fn sqdmlal2_4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18715        return self.emit_n(
18716            Opcode::SQDMLAL2_4s as _,
18717            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18718        );
18719    }
18720    fn sqdmlsl2_4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18721        return self.emit_n(
18722            Opcode::SQDMLSL2_4s as _,
18723            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18724        );
18725    }
18726    fn sqdmull2_4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18727        return self.emit_n(
18728            Opcode::SQDMULL2_4s as _,
18729            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18730        );
18731    }
18732    fn sqdmlal2_2d(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18733        return self.emit_n(
18734            Opcode::SQDMLAL2_2d as _,
18735            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18736        );
18737    }
18738    fn sqdmlsl2_2d(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18739        return self.emit_n(
18740            Opcode::SQDMLSL2_2d as _,
18741            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18742        );
18743    }
18744    fn sqdmull2_2d(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18745        return self.emit_n(
18746            Opcode::SQDMULL2_2d as _,
18747            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18748        );
18749    }
18750    fn pmull_8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18751        return self.emit_n(
18752            Opcode::PMULL_8h as _,
18753            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18754        );
18755    }
18756    fn pmull_1q(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18757        return self.emit_n(
18758            Opcode::PMULL_1q as _,
18759            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18760        );
18761    }
18762    fn pmull2_8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18763        return self.emit_n(
18764            Opcode::PMULL2_8h as _,
18765            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18766        );
18767    }
18768    fn pmull2_1q(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18769        return self.emit_n(
18770            Opcode::PMULL2_1q as _,
18771            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18772        );
18773    }
18774    fn sqrdmlah_scalarh(
18775        &mut self,
18776        rd: impl OperandCast,
18777        rn: impl OperandCast,
18778        rm: impl OperandCast,
18779    ) {
18780        return self.emit_n(
18781            Opcode::SQRDMLAH_SCALARh as _,
18782            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18783        );
18784    }
18785    fn sqrdmlsh_scalarh(
18786        &mut self,
18787        rd: impl OperandCast,
18788        rn: impl OperandCast,
18789        rm: impl OperandCast,
18790    ) {
18791        return self.emit_n(
18792            Opcode::SQRDMLSH_SCALARh as _,
18793            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18794        );
18795    }
18796    fn sqrdmlah_scalars(
18797        &mut self,
18798        rd: impl OperandCast,
18799        rn: impl OperandCast,
18800        rm: impl OperandCast,
18801    ) {
18802        return self.emit_n(
18803            Opcode::SQRDMLAH_SCALARs as _,
18804            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18805        );
18806    }
18807    fn sqrdmlsh_scalars(
18808        &mut self,
18809        rd: impl OperandCast,
18810        rn: impl OperandCast,
18811        rm: impl OperandCast,
18812    ) {
18813        return self.emit_n(
18814            Opcode::SQRDMLSH_SCALARs as _,
18815            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18816        );
18817    }
18818    fn sqrdmlah4h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18819        return self.emit_n(
18820            Opcode::SQRDMLAH4h as _,
18821            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18822        );
18823    }
18824    fn sqrdmlsh4h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18825        return self.emit_n(
18826            Opcode::SQRDMLSH4h as _,
18827            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18828        );
18829    }
18830    fn sqrdmlah2s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18831        return self.emit_n(
18832            Opcode::SQRDMLAH2s as _,
18833            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18834        );
18835    }
18836    fn sqrdmlsh2s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18837        return self.emit_n(
18838            Opcode::SQRDMLSH2s as _,
18839            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18840        );
18841    }
18842    fn sqrdmlah8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18843        return self.emit_n(
18844            Opcode::SQRDMLAH8h as _,
18845            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18846        );
18847    }
18848    fn sqrdmlsh8h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18849        return self.emit_n(
18850            Opcode::SQRDMLSH8h as _,
18851            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18852        );
18853    }
18854    fn sqrdmlah4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18855        return self.emit_n(
18856            Opcode::SQRDMLAH4s as _,
18857            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18858        );
18859    }
18860    fn sqrdmlsh4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
18861        return self.emit_n(
18862            Opcode::SQRDMLSH4s as _,
18863            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
18864        );
18865    }
18866    fn sshrd(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
18867        return self.emit_n(
18868            Opcode::SSHRd as _,
18869            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
18870        );
18871    }
18872    fn ssrad(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
18873        return self.emit_n(
18874            Opcode::SSRAd as _,
18875            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
18876        );
18877    }
18878    fn srshrd(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
18879        return self.emit_n(
18880            Opcode::SRSHRd as _,
18881            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
18882        );
18883    }
18884    fn srsrad(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
18885        return self.emit_n(
18886            Opcode::SRSRAd as _,
18887            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
18888        );
18889    }
18890    fn ushrd(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
18891        return self.emit_n(
18892            Opcode::USHRd as _,
18893            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
18894        );
18895    }
18896    fn usrad(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
18897        return self.emit_n(
18898            Opcode::USRAd as _,
18899            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
18900        );
18901    }
18902    fn urshrd(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
18903        return self.emit_n(
18904            Opcode::URSHRd as _,
18905            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
18906        );
18907    }
18908    fn ursrad(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
18909        return self.emit_n(
18910            Opcode::URSRAd as _,
18911            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
18912        );
18913    }
18914    fn sshr8bi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
18915        return self.emit_n(
18916            Opcode::SSHR8bi as _,
18917            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
18918        );
18919    }
18920    fn ssra8bi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
18921        return self.emit_n(
18922            Opcode::SSRA8bi as _,
18923            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
18924        );
18925    }
18926    fn srshr8bi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
18927        return self.emit_n(
18928            Opcode::SRSHR8bi as _,
18929            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
18930        );
18931    }
18932    fn srsra8bi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
18933        return self.emit_n(
18934            Opcode::SRSRA8bi as _,
18935            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
18936        );
18937    }
18938    fn sshr4hi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
18939        return self.emit_n(
18940            Opcode::SSHR4hi as _,
18941            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
18942        );
18943    }
18944    fn ssra4hi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
18945        return self.emit_n(
18946            Opcode::SSRA4hi as _,
18947            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
18948        );
18949    }
18950    fn srshr4hi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
18951        return self.emit_n(
18952            Opcode::SRSHR4hi as _,
18953            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
18954        );
18955    }
18956    fn srsra4hi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
18957        return self.emit_n(
18958            Opcode::SRSRA4hi as _,
18959            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
18960        );
18961    }
18962    fn sshr2si(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
18963        return self.emit_n(
18964            Opcode::SSHR2si as _,
18965            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
18966        );
18967    }
18968    fn ssra2si(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
18969        return self.emit_n(
18970            Opcode::SSRA2si as _,
18971            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
18972        );
18973    }
18974    fn srshr2si(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
18975        return self.emit_n(
18976            Opcode::SRSHR2si as _,
18977            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
18978        );
18979    }
18980    fn srsra2si(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
18981        return self.emit_n(
18982            Opcode::SRSRA2si as _,
18983            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
18984        );
18985    }
18986    fn ushr8bi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
18987        return self.emit_n(
18988            Opcode::USHR8bi as _,
18989            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
18990        );
18991    }
18992    fn usra8bi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
18993        return self.emit_n(
18994            Opcode::USRA8bi as _,
18995            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
18996        );
18997    }
18998    fn urshr8bi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
18999        return self.emit_n(
19000            Opcode::URSHR8bi as _,
19001            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19002        );
19003    }
19004    fn ursra8bi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19005        return self.emit_n(
19006            Opcode::URSRA8bi as _,
19007            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19008        );
19009    }
19010    fn ushr4hi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19011        return self.emit_n(
19012            Opcode::USHR4hi as _,
19013            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19014        );
19015    }
19016    fn usra4hi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19017        return self.emit_n(
19018            Opcode::USRA4hi as _,
19019            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19020        );
19021    }
19022    fn urshr4hi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19023        return self.emit_n(
19024            Opcode::URSHR4hi as _,
19025            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19026        );
19027    }
19028    fn ursra4hi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19029        return self.emit_n(
19030            Opcode::URSRA4hi as _,
19031            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19032        );
19033    }
19034    fn ushr2si(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19035        return self.emit_n(
19036            Opcode::USHR2si as _,
19037            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19038        );
19039    }
19040    fn usra2si(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19041        return self.emit_n(
19042            Opcode::USRA2si as _,
19043            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19044        );
19045    }
19046    fn urshr2si(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19047        return self.emit_n(
19048            Opcode::URSHR2si as _,
19049            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19050        );
19051    }
19052    fn ursra2si(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19053        return self.emit_n(
19054            Opcode::URSRA2si as _,
19055            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19056        );
19057    }
19058    fn sshr16bi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19059        return self.emit_n(
19060            Opcode::SSHR16bi as _,
19061            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19062        );
19063    }
19064    fn ssra16bi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19065        return self.emit_n(
19066            Opcode::SSRA16bi as _,
19067            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19068        );
19069    }
19070    fn srshr16bi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19071        return self.emit_n(
19072            Opcode::SRSHR16bi as _,
19073            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19074        );
19075    }
19076    fn srsra16bi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19077        return self.emit_n(
19078            Opcode::SRSRA16bi as _,
19079            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19080        );
19081    }
19082    fn sshr8hi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19083        return self.emit_n(
19084            Opcode::SSHR8hi as _,
19085            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19086        );
19087    }
19088    fn ssra8hi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19089        return self.emit_n(
19090            Opcode::SSRA8hi as _,
19091            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19092        );
19093    }
19094    fn srshr8hi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19095        return self.emit_n(
19096            Opcode::SRSHR8hi as _,
19097            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19098        );
19099    }
19100    fn srsra8hi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19101        return self.emit_n(
19102            Opcode::SRSRA8hi as _,
19103            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19104        );
19105    }
19106    fn sshr4si(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19107        return self.emit_n(
19108            Opcode::SSHR4si as _,
19109            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19110        );
19111    }
19112    fn ssra4si(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19113        return self.emit_n(
19114            Opcode::SSRA4si as _,
19115            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19116        );
19117    }
19118    fn srshr4si(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19119        return self.emit_n(
19120            Opcode::SRSHR4si as _,
19121            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19122        );
19123    }
19124    fn srsra4si(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19125        return self.emit_n(
19126            Opcode::SRSRA4si as _,
19127            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19128        );
19129    }
19130    fn sshr2di(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19131        return self.emit_n(
19132            Opcode::SSHR2di as _,
19133            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19134        );
19135    }
19136    fn ssra2di(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19137        return self.emit_n(
19138            Opcode::SSRA2di as _,
19139            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19140        );
19141    }
19142    fn srshr2di(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19143        return self.emit_n(
19144            Opcode::SRSHR2di as _,
19145            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19146        );
19147    }
19148    fn srsra2di(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19149        return self.emit_n(
19150            Opcode::SRSRA2di as _,
19151            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19152        );
19153    }
19154    fn ushr16bi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19155        return self.emit_n(
19156            Opcode::USHR16bi as _,
19157            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19158        );
19159    }
19160    fn usra16bi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19161        return self.emit_n(
19162            Opcode::USRA16bi as _,
19163            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19164        );
19165    }
19166    fn urshr16bi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19167        return self.emit_n(
19168            Opcode::URSHR16bi as _,
19169            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19170        );
19171    }
19172    fn ursra16bi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19173        return self.emit_n(
19174            Opcode::URSRA16bi as _,
19175            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19176        );
19177    }
19178    fn ushr8hi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19179        return self.emit_n(
19180            Opcode::USHR8hi as _,
19181            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19182        );
19183    }
19184    fn usra8hi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19185        return self.emit_n(
19186            Opcode::USRA8hi as _,
19187            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19188        );
19189    }
19190    fn urshr8hi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19191        return self.emit_n(
19192            Opcode::URSHR8hi as _,
19193            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19194        );
19195    }
19196    fn ursra8hi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19197        return self.emit_n(
19198            Opcode::URSRA8hi as _,
19199            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19200        );
19201    }
19202    fn ushr4si(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19203        return self.emit_n(
19204            Opcode::USHR4si as _,
19205            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19206        );
19207    }
19208    fn usra4si(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19209        return self.emit_n(
19210            Opcode::USRA4si as _,
19211            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19212        );
19213    }
19214    fn urshr4si(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19215        return self.emit_n(
19216            Opcode::URSHR4si as _,
19217            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19218        );
19219    }
19220    fn ursra4si(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19221        return self.emit_n(
19222            Opcode::URSRA4si as _,
19223            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19224        );
19225    }
19226    fn ushr2di(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19227        return self.emit_n(
19228            Opcode::USHR2di as _,
19229            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19230        );
19231    }
19232    fn usra2di(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19233        return self.emit_n(
19234            Opcode::USRA2di as _,
19235            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19236        );
19237    }
19238    fn urshr2di(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19239        return self.emit_n(
19240            Opcode::URSHR2di as _,
19241            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19242        );
19243    }
19244    fn ursra2di(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19245        return self.emit_n(
19246            Opcode::URSRA2di as _,
19247            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19248        );
19249    }
19250    fn sqshlbi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19251        return self.emit_n(
19252            Opcode::SQSHLbi as _,
19253            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19254        );
19255    }
19256    fn sqshlhi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19257        return self.emit_n(
19258            Opcode::SQSHLhi as _,
19259            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19260        );
19261    }
19262    fn sqshlsi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19263        return self.emit_n(
19264            Opcode::SQSHLsi as _,
19265            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19266        );
19267    }
19268    fn sqshldi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19269        return self.emit_n(
19270            Opcode::SQSHLdi as _,
19271            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19272        );
19273    }
19274    fn sqshlubi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19275        return self.emit_n(
19276            Opcode::SQSHLUbi as _,
19277            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19278        );
19279    }
19280    fn uqshlbi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19281        return self.emit_n(
19282            Opcode::UQSHLbi as _,
19283            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19284        );
19285    }
19286    fn sqshluhi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19287        return self.emit_n(
19288            Opcode::SQSHLUhi as _,
19289            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19290        );
19291    }
19292    fn uqshlhi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19293        return self.emit_n(
19294            Opcode::UQSHLhi as _,
19295            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19296        );
19297    }
19298    fn sqshlusi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19299        return self.emit_n(
19300            Opcode::SQSHLUsi as _,
19301            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19302        );
19303    }
19304    fn uqshlsi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19305        return self.emit_n(
19306            Opcode::UQSHLsi as _,
19307            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19308        );
19309    }
19310    fn sqshludi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19311        return self.emit_n(
19312            Opcode::SQSHLUdi as _,
19313            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19314        );
19315    }
19316    fn uqshldi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19317        return self.emit_n(
19318            Opcode::UQSHLdi as _,
19319            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19320        );
19321    }
19322    fn sqshl8bi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19323        return self.emit_n(
19324            Opcode::SQSHL8bi as _,
19325            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19326        );
19327    }
19328    fn sqshl4hi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19329        return self.emit_n(
19330            Opcode::SQSHL4hi as _,
19331            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19332        );
19333    }
19334    fn sqshl2si(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19335        return self.emit_n(
19336            Opcode::SQSHL2si as _,
19337            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19338        );
19339    }
19340    fn sqshlu8bi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19341        return self.emit_n(
19342            Opcode::SQSHLU8bi as _,
19343            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19344        );
19345    }
19346    fn uqshl8bi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19347        return self.emit_n(
19348            Opcode::UQSHL8bi as _,
19349            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19350        );
19351    }
19352    fn sqshlu4hi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19353        return self.emit_n(
19354            Opcode::SQSHLU4hi as _,
19355            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19356        );
19357    }
19358    fn uqshl4hi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19359        return self.emit_n(
19360            Opcode::UQSHL4hi as _,
19361            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19362        );
19363    }
19364    fn sqshlu2si(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19365        return self.emit_n(
19366            Opcode::SQSHLU2si as _,
19367            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19368        );
19369    }
19370    fn uqshl2si(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19371        return self.emit_n(
19372            Opcode::UQSHL2si as _,
19373            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19374        );
19375    }
19376    fn sqshl16bi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19377        return self.emit_n(
19378            Opcode::SQSHL16bi as _,
19379            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19380        );
19381    }
19382    fn sqshl8hi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19383        return self.emit_n(
19384            Opcode::SQSHL8hi as _,
19385            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19386        );
19387    }
19388    fn sqshl4si(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19389        return self.emit_n(
19390            Opcode::SQSHL4si as _,
19391            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19392        );
19393    }
19394    fn sqshl2di(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19395        return self.emit_n(
19396            Opcode::SQSHL2di as _,
19397            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19398        );
19399    }
19400    fn sqshlu16bi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19401        return self.emit_n(
19402            Opcode::SQSHLU16bi as _,
19403            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19404        );
19405    }
19406    fn uqshl16bi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19407        return self.emit_n(
19408            Opcode::UQSHL16bi as _,
19409            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19410        );
19411    }
19412    fn sqshlu8hi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19413        return self.emit_n(
19414            Opcode::SQSHLU8hi as _,
19415            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19416        );
19417    }
19418    fn uqshl8hi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19419        return self.emit_n(
19420            Opcode::UQSHL8hi as _,
19421            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19422        );
19423    }
19424    fn sqshlu4si(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19425        return self.emit_n(
19426            Opcode::SQSHLU4si as _,
19427            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19428        );
19429    }
19430    fn uqshl4si(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19431        return self.emit_n(
19432            Opcode::UQSHL4si as _,
19433            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19434        );
19435    }
19436    fn sqshlu2di(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19437        return self.emit_n(
19438            Opcode::SQSHLU2di as _,
19439            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19440        );
19441    }
19442    fn uqshl2di(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19443        return self.emit_n(
19444            Opcode::UQSHL2di as _,
19445            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19446        );
19447    }
19448    fn sqshrnbi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19449        return self.emit_n(
19450            Opcode::SQSHRNbi as _,
19451            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19452        );
19453    }
19454    fn sqrshrnbi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19455        return self.emit_n(
19456            Opcode::SQRSHRNbi as _,
19457            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19458        );
19459    }
19460    fn sqshrnhi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19461        return self.emit_n(
19462            Opcode::SQSHRNhi as _,
19463            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19464        );
19465    }
19466    fn sqrshrnhi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19467        return self.emit_n(
19468            Opcode::SQRSHRNhi as _,
19469            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19470        );
19471    }
19472    fn sqshrnsi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19473        return self.emit_n(
19474            Opcode::SQSHRNsi as _,
19475            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19476        );
19477    }
19478    fn sqrshrnsi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19479        return self.emit_n(
19480            Opcode::SQRSHRNsi as _,
19481            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19482        );
19483    }
19484    fn sqshrunbi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19485        return self.emit_n(
19486            Opcode::SQSHRUNbi as _,
19487            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19488        );
19489    }
19490    fn sqrshrunbi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19491        return self.emit_n(
19492            Opcode::SQRSHRUNbi as _,
19493            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19494        );
19495    }
19496    fn uqshrnbi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19497        return self.emit_n(
19498            Opcode::UQSHRNbi as _,
19499            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19500        );
19501    }
19502    fn uqrshrnbi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19503        return self.emit_n(
19504            Opcode::UQRSHRNbi as _,
19505            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19506        );
19507    }
19508    fn sqshrunhi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19509        return self.emit_n(
19510            Opcode::SQSHRUNhi as _,
19511            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19512        );
19513    }
19514    fn sqrshrunhi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19515        return self.emit_n(
19516            Opcode::SQRSHRUNhi as _,
19517            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19518        );
19519    }
19520    fn uqshrnhi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19521        return self.emit_n(
19522            Opcode::UQSHRNhi as _,
19523            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19524        );
19525    }
19526    fn uqrshrnhi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19527        return self.emit_n(
19528            Opcode::UQRSHRNhi as _,
19529            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19530        );
19531    }
19532    fn sqshrunsi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19533        return self.emit_n(
19534            Opcode::SQSHRUNsi as _,
19535            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19536        );
19537    }
19538    fn sqrshrunsi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19539        return self.emit_n(
19540            Opcode::SQRSHRUNsi as _,
19541            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19542        );
19543    }
19544    fn uqshrnsi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19545        return self.emit_n(
19546            Opcode::UQSHRNsi as _,
19547            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19548        );
19549    }
19550    fn uqrshrnsi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19551        return self.emit_n(
19552            Opcode::UQRSHRNsi as _,
19553            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19554        );
19555    }
19556    fn shrn_8bi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19557        return self.emit_n(
19558            Opcode::SHRN_8bi as _,
19559            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19560        );
19561    }
19562    fn rshrn_8bi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19563        return self.emit_n(
19564            Opcode::RSHRN_8bi as _,
19565            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19566        );
19567    }
19568    fn sqshrn_8bi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19569        return self.emit_n(
19570            Opcode::SQSHRN_8bi as _,
19571            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19572        );
19573    }
19574    fn sqrshrn_8bi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19575        return self.emit_n(
19576            Opcode::SQRSHRN_8bi as _,
19577            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19578        );
19579    }
19580    fn shrn_4hi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19581        return self.emit_n(
19582            Opcode::SHRN_4hi as _,
19583            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19584        );
19585    }
19586    fn rshrn_4hi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19587        return self.emit_n(
19588            Opcode::RSHRN_4hi as _,
19589            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19590        );
19591    }
19592    fn sqshrn_4hi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19593        return self.emit_n(
19594            Opcode::SQSHRN_4hi as _,
19595            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19596        );
19597    }
19598    fn sqrshrn_4hi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19599        return self.emit_n(
19600            Opcode::SQRSHRN_4hi as _,
19601            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19602        );
19603    }
19604    fn shrn_2si(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19605        return self.emit_n(
19606            Opcode::SHRN_2si as _,
19607            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19608        );
19609    }
19610    fn rshrn_2si(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19611        return self.emit_n(
19612            Opcode::RSHRN_2si as _,
19613            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19614        );
19615    }
19616    fn sqshrn_2si(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19617        return self.emit_n(
19618            Opcode::SQSHRN_2si as _,
19619            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19620        );
19621    }
19622    fn sqrshrn_2si(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19623        return self.emit_n(
19624            Opcode::SQRSHRN_2si as _,
19625            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19626        );
19627    }
19628    fn sqshrun_8bi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19629        return self.emit_n(
19630            Opcode::SQSHRUN_8bi as _,
19631            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19632        );
19633    }
19634    fn sqrshrun_8bi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19635        return self.emit_n(
19636            Opcode::SQRSHRUN_8bi as _,
19637            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19638        );
19639    }
19640    fn uqshrn_8bi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19641        return self.emit_n(
19642            Opcode::UQSHRN_8bi as _,
19643            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19644        );
19645    }
19646    fn uqrshrn_8bi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19647        return self.emit_n(
19648            Opcode::UQRSHRN_8bi as _,
19649            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19650        );
19651    }
19652    fn sqshrun_4hi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19653        return self.emit_n(
19654            Opcode::SQSHRUN_4hi as _,
19655            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19656        );
19657    }
19658    fn sqrshrun_4hi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19659        return self.emit_n(
19660            Opcode::SQRSHRUN_4hi as _,
19661            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19662        );
19663    }
19664    fn uqshrn_4hi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19665        return self.emit_n(
19666            Opcode::UQSHRN_4hi as _,
19667            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19668        );
19669    }
19670    fn uqrshrn_4hi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19671        return self.emit_n(
19672            Opcode::UQRSHRN_4hi as _,
19673            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19674        );
19675    }
19676    fn sqshrun_2si(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19677        return self.emit_n(
19678            Opcode::SQSHRUN_2si as _,
19679            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19680        );
19681    }
19682    fn sqrshrun_2si(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19683        return self.emit_n(
19684            Opcode::SQRSHRUN_2si as _,
19685            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19686        );
19687    }
19688    fn uqshrn_2si(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19689        return self.emit_n(
19690            Opcode::UQSHRN_2si as _,
19691            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19692        );
19693    }
19694    fn uqrshrn_2si(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19695        return self.emit_n(
19696            Opcode::UQRSHRN_2si as _,
19697            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19698        );
19699    }
19700    fn shrn2_16bi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19701        return self.emit_n(
19702            Opcode::SHRN2_16bi as _,
19703            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19704        );
19705    }
19706    fn rshrn2_16bi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19707        return self.emit_n(
19708            Opcode::RSHRN2_16bi as _,
19709            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19710        );
19711    }
19712    fn sqshrn2_16bi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19713        return self.emit_n(
19714            Opcode::SQSHRN2_16bi as _,
19715            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19716        );
19717    }
19718    fn sqrshrn2_16bi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19719        return self.emit_n(
19720            Opcode::SQRSHRN2_16bi as _,
19721            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19722        );
19723    }
19724    fn shrn2_8hi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19725        return self.emit_n(
19726            Opcode::SHRN2_8hi as _,
19727            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19728        );
19729    }
19730    fn rshrn2_8hi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19731        return self.emit_n(
19732            Opcode::RSHRN2_8hi as _,
19733            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19734        );
19735    }
19736    fn sqshrn2_8hi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19737        return self.emit_n(
19738            Opcode::SQSHRN2_8hi as _,
19739            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19740        );
19741    }
19742    fn sqrshrn2_8hi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19743        return self.emit_n(
19744            Opcode::SQRSHRN2_8hi as _,
19745            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19746        );
19747    }
19748    fn shrn2_4si(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19749        return self.emit_n(
19750            Opcode::SHRN2_4si as _,
19751            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19752        );
19753    }
19754    fn rshrn2_4si(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19755        return self.emit_n(
19756            Opcode::RSHRN2_4si as _,
19757            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19758        );
19759    }
19760    fn sqshrn2_4si(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19761        return self.emit_n(
19762            Opcode::SQSHRN2_4si as _,
19763            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19764        );
19765    }
19766    fn sqrshrn2_4si(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19767        return self.emit_n(
19768            Opcode::SQRSHRN2_4si as _,
19769            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19770        );
19771    }
19772    fn sqshrun2_16bi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19773        return self.emit_n(
19774            Opcode::SQSHRUN2_16bi as _,
19775            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19776        );
19777    }
19778    fn sqrshrun2_16bi(
19779        &mut self,
19780        rd: impl OperandCast,
19781        rn: impl OperandCast,
19782        imm: impl OperandCast,
19783    ) {
19784        return self.emit_n(
19785            Opcode::SQRSHRUN2_16bi as _,
19786            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19787        );
19788    }
19789    fn uqshrn2_16bi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19790        return self.emit_n(
19791            Opcode::UQSHRN2_16bi as _,
19792            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19793        );
19794    }
19795    fn uqrshrn2_16bi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19796        return self.emit_n(
19797            Opcode::UQRSHRN2_16bi as _,
19798            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19799        );
19800    }
19801    fn sqshrun2_8hi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19802        return self.emit_n(
19803            Opcode::SQSHRUN2_8hi as _,
19804            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19805        );
19806    }
19807    fn sqrshrun2_8hi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19808        return self.emit_n(
19809            Opcode::SQRSHRUN2_8hi as _,
19810            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19811        );
19812    }
19813    fn uqshrn2_8hi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19814        return self.emit_n(
19815            Opcode::UQSHRN2_8hi as _,
19816            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19817        );
19818    }
19819    fn uqrshrn2_8hi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19820        return self.emit_n(
19821            Opcode::UQRSHRN2_8hi as _,
19822            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19823        );
19824    }
19825    fn sqshrun2_4si(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19826        return self.emit_n(
19827            Opcode::SQSHRUN2_4si as _,
19828            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19829        );
19830    }
19831    fn sqrshrun2_4si(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19832        return self.emit_n(
19833            Opcode::SQRSHRUN2_4si as _,
19834            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19835        );
19836    }
19837    fn uqshrn2_4si(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19838        return self.emit_n(
19839            Opcode::UQSHRN2_4si as _,
19840            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19841        );
19842    }
19843    fn uqrshrn2_4si(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19844        return self.emit_n(
19845            Opcode::UQRSHRN2_4si as _,
19846            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19847        );
19848    }
19849    fn sshll_8hi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19850        return self.emit_n(
19851            Opcode::SSHLL_8hi as _,
19852            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19853        );
19854    }
19855    fn sshll_4si(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19856        return self.emit_n(
19857            Opcode::SSHLL_4si as _,
19858            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19859        );
19860    }
19861    fn sshll_2di(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19862        return self.emit_n(
19863            Opcode::SSHLL_2di as _,
19864            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19865        );
19866    }
19867    fn ushll_8hi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19868        return self.emit_n(
19869            Opcode::USHLL_8hi as _,
19870            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19871        );
19872    }
19873    fn ushll_4si(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19874        return self.emit_n(
19875            Opcode::USHLL_4si as _,
19876            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19877        );
19878    }
19879    fn ushll_2di(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19880        return self.emit_n(
19881            Opcode::USHLL_2di as _,
19882            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19883        );
19884    }
19885    fn sshll2_8hi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19886        return self.emit_n(
19887            Opcode::SSHLL2_8hi as _,
19888            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19889        );
19890    }
19891    fn sshll2_4si(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19892        return self.emit_n(
19893            Opcode::SSHLL2_4si as _,
19894            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19895        );
19896    }
19897    fn sshll2_2di(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19898        return self.emit_n(
19899            Opcode::SSHLL2_2di as _,
19900            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19901        );
19902    }
19903    fn ushll2_8hi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19904        return self.emit_n(
19905            Opcode::USHLL2_8hi as _,
19906            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19907        );
19908    }
19909    fn ushll2_4si(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19910        return self.emit_n(
19911            Opcode::USHLL2_4si as _,
19912            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19913        );
19914    }
19915    fn ushll2_2di(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19916        return self.emit_n(
19917            Opcode::USHLL2_2di as _,
19918            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19919        );
19920    }
19921    fn sxtl_8h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
19922        return self.emit_n(Opcode::SXTL_8h as _, &[rd.as_operand(), rn.as_operand()]);
19923    }
19924    fn sxtl_4s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
19925        return self.emit_n(Opcode::SXTL_4s as _, &[rd.as_operand(), rn.as_operand()]);
19926    }
19927    fn sxtl_2d(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
19928        return self.emit_n(Opcode::SXTL_2d as _, &[rd.as_operand(), rn.as_operand()]);
19929    }
19930    fn uxtl_8h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
19931        return self.emit_n(Opcode::UXTL_8h as _, &[rd.as_operand(), rn.as_operand()]);
19932    }
19933    fn uxtl_4s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
19934        return self.emit_n(Opcode::UXTL_4s as _, &[rd.as_operand(), rn.as_operand()]);
19935    }
19936    fn uxtl_2d(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
19937        return self.emit_n(Opcode::UXTL_2d as _, &[rd.as_operand(), rn.as_operand()]);
19938    }
19939    fn sxtl2_8h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
19940        return self.emit_n(Opcode::SXTL2_8h as _, &[rd.as_operand(), rn.as_operand()]);
19941    }
19942    fn sxtl2_4s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
19943        return self.emit_n(Opcode::SXTL2_4s as _, &[rd.as_operand(), rn.as_operand()]);
19944    }
19945    fn sxtl2_2d(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
19946        return self.emit_n(Opcode::SXTL2_2d as _, &[rd.as_operand(), rn.as_operand()]);
19947    }
19948    fn uxtl2_8h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
19949        return self.emit_n(Opcode::UXTL2_8h as _, &[rd.as_operand(), rn.as_operand()]);
19950    }
19951    fn uxtl2_4s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
19952        return self.emit_n(Opcode::UXTL2_4s as _, &[rd.as_operand(), rn.as_operand()]);
19953    }
19954    fn uxtl2_2d(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
19955        return self.emit_n(Opcode::UXTL2_2d as _, &[rd.as_operand(), rn.as_operand()]);
19956    }
19957    fn shll_8h_8(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
19958        return self.emit_n(Opcode::SHLL_8h_8 as _, &[rd.as_operand(), rn.as_operand()]);
19959    }
19960    fn shll_4s_16(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
19961        return self.emit_n(Opcode::SHLL_4s_16 as _, &[rd.as_operand(), rn.as_operand()]);
19962    }
19963    fn shll_2d_32(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
19964        return self.emit_n(Opcode::SHLL_2d_32 as _, &[rd.as_operand(), rn.as_operand()]);
19965    }
19966    fn shll2_8h_8(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
19967        return self.emit_n(Opcode::SHLL2_8h_8 as _, &[rd.as_operand(), rn.as_operand()]);
19968    }
19969    fn shll2_4s_16(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
19970        return self.emit_n(
19971            Opcode::SHLL2_4s_16 as _,
19972            &[rd.as_operand(), rn.as_operand()],
19973        );
19974    }
19975    fn shll2_2d_32(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
19976        return self.emit_n(
19977            Opcode::SHLL2_2d_32 as _,
19978            &[rd.as_operand(), rn.as_operand()],
19979        );
19980    }
19981    fn shldi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19982        return self.emit_n(
19983            Opcode::SHLdi as _,
19984            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19985        );
19986    }
19987    fn sridi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19988        return self.emit_n(
19989            Opcode::SRIdi as _,
19990            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19991        );
19992    }
19993    fn slidi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
19994        return self.emit_n(
19995            Opcode::SLIdi as _,
19996            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
19997        );
19998    }
19999    fn shl8bi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
20000        return self.emit_n(
20001            Opcode::SHL8bi as _,
20002            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
20003        );
20004    }
20005    fn shl4hi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
20006        return self.emit_n(
20007            Opcode::SHL4hi as _,
20008            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
20009        );
20010    }
20011    fn shl2si(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
20012        return self.emit_n(
20013            Opcode::SHL2si as _,
20014            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
20015        );
20016    }
20017    fn sri8bi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
20018        return self.emit_n(
20019            Opcode::SRI8bi as _,
20020            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
20021        );
20022    }
20023    fn sli8bi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
20024        return self.emit_n(
20025            Opcode::SLI8bi as _,
20026            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
20027        );
20028    }
20029    fn sri4hi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
20030        return self.emit_n(
20031            Opcode::SRI4hi as _,
20032            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
20033        );
20034    }
20035    fn sli4hi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
20036        return self.emit_n(
20037            Opcode::SLI4hi as _,
20038            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
20039        );
20040    }
20041    fn sri2si(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
20042        return self.emit_n(
20043            Opcode::SRI2si as _,
20044            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
20045        );
20046    }
20047    fn sli2si(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
20048        return self.emit_n(
20049            Opcode::SLI2si as _,
20050            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
20051        );
20052    }
20053    fn shl16bi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
20054        return self.emit_n(
20055            Opcode::SHL16bi as _,
20056            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
20057        );
20058    }
20059    fn shl8hi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
20060        return self.emit_n(
20061            Opcode::SHL8hi as _,
20062            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
20063        );
20064    }
20065    fn shl4si(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
20066        return self.emit_n(
20067            Opcode::SHL4si as _,
20068            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
20069        );
20070    }
20071    fn shl2di(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
20072        return self.emit_n(
20073            Opcode::SHL2di as _,
20074            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
20075        );
20076    }
20077    fn sri16bi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
20078        return self.emit_n(
20079            Opcode::SRI16bi as _,
20080            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
20081        );
20082    }
20083    fn sli16bi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
20084        return self.emit_n(
20085            Opcode::SLI16bi as _,
20086            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
20087        );
20088    }
20089    fn sri8hi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
20090        return self.emit_n(
20091            Opcode::SRI8hi as _,
20092            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
20093        );
20094    }
20095    fn sli8hi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
20096        return self.emit_n(
20097            Opcode::SLI8hi as _,
20098            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
20099        );
20100    }
20101    fn sri4si(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
20102        return self.emit_n(
20103            Opcode::SRI4si as _,
20104            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
20105        );
20106    }
20107    fn sli4si(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
20108        return self.emit_n(
20109            Opcode::SLI4si as _,
20110            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
20111        );
20112    }
20113    fn sri2di(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
20114        return self.emit_n(
20115            Opcode::SRI2di as _,
20116            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
20117        );
20118    }
20119    fn sli2di(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
20120        return self.emit_n(
20121            Opcode::SLI2di as _,
20122            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
20123        );
20124    }
20125    fn scvtfhi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
20126        return self.emit_n(
20127            Opcode::SCVTFhi as _,
20128            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
20129        );
20130    }
20131    fn fcvtzshi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
20132        return self.emit_n(
20133            Opcode::FCVTZShi as _,
20134            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
20135        );
20136    }
20137    fn scvtfsi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
20138        return self.emit_n(
20139            Opcode::SCVTFsi as _,
20140            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
20141        );
20142    }
20143    fn fcvtzssi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
20144        return self.emit_n(
20145            Opcode::FCVTZSsi as _,
20146            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
20147        );
20148    }
20149    fn scvtfdi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
20150        return self.emit_n(
20151            Opcode::SCVTFdi as _,
20152            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
20153        );
20154    }
20155    fn fcvtzsdi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
20156        return self.emit_n(
20157            Opcode::FCVTZSdi as _,
20158            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
20159        );
20160    }
20161    fn ucvtfhi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
20162        return self.emit_n(
20163            Opcode::UCVTFhi as _,
20164            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
20165        );
20166    }
20167    fn fcvtzuhi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
20168        return self.emit_n(
20169            Opcode::FCVTZUhi as _,
20170            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
20171        );
20172    }
20173    fn ucvtfsi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
20174        return self.emit_n(
20175            Opcode::UCVTFsi as _,
20176            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
20177        );
20178    }
20179    fn fcvtzusi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
20180        return self.emit_n(
20181            Opcode::FCVTZUsi as _,
20182            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
20183        );
20184    }
20185    fn ucvtfdi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
20186        return self.emit_n(
20187            Opcode::UCVTFdi as _,
20188            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
20189        );
20190    }
20191    fn fcvtzudi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
20192        return self.emit_n(
20193            Opcode::FCVTZUdi as _,
20194            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
20195        );
20196    }
20197    fn scvtf4hi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
20198        return self.emit_n(
20199            Opcode::SCVTF4hi as _,
20200            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
20201        );
20202    }
20203    fn fcvtzs4hi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
20204        return self.emit_n(
20205            Opcode::FCVTZS4hi as _,
20206            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
20207        );
20208    }
20209    fn scvtf2si(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
20210        return self.emit_n(
20211            Opcode::SCVTF2si as _,
20212            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
20213        );
20214    }
20215    fn fcvtzs2si(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
20216        return self.emit_n(
20217            Opcode::FCVTZS2si as _,
20218            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
20219        );
20220    }
20221    fn ucvtf4hi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
20222        return self.emit_n(
20223            Opcode::UCVTF4hi as _,
20224            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
20225        );
20226    }
20227    fn fcvtzu4hi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
20228        return self.emit_n(
20229            Opcode::FCVTZU4hi as _,
20230            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
20231        );
20232    }
20233    fn ucvtf2si(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
20234        return self.emit_n(
20235            Opcode::UCVTF2si as _,
20236            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
20237        );
20238    }
20239    fn fcvtzu2si(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
20240        return self.emit_n(
20241            Opcode::FCVTZU2si as _,
20242            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
20243        );
20244    }
20245    fn scvtf8hi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
20246        return self.emit_n(
20247            Opcode::SCVTF8hi as _,
20248            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
20249        );
20250    }
20251    fn fcvtzs8hi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
20252        return self.emit_n(
20253            Opcode::FCVTZS8hi as _,
20254            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
20255        );
20256    }
20257    fn scvtf4si(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
20258        return self.emit_n(
20259            Opcode::SCVTF4si as _,
20260            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
20261        );
20262    }
20263    fn fcvtzs4si(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
20264        return self.emit_n(
20265            Opcode::FCVTZS4si as _,
20266            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
20267        );
20268    }
20269    fn scvtf2di(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
20270        return self.emit_n(
20271            Opcode::SCVTF2di as _,
20272            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
20273        );
20274    }
20275    fn fcvtzs2di(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
20276        return self.emit_n(
20277            Opcode::FCVTZS2di as _,
20278            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
20279        );
20280    }
20281    fn ucvtf8hi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
20282        return self.emit_n(
20283            Opcode::UCVTF8hi as _,
20284            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
20285        );
20286    }
20287    fn fcvtzu8hi(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
20288        return self.emit_n(
20289            Opcode::FCVTZU8hi as _,
20290            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
20291        );
20292    }
20293    fn ucvtf4si(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
20294        return self.emit_n(
20295            Opcode::UCVTF4si as _,
20296            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
20297        );
20298    }
20299    fn fcvtzu4si(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
20300        return self.emit_n(
20301            Opcode::FCVTZU4si as _,
20302            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
20303        );
20304    }
20305    fn ucvtf2di(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
20306        return self.emit_n(
20307            Opcode::UCVTF2di as _,
20308            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
20309        );
20310    }
20311    fn fcvtzu2di(&mut self, rd: impl OperandCast, rn: impl OperandCast, imm: impl OperandCast) {
20312        return self.emit_n(
20313            Opcode::FCVTZU2di as _,
20314            &[rd.as_operand(), rn.as_operand(), imm.as_operand()],
20315        );
20316    }
20317    fn fcvtnss(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20318        return self.emit_n(Opcode::FCVTNSs as _, &[rd.as_operand(), rn.as_operand()]);
20319    }
20320    fn fcvtmss(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20321        return self.emit_n(Opcode::FCVTMSs as _, &[rd.as_operand(), rn.as_operand()]);
20322    }
20323    fn fcvtass(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20324        return self.emit_n(Opcode::FCVTASs as _, &[rd.as_operand(), rn.as_operand()]);
20325    }
20326    fn fcvtnsd(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20327        return self.emit_n(Opcode::FCVTNSd as _, &[rd.as_operand(), rn.as_operand()]);
20328    }
20329    fn fcvtmsd(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20330        return self.emit_n(Opcode::FCVTMSd as _, &[rd.as_operand(), rn.as_operand()]);
20331    }
20332    fn fcvtasd(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20333        return self.emit_n(Opcode::FCVTASd as _, &[rd.as_operand(), rn.as_operand()]);
20334    }
20335    fn fcvtpss(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20336        return self.emit_n(Opcode::FCVTPSs as _, &[rd.as_operand(), rn.as_operand()]);
20337    }
20338    fn fcvtzss(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20339        return self.emit_n(Opcode::FCVTZSs as _, &[rd.as_operand(), rn.as_operand()]);
20340    }
20341    fn fcvtpsd(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20342        return self.emit_n(Opcode::FCVTPSd as _, &[rd.as_operand(), rn.as_operand()]);
20343    }
20344    fn fcvtzsd(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20345        return self.emit_n(Opcode::FCVTZSd as _, &[rd.as_operand(), rn.as_operand()]);
20346    }
20347    fn fcvtnus(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20348        return self.emit_n(Opcode::FCVTNUs as _, &[rd.as_operand(), rn.as_operand()]);
20349    }
20350    fn fcvtmus(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20351        return self.emit_n(Opcode::FCVTMUs as _, &[rd.as_operand(), rn.as_operand()]);
20352    }
20353    fn fcvtaus(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20354        return self.emit_n(Opcode::FCVTAUs as _, &[rd.as_operand(), rn.as_operand()]);
20355    }
20356    fn fcvtnud(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20357        return self.emit_n(Opcode::FCVTNUd as _, &[rd.as_operand(), rn.as_operand()]);
20358    }
20359    fn fcvtmud(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20360        return self.emit_n(Opcode::FCVTMUd as _, &[rd.as_operand(), rn.as_operand()]);
20361    }
20362    fn fcvtaud(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20363        return self.emit_n(Opcode::FCVTAUd as _, &[rd.as_operand(), rn.as_operand()]);
20364    }
20365    fn fcvtpus(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20366        return self.emit_n(Opcode::FCVTPUs as _, &[rd.as_operand(), rn.as_operand()]);
20367    }
20368    fn fcvtzus(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20369        return self.emit_n(Opcode::FCVTZUs as _, &[rd.as_operand(), rn.as_operand()]);
20370    }
20371    fn fcvtpud(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20372        return self.emit_n(Opcode::FCVTPUd as _, &[rd.as_operand(), rn.as_operand()]);
20373    }
20374    fn fcvtzud(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20375        return self.emit_n(Opcode::FCVTZUd as _, &[rd.as_operand(), rn.as_operand()]);
20376    }
20377    fn fcvtns2s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20378        return self.emit_n(Opcode::FCVTNS2s as _, &[rd.as_operand(), rn.as_operand()]);
20379    }
20380    fn fcvtms2s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20381        return self.emit_n(Opcode::FCVTMS2s as _, &[rd.as_operand(), rn.as_operand()]);
20382    }
20383    fn fcvtas2s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20384        return self.emit_n(Opcode::FCVTAS2s as _, &[rd.as_operand(), rn.as_operand()]);
20385    }
20386    fn fcvtps2s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20387        return self.emit_n(Opcode::FCVTPS2s as _, &[rd.as_operand(), rn.as_operand()]);
20388    }
20389    fn fcvtzs2s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20390        return self.emit_n(Opcode::FCVTZS2s as _, &[rd.as_operand(), rn.as_operand()]);
20391    }
20392    fn fcvtnu2s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20393        return self.emit_n(Opcode::FCVTNU2s as _, &[rd.as_operand(), rn.as_operand()]);
20394    }
20395    fn fcvtmu2s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20396        return self.emit_n(Opcode::FCVTMU2s as _, &[rd.as_operand(), rn.as_operand()]);
20397    }
20398    fn fcvtau2s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20399        return self.emit_n(Opcode::FCVTAU2s as _, &[rd.as_operand(), rn.as_operand()]);
20400    }
20401    fn fcvtpu2s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20402        return self.emit_n(Opcode::FCVTPU2s as _, &[rd.as_operand(), rn.as_operand()]);
20403    }
20404    fn fcvtzu2s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20405        return self.emit_n(Opcode::FCVTZU2s as _, &[rd.as_operand(), rn.as_operand()]);
20406    }
20407    fn fcvtns4s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20408        return self.emit_n(Opcode::FCVTNS4s as _, &[rd.as_operand(), rn.as_operand()]);
20409    }
20410    fn fcvtms4s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20411        return self.emit_n(Opcode::FCVTMS4s as _, &[rd.as_operand(), rn.as_operand()]);
20412    }
20413    fn fcvtas4s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20414        return self.emit_n(Opcode::FCVTAS4s as _, &[rd.as_operand(), rn.as_operand()]);
20415    }
20416    fn fcvtns2d(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20417        return self.emit_n(Opcode::FCVTNS2d as _, &[rd.as_operand(), rn.as_operand()]);
20418    }
20419    fn fcvtms2d(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20420        return self.emit_n(Opcode::FCVTMS2d as _, &[rd.as_operand(), rn.as_operand()]);
20421    }
20422    fn fcvtas2d(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20423        return self.emit_n(Opcode::FCVTAS2d as _, &[rd.as_operand(), rn.as_operand()]);
20424    }
20425    fn fcvtps4s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20426        return self.emit_n(Opcode::FCVTPS4s as _, &[rd.as_operand(), rn.as_operand()]);
20427    }
20428    fn fcvtzs4s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20429        return self.emit_n(Opcode::FCVTZS4s as _, &[rd.as_operand(), rn.as_operand()]);
20430    }
20431    fn fcvtps2d(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20432        return self.emit_n(Opcode::FCVTPS2d as _, &[rd.as_operand(), rn.as_operand()]);
20433    }
20434    fn fcvtzs2d(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20435        return self.emit_n(Opcode::FCVTZS2d as _, &[rd.as_operand(), rn.as_operand()]);
20436    }
20437    fn fcvtnu4s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20438        return self.emit_n(Opcode::FCVTNU4s as _, &[rd.as_operand(), rn.as_operand()]);
20439    }
20440    fn fcvtmu4s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20441        return self.emit_n(Opcode::FCVTMU4s as _, &[rd.as_operand(), rn.as_operand()]);
20442    }
20443    fn fcvtau4s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20444        return self.emit_n(Opcode::FCVTAU4s as _, &[rd.as_operand(), rn.as_operand()]);
20445    }
20446    fn fcvtnu2d(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20447        return self.emit_n(Opcode::FCVTNU2d as _, &[rd.as_operand(), rn.as_operand()]);
20448    }
20449    fn fcvtmu2d(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20450        return self.emit_n(Opcode::FCVTMU2d as _, &[rd.as_operand(), rn.as_operand()]);
20451    }
20452    fn fcvtau2d(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20453        return self.emit_n(Opcode::FCVTAU2d as _, &[rd.as_operand(), rn.as_operand()]);
20454    }
20455    fn fcvtpu4s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20456        return self.emit_n(Opcode::FCVTPU4s as _, &[rd.as_operand(), rn.as_operand()]);
20457    }
20458    fn fcvtzu4s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20459        return self.emit_n(Opcode::FCVTZU4s as _, &[rd.as_operand(), rn.as_operand()]);
20460    }
20461    fn fcvtpu2d(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20462        return self.emit_n(Opcode::FCVTPU2d as _, &[rd.as_operand(), rn.as_operand()]);
20463    }
20464    fn fcvtzu2d(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20465        return self.emit_n(Opcode::FCVTZU2d as _, &[rd.as_operand(), rn.as_operand()]);
20466    }
20467    fn fcvtl_4s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20468        return self.emit_n(Opcode::FCVTL_4s as _, &[rd.as_operand(), rn.as_operand()]);
20469    }
20470    fn fcvtl_2d(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20471        return self.emit_n(Opcode::FCVTL_2d as _, &[rd.as_operand(), rn.as_operand()]);
20472    }
20473    fn fcvtl2_4s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20474        return self.emit_n(Opcode::FCVTL2_4s as _, &[rd.as_operand(), rn.as_operand()]);
20475    }
20476    fn fcvtl2_2d(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20477        return self.emit_n(Opcode::FCVTL2_2d as _, &[rd.as_operand(), rn.as_operand()]);
20478    }
20479    fn scvtfs(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20480        return self.emit_n(Opcode::SCVTFs as _, &[rd.as_operand(), rn.as_operand()]);
20481    }
20482    fn scvtfd(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20483        return self.emit_n(Opcode::SCVTFd as _, &[rd.as_operand(), rn.as_operand()]);
20484    }
20485    fn ucvtfs(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20486        return self.emit_n(Opcode::UCVTFs as _, &[rd.as_operand(), rn.as_operand()]);
20487    }
20488    fn ucvtfd(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20489        return self.emit_n(Opcode::UCVTFd as _, &[rd.as_operand(), rn.as_operand()]);
20490    }
20491    fn scvtf2s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20492        return self.emit_n(Opcode::SCVTF2s as _, &[rd.as_operand(), rn.as_operand()]);
20493    }
20494    fn ucvtf2s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20495        return self.emit_n(Opcode::UCVTF2s as _, &[rd.as_operand(), rn.as_operand()]);
20496    }
20497    fn scvtf4s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20498        return self.emit_n(Opcode::SCVTF4s as _, &[rd.as_operand(), rn.as_operand()]);
20499    }
20500    fn scvtf2d(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20501        return self.emit_n(Opcode::SCVTF2d as _, &[rd.as_operand(), rn.as_operand()]);
20502    }
20503    fn ucvtf4s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20504        return self.emit_n(Opcode::UCVTF4s as _, &[rd.as_operand(), rn.as_operand()]);
20505    }
20506    fn ucvtf2d(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20507        return self.emit_n(Opcode::UCVTF2d as _, &[rd.as_operand(), rn.as_operand()]);
20508    }
20509    fn fcvtxns(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20510        return self.emit_n(Opcode::FCVTXNs as _, &[rd.as_operand(), rn.as_operand()]);
20511    }
20512    fn fcvtn_4h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20513        return self.emit_n(Opcode::FCVTN_4h as _, &[rd.as_operand(), rn.as_operand()]);
20514    }
20515    fn fcvtn_2s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20516        return self.emit_n(Opcode::FCVTN_2s as _, &[rd.as_operand(), rn.as_operand()]);
20517    }
20518    fn bfcvtn_4h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20519        return self.emit_n(Opcode::BFCVTN_4h as _, &[rd.as_operand(), rn.as_operand()]);
20520    }
20521    fn fcvtxn_2s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20522        return self.emit_n(Opcode::FCVTXN_2s as _, &[rd.as_operand(), rn.as_operand()]);
20523    }
20524    fn fcvtn2_8h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20525        return self.emit_n(Opcode::FCVTN2_8h as _, &[rd.as_operand(), rn.as_operand()]);
20526    }
20527    fn fcvtn2_4s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20528        return self.emit_n(Opcode::FCVTN2_4s as _, &[rd.as_operand(), rn.as_operand()]);
20529    }
20530    fn bfcvtn2_8h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20531        return self.emit_n(Opcode::BFCVTN2_8h as _, &[rd.as_operand(), rn.as_operand()]);
20532    }
20533    fn fcvtxn2_4s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20534        return self.emit_n(Opcode::FCVTXN2_4s as _, &[rd.as_operand(), rn.as_operand()]);
20535    }
20536    fn frintn2s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20537        return self.emit_n(Opcode::FRINTN2s as _, &[rd.as_operand(), rn.as_operand()]);
20538    }
20539    fn frintm2s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20540        return self.emit_n(Opcode::FRINTM2s as _, &[rd.as_operand(), rn.as_operand()]);
20541    }
20542    fn frintp2s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20543        return self.emit_n(Opcode::FRINTP2s as _, &[rd.as_operand(), rn.as_operand()]);
20544    }
20545    fn frintz2s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20546        return self.emit_n(Opcode::FRINTZ2s as _, &[rd.as_operand(), rn.as_operand()]);
20547    }
20548    fn frinta2s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20549        return self.emit_n(Opcode::FRINTA2s as _, &[rd.as_operand(), rn.as_operand()]);
20550    }
20551    fn frintx2s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20552        return self.emit_n(Opcode::FRINTX2s as _, &[rd.as_operand(), rn.as_operand()]);
20553    }
20554    fn frinti2s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20555        return self.emit_n(Opcode::FRINTI2s as _, &[rd.as_operand(), rn.as_operand()]);
20556    }
20557    fn frintn4s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20558        return self.emit_n(Opcode::FRINTN4s as _, &[rd.as_operand(), rn.as_operand()]);
20559    }
20560    fn frintm4s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20561        return self.emit_n(Opcode::FRINTM4s as _, &[rd.as_operand(), rn.as_operand()]);
20562    }
20563    fn frintn2d(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20564        return self.emit_n(Opcode::FRINTN2d as _, &[rd.as_operand(), rn.as_operand()]);
20565    }
20566    fn frintm2d(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20567        return self.emit_n(Opcode::FRINTM2d as _, &[rd.as_operand(), rn.as_operand()]);
20568    }
20569    fn frintp4s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20570        return self.emit_n(Opcode::FRINTP4s as _, &[rd.as_operand(), rn.as_operand()]);
20571    }
20572    fn frintz4s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20573        return self.emit_n(Opcode::FRINTZ4s as _, &[rd.as_operand(), rn.as_operand()]);
20574    }
20575    fn frintp2d(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20576        return self.emit_n(Opcode::FRINTP2d as _, &[rd.as_operand(), rn.as_operand()]);
20577    }
20578    fn frintz2d(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20579        return self.emit_n(Opcode::FRINTZ2d as _, &[rd.as_operand(), rn.as_operand()]);
20580    }
20581    fn frinta4s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20582        return self.emit_n(Opcode::FRINTA4s as _, &[rd.as_operand(), rn.as_operand()]);
20583    }
20584    fn frintx4s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20585        return self.emit_n(Opcode::FRINTX4s as _, &[rd.as_operand(), rn.as_operand()]);
20586    }
20587    fn frinta2d(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20588        return self.emit_n(Opcode::FRINTA2d as _, &[rd.as_operand(), rn.as_operand()]);
20589    }
20590    fn frintx2d(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20591        return self.emit_n(Opcode::FRINTX2d as _, &[rd.as_operand(), rn.as_operand()]);
20592    }
20593    fn frinti4s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20594        return self.emit_n(Opcode::FRINTI4s as _, &[rd.as_operand(), rn.as_operand()]);
20595    }
20596    fn frinti2d(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20597        return self.emit_n(Opcode::FRINTI2d as _, &[rd.as_operand(), rn.as_operand()]);
20598    }
20599    fn frint32z2s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20600        return self.emit_n(Opcode::FRINT32Z2s as _, &[rd.as_operand(), rn.as_operand()]);
20601    }
20602    fn frint64z2s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20603        return self.emit_n(Opcode::FRINT64Z2s as _, &[rd.as_operand(), rn.as_operand()]);
20604    }
20605    fn frint32x2s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20606        return self.emit_n(Opcode::FRINT32X2s as _, &[rd.as_operand(), rn.as_operand()]);
20607    }
20608    fn frint64x2s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20609        return self.emit_n(Opcode::FRINT64X2s as _, &[rd.as_operand(), rn.as_operand()]);
20610    }
20611    fn frint32z4s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20612        return self.emit_n(Opcode::FRINT32Z4s as _, &[rd.as_operand(), rn.as_operand()]);
20613    }
20614    fn frint64z4s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20615        return self.emit_n(Opcode::FRINT64Z4s as _, &[rd.as_operand(), rn.as_operand()]);
20616    }
20617    fn frint32z2d(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20618        return self.emit_n(Opcode::FRINT32Z2d as _, &[rd.as_operand(), rn.as_operand()]);
20619    }
20620    fn frint64z2d(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20621        return self.emit_n(Opcode::FRINT64Z2d as _, &[rd.as_operand(), rn.as_operand()]);
20622    }
20623    fn frint32x4s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20624        return self.emit_n(Opcode::FRINT32X4s as _, &[rd.as_operand(), rn.as_operand()]);
20625    }
20626    fn frint64x4s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20627        return self.emit_n(Opcode::FRINT64X4s as _, &[rd.as_operand(), rn.as_operand()]);
20628    }
20629    fn frint32x2d(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20630        return self.emit_n(Opcode::FRINT32X2d as _, &[rd.as_operand(), rn.as_operand()]);
20631    }
20632    fn frint64x2d(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20633        return self.emit_n(Opcode::FRINT64X2d as _, &[rd.as_operand(), rn.as_operand()]);
20634    }
20635    fn addpd(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20636        return self.emit_n(Opcode::ADDPd as _, &[rd.as_operand(), rn.as_operand()]);
20637    }
20638    fn saddlv8b(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20639        return self.emit_n(Opcode::SADDLV8b as _, &[rd.as_operand(), rn.as_operand()]);
20640    }
20641    fn smaxv8b(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20642        return self.emit_n(Opcode::SMAXV8b as _, &[rd.as_operand(), rn.as_operand()]);
20643    }
20644    fn sminv8b(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20645        return self.emit_n(Opcode::SMINV8b as _, &[rd.as_operand(), rn.as_operand()]);
20646    }
20647    fn addv8b(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20648        return self.emit_n(Opcode::ADDV8b as _, &[rd.as_operand(), rn.as_operand()]);
20649    }
20650    fn saddlv4h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20651        return self.emit_n(Opcode::SADDLV4h as _, &[rd.as_operand(), rn.as_operand()]);
20652    }
20653    fn smaxv4h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20654        return self.emit_n(Opcode::SMAXV4h as _, &[rd.as_operand(), rn.as_operand()]);
20655    }
20656    fn sminv4h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20657        return self.emit_n(Opcode::SMINV4h as _, &[rd.as_operand(), rn.as_operand()]);
20658    }
20659    fn addv4h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20660        return self.emit_n(Opcode::ADDV4h as _, &[rd.as_operand(), rn.as_operand()]);
20661    }
20662    fn uaddlv8b(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20663        return self.emit_n(Opcode::UADDLV8b as _, &[rd.as_operand(), rn.as_operand()]);
20664    }
20665    fn umaxv8b(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20666        return self.emit_n(Opcode::UMAXV8b as _, &[rd.as_operand(), rn.as_operand()]);
20667    }
20668    fn uminv8b(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20669        return self.emit_n(Opcode::UMINV8b as _, &[rd.as_operand(), rn.as_operand()]);
20670    }
20671    fn uaddlv4h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20672        return self.emit_n(Opcode::UADDLV4h as _, &[rd.as_operand(), rn.as_operand()]);
20673    }
20674    fn umaxv4h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20675        return self.emit_n(Opcode::UMAXV4h as _, &[rd.as_operand(), rn.as_operand()]);
20676    }
20677    fn uminv4h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20678        return self.emit_n(Opcode::UMINV4h as _, &[rd.as_operand(), rn.as_operand()]);
20679    }
20680    fn saddlv16b(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20681        return self.emit_n(Opcode::SADDLV16b as _, &[rd.as_operand(), rn.as_operand()]);
20682    }
20683    fn smaxv16b(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20684        return self.emit_n(Opcode::SMAXV16b as _, &[rd.as_operand(), rn.as_operand()]);
20685    }
20686    fn sminv16b(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20687        return self.emit_n(Opcode::SMINV16b as _, &[rd.as_operand(), rn.as_operand()]);
20688    }
20689    fn addv16b(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20690        return self.emit_n(Opcode::ADDV16b as _, &[rd.as_operand(), rn.as_operand()]);
20691    }
20692    fn saddlv8h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20693        return self.emit_n(Opcode::SADDLV8h as _, &[rd.as_operand(), rn.as_operand()]);
20694    }
20695    fn smaxv8h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20696        return self.emit_n(Opcode::SMAXV8h as _, &[rd.as_operand(), rn.as_operand()]);
20697    }
20698    fn sminv8h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20699        return self.emit_n(Opcode::SMINV8h as _, &[rd.as_operand(), rn.as_operand()]);
20700    }
20701    fn addv8h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20702        return self.emit_n(Opcode::ADDV8h as _, &[rd.as_operand(), rn.as_operand()]);
20703    }
20704    fn saddlv4s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20705        return self.emit_n(Opcode::SADDLV4s as _, &[rd.as_operand(), rn.as_operand()]);
20706    }
20707    fn smaxv4s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20708        return self.emit_n(Opcode::SMAXV4s as _, &[rd.as_operand(), rn.as_operand()]);
20709    }
20710    fn sminv4s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20711        return self.emit_n(Opcode::SMINV4s as _, &[rd.as_operand(), rn.as_operand()]);
20712    }
20713    fn addv4s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20714        return self.emit_n(Opcode::ADDV4s as _, &[rd.as_operand(), rn.as_operand()]);
20715    }
20716    fn uaddlv16b(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20717        return self.emit_n(Opcode::UADDLV16b as _, &[rd.as_operand(), rn.as_operand()]);
20718    }
20719    fn umaxv16b(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20720        return self.emit_n(Opcode::UMAXV16b as _, &[rd.as_operand(), rn.as_operand()]);
20721    }
20722    fn uminv16b(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20723        return self.emit_n(Opcode::UMINV16b as _, &[rd.as_operand(), rn.as_operand()]);
20724    }
20725    fn uaddlv8h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20726        return self.emit_n(Opcode::UADDLV8h as _, &[rd.as_operand(), rn.as_operand()]);
20727    }
20728    fn umaxv8h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20729        return self.emit_n(Opcode::UMAXV8h as _, &[rd.as_operand(), rn.as_operand()]);
20730    }
20731    fn uminv8h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20732        return self.emit_n(Opcode::UMINV8h as _, &[rd.as_operand(), rn.as_operand()]);
20733    }
20734    fn uaddlv4s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20735        return self.emit_n(Opcode::UADDLV4s as _, &[rd.as_operand(), rn.as_operand()]);
20736    }
20737    fn umaxv4s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20738        return self.emit_n(Opcode::UMAXV4s as _, &[rd.as_operand(), rn.as_operand()]);
20739    }
20740    fn uminv4s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20741        return self.emit_n(Opcode::UMINV4s as _, &[rd.as_operand(), rn.as_operand()]);
20742    }
20743    fn fmaxnmph(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20744        return self.emit_n(Opcode::FMAXNMPh as _, &[rd.as_operand(), rn.as_operand()]);
20745    }
20746    fn faddph(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20747        return self.emit_n(Opcode::FADDPh as _, &[rd.as_operand(), rn.as_operand()]);
20748    }
20749    fn fmaxph(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20750        return self.emit_n(Opcode::FMAXPh as _, &[rd.as_operand(), rn.as_operand()]);
20751    }
20752    fn fminnmph(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20753        return self.emit_n(Opcode::FMINNMPh as _, &[rd.as_operand(), rn.as_operand()]);
20754    }
20755    fn fminph(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20756        return self.emit_n(Opcode::FMINPh as _, &[rd.as_operand(), rn.as_operand()]);
20757    }
20758    fn fmaxnmps(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20759        return self.emit_n(Opcode::FMAXNMPs as _, &[rd.as_operand(), rn.as_operand()]);
20760    }
20761    fn faddps(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20762        return self.emit_n(Opcode::FADDPs as _, &[rd.as_operand(), rn.as_operand()]);
20763    }
20764    fn fmaxps(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20765        return self.emit_n(Opcode::FMAXPs as _, &[rd.as_operand(), rn.as_operand()]);
20766    }
20767    fn fmaxnmpd(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20768        return self.emit_n(Opcode::FMAXNMPd as _, &[rd.as_operand(), rn.as_operand()]);
20769    }
20770    fn faddpd(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20771        return self.emit_n(Opcode::FADDPd as _, &[rd.as_operand(), rn.as_operand()]);
20772    }
20773    fn fmaxpd(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20774        return self.emit_n(Opcode::FMAXPd as _, &[rd.as_operand(), rn.as_operand()]);
20775    }
20776    fn fminnmps(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20777        return self.emit_n(Opcode::FMINNMPs as _, &[rd.as_operand(), rn.as_operand()]);
20778    }
20779    fn fminps(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20780        return self.emit_n(Opcode::FMINPs as _, &[rd.as_operand(), rn.as_operand()]);
20781    }
20782    fn fminnmpd(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20783        return self.emit_n(Opcode::FMINNMPd as _, &[rd.as_operand(), rn.as_operand()]);
20784    }
20785    fn fminpd(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20786        return self.emit_n(Opcode::FMINPd as _, &[rd.as_operand(), rn.as_operand()]);
20787    }
20788    fn fmaxnmv4h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20789        return self.emit_n(Opcode::FMAXNMV4h as _, &[rd.as_operand(), rn.as_operand()]);
20790    }
20791    fn fmaxv4h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20792        return self.emit_n(Opcode::FMAXV4h as _, &[rd.as_operand(), rn.as_operand()]);
20793    }
20794    fn fminnmv4h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20795        return self.emit_n(Opcode::FMINNMV4h as _, &[rd.as_operand(), rn.as_operand()]);
20796    }
20797    fn fminv4h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20798        return self.emit_n(Opcode::FMINV4h as _, &[rd.as_operand(), rn.as_operand()]);
20799    }
20800    fn fmaxnmv8h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20801        return self.emit_n(Opcode::FMAXNMV8h as _, &[rd.as_operand(), rn.as_operand()]);
20802    }
20803    fn fmaxv8h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20804        return self.emit_n(Opcode::FMAXV8h as _, &[rd.as_operand(), rn.as_operand()]);
20805    }
20806    fn fminnmv8h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20807        return self.emit_n(Opcode::FMINNMV8h as _, &[rd.as_operand(), rn.as_operand()]);
20808    }
20809    fn fminv8h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20810        return self.emit_n(Opcode::FMINV8h as _, &[rd.as_operand(), rn.as_operand()]);
20811    }
20812    fn fmaxnmv4s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20813        return self.emit_n(Opcode::FMAXNMV4s as _, &[rd.as_operand(), rn.as_operand()]);
20814    }
20815    fn fmaxv4s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20816        return self.emit_n(Opcode::FMAXV4s as _, &[rd.as_operand(), rn.as_operand()]);
20817    }
20818    fn fminnmv4s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20819        return self.emit_n(Opcode::FMINNMV4s as _, &[rd.as_operand(), rn.as_operand()]);
20820    }
20821    fn fminv4s(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
20822        return self.emit_n(Opcode::FMINV4s as _, &[rd.as_operand(), rn.as_operand()]);
20823    }
20824    fn sqdmulhh_elem(
20825        &mut self,
20826        rd: impl OperandCast,
20827        rn: impl OperandCast,
20828        mrm: impl OperandCast,
20829        elemidx: impl OperandCast,
20830    ) {
20831        return self.emit_n(
20832            Opcode::SQDMULHh_elem as _,
20833            &[
20834                rd.as_operand(),
20835                rn.as_operand(),
20836                mrm.as_operand(),
20837                elemidx.as_operand(),
20838            ],
20839        );
20840    }
20841    fn sqrdmulhh_elem(
20842        &mut self,
20843        rd: impl OperandCast,
20844        rn: impl OperandCast,
20845        mrm: impl OperandCast,
20846        elemidx: impl OperandCast,
20847    ) {
20848        return self.emit_n(
20849            Opcode::SQRDMULHh_elem as _,
20850            &[
20851                rd.as_operand(),
20852                rn.as_operand(),
20853                mrm.as_operand(),
20854                elemidx.as_operand(),
20855            ],
20856        );
20857    }
20858    fn sqdmulhs_elem(
20859        &mut self,
20860        rd: impl OperandCast,
20861        rn: impl OperandCast,
20862        mrm: impl OperandCast,
20863        elemidx: impl OperandCast,
20864    ) {
20865        return self.emit_n(
20866            Opcode::SQDMULHs_elem as _,
20867            &[
20868                rd.as_operand(),
20869                rn.as_operand(),
20870                mrm.as_operand(),
20871                elemidx.as_operand(),
20872            ],
20873        );
20874    }
20875    fn sqrdmulhs_elem(
20876        &mut self,
20877        rd: impl OperandCast,
20878        rn: impl OperandCast,
20879        mrm: impl OperandCast,
20880        elemidx: impl OperandCast,
20881    ) {
20882        return self.emit_n(
20883            Opcode::SQRDMULHs_elem as _,
20884            &[
20885                rd.as_operand(),
20886                rn.as_operand(),
20887                mrm.as_operand(),
20888                elemidx.as_operand(),
20889            ],
20890        );
20891    }
20892    fn sqrdmlahh_elem(
20893        &mut self,
20894        rd: impl OperandCast,
20895        rn: impl OperandCast,
20896        mrm: impl OperandCast,
20897        elemidx: impl OperandCast,
20898    ) {
20899        return self.emit_n(
20900            Opcode::SQRDMLAHh_elem as _,
20901            &[
20902                rd.as_operand(),
20903                rn.as_operand(),
20904                mrm.as_operand(),
20905                elemidx.as_operand(),
20906            ],
20907        );
20908    }
20909    fn sqrdmlshh_elem(
20910        &mut self,
20911        rd: impl OperandCast,
20912        rn: impl OperandCast,
20913        mrm: impl OperandCast,
20914        elemidx: impl OperandCast,
20915    ) {
20916        return self.emit_n(
20917            Opcode::SQRDMLSHh_elem as _,
20918            &[
20919                rd.as_operand(),
20920                rn.as_operand(),
20921                mrm.as_operand(),
20922                elemidx.as_operand(),
20923            ],
20924        );
20925    }
20926    fn sqrdmlahs_elem(
20927        &mut self,
20928        rd: impl OperandCast,
20929        rn: impl OperandCast,
20930        mrm: impl OperandCast,
20931        elemidx: impl OperandCast,
20932    ) {
20933        return self.emit_n(
20934            Opcode::SQRDMLAHs_elem as _,
20935            &[
20936                rd.as_operand(),
20937                rn.as_operand(),
20938                mrm.as_operand(),
20939                elemidx.as_operand(),
20940            ],
20941        );
20942    }
20943    fn sqrdmlshs_elem(
20944        &mut self,
20945        rd: impl OperandCast,
20946        rn: impl OperandCast,
20947        mrm: impl OperandCast,
20948        elemidx: impl OperandCast,
20949    ) {
20950        return self.emit_n(
20951            Opcode::SQRDMLSHs_elem as _,
20952            &[
20953                rd.as_operand(),
20954                rn.as_operand(),
20955                mrm.as_operand(),
20956                elemidx.as_operand(),
20957            ],
20958        );
20959    }
20960    fn mul4h_elem(
20961        &mut self,
20962        rd: impl OperandCast,
20963        rn: impl OperandCast,
20964        mrm: impl OperandCast,
20965        elemidx: impl OperandCast,
20966    ) {
20967        return self.emit_n(
20968            Opcode::MUL4h_elem as _,
20969            &[
20970                rd.as_operand(),
20971                rn.as_operand(),
20972                mrm.as_operand(),
20973                elemidx.as_operand(),
20974            ],
20975        );
20976    }
20977    fn sqdmulh4h_elem(
20978        &mut self,
20979        rd: impl OperandCast,
20980        rn: impl OperandCast,
20981        mrm: impl OperandCast,
20982        elemidx: impl OperandCast,
20983    ) {
20984        return self.emit_n(
20985            Opcode::SQDMULH4h_elem as _,
20986            &[
20987                rd.as_operand(),
20988                rn.as_operand(),
20989                mrm.as_operand(),
20990                elemidx.as_operand(),
20991            ],
20992        );
20993    }
20994    fn sqrdmulh4h_elem(
20995        &mut self,
20996        rd: impl OperandCast,
20997        rn: impl OperandCast,
20998        mrm: impl OperandCast,
20999        elemidx: impl OperandCast,
21000    ) {
21001        return self.emit_n(
21002            Opcode::SQRDMULH4h_elem as _,
21003            &[
21004                rd.as_operand(),
21005                rn.as_operand(),
21006                mrm.as_operand(),
21007                elemidx.as_operand(),
21008            ],
21009        );
21010    }
21011    fn mul2s_elem(
21012        &mut self,
21013        rd: impl OperandCast,
21014        rn: impl OperandCast,
21015        mrm: impl OperandCast,
21016        elemidx: impl OperandCast,
21017    ) {
21018        return self.emit_n(
21019            Opcode::MUL2s_elem as _,
21020            &[
21021                rd.as_operand(),
21022                rn.as_operand(),
21023                mrm.as_operand(),
21024                elemidx.as_operand(),
21025            ],
21026        );
21027    }
21028    fn sqdmulh2s_elem(
21029        &mut self,
21030        rd: impl OperandCast,
21031        rn: impl OperandCast,
21032        mrm: impl OperandCast,
21033        elemidx: impl OperandCast,
21034    ) {
21035        return self.emit_n(
21036            Opcode::SQDMULH2s_elem as _,
21037            &[
21038                rd.as_operand(),
21039                rn.as_operand(),
21040                mrm.as_operand(),
21041                elemidx.as_operand(),
21042            ],
21043        );
21044    }
21045    fn sqrdmulh2s_elem(
21046        &mut self,
21047        rd: impl OperandCast,
21048        rn: impl OperandCast,
21049        mrm: impl OperandCast,
21050        elemidx: impl OperandCast,
21051    ) {
21052        return self.emit_n(
21053            Opcode::SQRDMULH2s_elem as _,
21054            &[
21055                rd.as_operand(),
21056                rn.as_operand(),
21057                mrm.as_operand(),
21058                elemidx.as_operand(),
21059            ],
21060        );
21061    }
21062    fn mla4h_elem(
21063        &mut self,
21064        rd: impl OperandCast,
21065        rn: impl OperandCast,
21066        mrm: impl OperandCast,
21067        elemidx: impl OperandCast,
21068    ) {
21069        return self.emit_n(
21070            Opcode::MLA4h_elem as _,
21071            &[
21072                rd.as_operand(),
21073                rn.as_operand(),
21074                mrm.as_operand(),
21075                elemidx.as_operand(),
21076            ],
21077        );
21078    }
21079    fn mls4h_elem(
21080        &mut self,
21081        rd: impl OperandCast,
21082        rn: impl OperandCast,
21083        mrm: impl OperandCast,
21084        elemidx: impl OperandCast,
21085    ) {
21086        return self.emit_n(
21087            Opcode::MLS4h_elem as _,
21088            &[
21089                rd.as_operand(),
21090                rn.as_operand(),
21091                mrm.as_operand(),
21092                elemidx.as_operand(),
21093            ],
21094        );
21095    }
21096    fn sqrdmlah4h_elem(
21097        &mut self,
21098        rd: impl OperandCast,
21099        rn: impl OperandCast,
21100        mrm: impl OperandCast,
21101        elemidx: impl OperandCast,
21102    ) {
21103        return self.emit_n(
21104            Opcode::SQRDMLAH4h_elem as _,
21105            &[
21106                rd.as_operand(),
21107                rn.as_operand(),
21108                mrm.as_operand(),
21109                elemidx.as_operand(),
21110            ],
21111        );
21112    }
21113    fn sqrdmlsh4h_elem(
21114        &mut self,
21115        rd: impl OperandCast,
21116        rn: impl OperandCast,
21117        mrm: impl OperandCast,
21118        elemidx: impl OperandCast,
21119    ) {
21120        return self.emit_n(
21121            Opcode::SQRDMLSH4h_elem as _,
21122            &[
21123                rd.as_operand(),
21124                rn.as_operand(),
21125                mrm.as_operand(),
21126                elemidx.as_operand(),
21127            ],
21128        );
21129    }
21130    fn mla2s_elem(
21131        &mut self,
21132        rd: impl OperandCast,
21133        rn: impl OperandCast,
21134        mrm: impl OperandCast,
21135        elemidx: impl OperandCast,
21136    ) {
21137        return self.emit_n(
21138            Opcode::MLA2s_elem as _,
21139            &[
21140                rd.as_operand(),
21141                rn.as_operand(),
21142                mrm.as_operand(),
21143                elemidx.as_operand(),
21144            ],
21145        );
21146    }
21147    fn mls2s_elem(
21148        &mut self,
21149        rd: impl OperandCast,
21150        rn: impl OperandCast,
21151        mrm: impl OperandCast,
21152        elemidx: impl OperandCast,
21153    ) {
21154        return self.emit_n(
21155            Opcode::MLS2s_elem as _,
21156            &[
21157                rd.as_operand(),
21158                rn.as_operand(),
21159                mrm.as_operand(),
21160                elemidx.as_operand(),
21161            ],
21162        );
21163    }
21164    fn sqrdmlah2s_elem(
21165        &mut self,
21166        rd: impl OperandCast,
21167        rn: impl OperandCast,
21168        mrm: impl OperandCast,
21169        elemidx: impl OperandCast,
21170    ) {
21171        return self.emit_n(
21172            Opcode::SQRDMLAH2s_elem as _,
21173            &[
21174                rd.as_operand(),
21175                rn.as_operand(),
21176                mrm.as_operand(),
21177                elemidx.as_operand(),
21178            ],
21179        );
21180    }
21181    fn sqrdmlsh2s_elem(
21182        &mut self,
21183        rd: impl OperandCast,
21184        rn: impl OperandCast,
21185        mrm: impl OperandCast,
21186        elemidx: impl OperandCast,
21187    ) {
21188        return self.emit_n(
21189            Opcode::SQRDMLSH2s_elem as _,
21190            &[
21191                rd.as_operand(),
21192                rn.as_operand(),
21193                mrm.as_operand(),
21194                elemidx.as_operand(),
21195            ],
21196        );
21197    }
21198    fn mul8h_elem(
21199        &mut self,
21200        rd: impl OperandCast,
21201        rn: impl OperandCast,
21202        mrm: impl OperandCast,
21203        elemidx: impl OperandCast,
21204    ) {
21205        return self.emit_n(
21206            Opcode::MUL8h_elem as _,
21207            &[
21208                rd.as_operand(),
21209                rn.as_operand(),
21210                mrm.as_operand(),
21211                elemidx.as_operand(),
21212            ],
21213        );
21214    }
21215    fn sqdmulh8h_elem(
21216        &mut self,
21217        rd: impl OperandCast,
21218        rn: impl OperandCast,
21219        mrm: impl OperandCast,
21220        elemidx: impl OperandCast,
21221    ) {
21222        return self.emit_n(
21223            Opcode::SQDMULH8h_elem as _,
21224            &[
21225                rd.as_operand(),
21226                rn.as_operand(),
21227                mrm.as_operand(),
21228                elemidx.as_operand(),
21229            ],
21230        );
21231    }
21232    fn sqrdmulh8h_elem(
21233        &mut self,
21234        rd: impl OperandCast,
21235        rn: impl OperandCast,
21236        mrm: impl OperandCast,
21237        elemidx: impl OperandCast,
21238    ) {
21239        return self.emit_n(
21240            Opcode::SQRDMULH8h_elem as _,
21241            &[
21242                rd.as_operand(),
21243                rn.as_operand(),
21244                mrm.as_operand(),
21245                elemidx.as_operand(),
21246            ],
21247        );
21248    }
21249    fn mul4s_elem(
21250        &mut self,
21251        rd: impl OperandCast,
21252        rn: impl OperandCast,
21253        mrm: impl OperandCast,
21254        elemidx: impl OperandCast,
21255    ) {
21256        return self.emit_n(
21257            Opcode::MUL4s_elem as _,
21258            &[
21259                rd.as_operand(),
21260                rn.as_operand(),
21261                mrm.as_operand(),
21262                elemidx.as_operand(),
21263            ],
21264        );
21265    }
21266    fn sqdmulh4s_elem(
21267        &mut self,
21268        rd: impl OperandCast,
21269        rn: impl OperandCast,
21270        mrm: impl OperandCast,
21271        elemidx: impl OperandCast,
21272    ) {
21273        return self.emit_n(
21274            Opcode::SQDMULH4s_elem as _,
21275            &[
21276                rd.as_operand(),
21277                rn.as_operand(),
21278                mrm.as_operand(),
21279                elemidx.as_operand(),
21280            ],
21281        );
21282    }
21283    fn sqrdmulh4s_elem(
21284        &mut self,
21285        rd: impl OperandCast,
21286        rn: impl OperandCast,
21287        mrm: impl OperandCast,
21288        elemidx: impl OperandCast,
21289    ) {
21290        return self.emit_n(
21291            Opcode::SQRDMULH4s_elem as _,
21292            &[
21293                rd.as_operand(),
21294                rn.as_operand(),
21295                mrm.as_operand(),
21296                elemidx.as_operand(),
21297            ],
21298        );
21299    }
21300    fn mla8h_elem(
21301        &mut self,
21302        rd: impl OperandCast,
21303        rn: impl OperandCast,
21304        mrm: impl OperandCast,
21305        elemidx: impl OperandCast,
21306    ) {
21307        return self.emit_n(
21308            Opcode::MLA8h_elem as _,
21309            &[
21310                rd.as_operand(),
21311                rn.as_operand(),
21312                mrm.as_operand(),
21313                elemidx.as_operand(),
21314            ],
21315        );
21316    }
21317    fn mls8h_elem(
21318        &mut self,
21319        rd: impl OperandCast,
21320        rn: impl OperandCast,
21321        mrm: impl OperandCast,
21322        elemidx: impl OperandCast,
21323    ) {
21324        return self.emit_n(
21325            Opcode::MLS8h_elem as _,
21326            &[
21327                rd.as_operand(),
21328                rn.as_operand(),
21329                mrm.as_operand(),
21330                elemidx.as_operand(),
21331            ],
21332        );
21333    }
21334    fn sqrdmlah8h_elem(
21335        &mut self,
21336        rd: impl OperandCast,
21337        rn: impl OperandCast,
21338        mrm: impl OperandCast,
21339        elemidx: impl OperandCast,
21340    ) {
21341        return self.emit_n(
21342            Opcode::SQRDMLAH8h_elem as _,
21343            &[
21344                rd.as_operand(),
21345                rn.as_operand(),
21346                mrm.as_operand(),
21347                elemidx.as_operand(),
21348            ],
21349        );
21350    }
21351    fn sqrdmlsh8h_elem(
21352        &mut self,
21353        rd: impl OperandCast,
21354        rn: impl OperandCast,
21355        mrm: impl OperandCast,
21356        elemidx: impl OperandCast,
21357    ) {
21358        return self.emit_n(
21359            Opcode::SQRDMLSH8h_elem as _,
21360            &[
21361                rd.as_operand(),
21362                rn.as_operand(),
21363                mrm.as_operand(),
21364                elemidx.as_operand(),
21365            ],
21366        );
21367    }
21368    fn mla4s_elem(
21369        &mut self,
21370        rd: impl OperandCast,
21371        rn: impl OperandCast,
21372        mrm: impl OperandCast,
21373        elemidx: impl OperandCast,
21374    ) {
21375        return self.emit_n(
21376            Opcode::MLA4s_elem as _,
21377            &[
21378                rd.as_operand(),
21379                rn.as_operand(),
21380                mrm.as_operand(),
21381                elemidx.as_operand(),
21382            ],
21383        );
21384    }
21385    fn mls4s_elem(
21386        &mut self,
21387        rd: impl OperandCast,
21388        rn: impl OperandCast,
21389        mrm: impl OperandCast,
21390        elemidx: impl OperandCast,
21391    ) {
21392        return self.emit_n(
21393            Opcode::MLS4s_elem as _,
21394            &[
21395                rd.as_operand(),
21396                rn.as_operand(),
21397                mrm.as_operand(),
21398                elemidx.as_operand(),
21399            ],
21400        );
21401    }
21402    fn sqrdmlah4s_elem(
21403        &mut self,
21404        rd: impl OperandCast,
21405        rn: impl OperandCast,
21406        mrm: impl OperandCast,
21407        elemidx: impl OperandCast,
21408    ) {
21409        return self.emit_n(
21410            Opcode::SQRDMLAH4s_elem as _,
21411            &[
21412                rd.as_operand(),
21413                rn.as_operand(),
21414                mrm.as_operand(),
21415                elemidx.as_operand(),
21416            ],
21417        );
21418    }
21419    fn sqrdmlsh4s_elem(
21420        &mut self,
21421        rd: impl OperandCast,
21422        rn: impl OperandCast,
21423        mrm: impl OperandCast,
21424        elemidx: impl OperandCast,
21425    ) {
21426        return self.emit_n(
21427            Opcode::SQRDMLSH4s_elem as _,
21428            &[
21429                rd.as_operand(),
21430                rn.as_operand(),
21431                mrm.as_operand(),
21432                elemidx.as_operand(),
21433            ],
21434        );
21435    }
21436    fn sqdmlalh_elem(
21437        &mut self,
21438        rd: impl OperandCast,
21439        rn: impl OperandCast,
21440        mrm: impl OperandCast,
21441        elemidx: impl OperandCast,
21442    ) {
21443        return self.emit_n(
21444            Opcode::SQDMLALh_elem as _,
21445            &[
21446                rd.as_operand(),
21447                rn.as_operand(),
21448                mrm.as_operand(),
21449                elemidx.as_operand(),
21450            ],
21451        );
21452    }
21453    fn sqdmlslh_elem(
21454        &mut self,
21455        rd: impl OperandCast,
21456        rn: impl OperandCast,
21457        mrm: impl OperandCast,
21458        elemidx: impl OperandCast,
21459    ) {
21460        return self.emit_n(
21461            Opcode::SQDMLSLh_elem as _,
21462            &[
21463                rd.as_operand(),
21464                rn.as_operand(),
21465                mrm.as_operand(),
21466                elemidx.as_operand(),
21467            ],
21468        );
21469    }
21470    fn sqdmullh_elem(
21471        &mut self,
21472        rd: impl OperandCast,
21473        rn: impl OperandCast,
21474        mrm: impl OperandCast,
21475        elemidx: impl OperandCast,
21476    ) {
21477        return self.emit_n(
21478            Opcode::SQDMULLh_elem as _,
21479            &[
21480                rd.as_operand(),
21481                rn.as_operand(),
21482                mrm.as_operand(),
21483                elemidx.as_operand(),
21484            ],
21485        );
21486    }
21487    fn sqdmlals_elem(
21488        &mut self,
21489        rd: impl OperandCast,
21490        rn: impl OperandCast,
21491        mrm: impl OperandCast,
21492        elemidx: impl OperandCast,
21493    ) {
21494        return self.emit_n(
21495            Opcode::SQDMLALs_elem as _,
21496            &[
21497                rd.as_operand(),
21498                rn.as_operand(),
21499                mrm.as_operand(),
21500                elemidx.as_operand(),
21501            ],
21502        );
21503    }
21504    fn sqdmlsls_elem(
21505        &mut self,
21506        rd: impl OperandCast,
21507        rn: impl OperandCast,
21508        mrm: impl OperandCast,
21509        elemidx: impl OperandCast,
21510    ) {
21511        return self.emit_n(
21512            Opcode::SQDMLSLs_elem as _,
21513            &[
21514                rd.as_operand(),
21515                rn.as_operand(),
21516                mrm.as_operand(),
21517                elemidx.as_operand(),
21518            ],
21519        );
21520    }
21521    fn sqdmulls_elem(
21522        &mut self,
21523        rd: impl OperandCast,
21524        rn: impl OperandCast,
21525        mrm: impl OperandCast,
21526        elemidx: impl OperandCast,
21527    ) {
21528        return self.emit_n(
21529            Opcode::SQDMULLs_elem as _,
21530            &[
21531                rd.as_operand(),
21532                rn.as_operand(),
21533                mrm.as_operand(),
21534                elemidx.as_operand(),
21535            ],
21536        );
21537    }
21538    fn smlal_4s_elem(
21539        &mut self,
21540        rd: impl OperandCast,
21541        rn: impl OperandCast,
21542        mrm: impl OperandCast,
21543        elemidx: impl OperandCast,
21544    ) {
21545        return self.emit_n(
21546            Opcode::SMLAL_4s_elem as _,
21547            &[
21548                rd.as_operand(),
21549                rn.as_operand(),
21550                mrm.as_operand(),
21551                elemidx.as_operand(),
21552            ],
21553        );
21554    }
21555    fn sqdmlal_4s_elem(
21556        &mut self,
21557        rd: impl OperandCast,
21558        rn: impl OperandCast,
21559        mrm: impl OperandCast,
21560        elemidx: impl OperandCast,
21561    ) {
21562        return self.emit_n(
21563            Opcode::SQDMLAL_4s_elem as _,
21564            &[
21565                rd.as_operand(),
21566                rn.as_operand(),
21567                mrm.as_operand(),
21568                elemidx.as_operand(),
21569            ],
21570        );
21571    }
21572    fn smlsl_4s_elem(
21573        &mut self,
21574        rd: impl OperandCast,
21575        rn: impl OperandCast,
21576        mrm: impl OperandCast,
21577        elemidx: impl OperandCast,
21578    ) {
21579        return self.emit_n(
21580            Opcode::SMLSL_4s_elem as _,
21581            &[
21582                rd.as_operand(),
21583                rn.as_operand(),
21584                mrm.as_operand(),
21585                elemidx.as_operand(),
21586            ],
21587        );
21588    }
21589    fn sqdmlsl_4s_elem(
21590        &mut self,
21591        rd: impl OperandCast,
21592        rn: impl OperandCast,
21593        mrm: impl OperandCast,
21594        elemidx: impl OperandCast,
21595    ) {
21596        return self.emit_n(
21597            Opcode::SQDMLSL_4s_elem as _,
21598            &[
21599                rd.as_operand(),
21600                rn.as_operand(),
21601                mrm.as_operand(),
21602                elemidx.as_operand(),
21603            ],
21604        );
21605    }
21606    fn smull_4s_elem(
21607        &mut self,
21608        rd: impl OperandCast,
21609        rn: impl OperandCast,
21610        mrm: impl OperandCast,
21611        elemidx: impl OperandCast,
21612    ) {
21613        return self.emit_n(
21614            Opcode::SMULL_4s_elem as _,
21615            &[
21616                rd.as_operand(),
21617                rn.as_operand(),
21618                mrm.as_operand(),
21619                elemidx.as_operand(),
21620            ],
21621        );
21622    }
21623    fn sqdmull_4s_elem(
21624        &mut self,
21625        rd: impl OperandCast,
21626        rn: impl OperandCast,
21627        mrm: impl OperandCast,
21628        elemidx: impl OperandCast,
21629    ) {
21630        return self.emit_n(
21631            Opcode::SQDMULL_4s_elem as _,
21632            &[
21633                rd.as_operand(),
21634                rn.as_operand(),
21635                mrm.as_operand(),
21636                elemidx.as_operand(),
21637            ],
21638        );
21639    }
21640    fn smlal_2d_elem(
21641        &mut self,
21642        rd: impl OperandCast,
21643        rn: impl OperandCast,
21644        mrm: impl OperandCast,
21645        elemidx: impl OperandCast,
21646    ) {
21647        return self.emit_n(
21648            Opcode::SMLAL_2d_elem as _,
21649            &[
21650                rd.as_operand(),
21651                rn.as_operand(),
21652                mrm.as_operand(),
21653                elemidx.as_operand(),
21654            ],
21655        );
21656    }
21657    fn sqdmlal_2d_elem(
21658        &mut self,
21659        rd: impl OperandCast,
21660        rn: impl OperandCast,
21661        mrm: impl OperandCast,
21662        elemidx: impl OperandCast,
21663    ) {
21664        return self.emit_n(
21665            Opcode::SQDMLAL_2d_elem as _,
21666            &[
21667                rd.as_operand(),
21668                rn.as_operand(),
21669                mrm.as_operand(),
21670                elemidx.as_operand(),
21671            ],
21672        );
21673    }
21674    fn smlsl_2d_elem(
21675        &mut self,
21676        rd: impl OperandCast,
21677        rn: impl OperandCast,
21678        mrm: impl OperandCast,
21679        elemidx: impl OperandCast,
21680    ) {
21681        return self.emit_n(
21682            Opcode::SMLSL_2d_elem as _,
21683            &[
21684                rd.as_operand(),
21685                rn.as_operand(),
21686                mrm.as_operand(),
21687                elemidx.as_operand(),
21688            ],
21689        );
21690    }
21691    fn sqdmlsl_2d_elem(
21692        &mut self,
21693        rd: impl OperandCast,
21694        rn: impl OperandCast,
21695        mrm: impl OperandCast,
21696        elemidx: impl OperandCast,
21697    ) {
21698        return self.emit_n(
21699            Opcode::SQDMLSL_2d_elem as _,
21700            &[
21701                rd.as_operand(),
21702                rn.as_operand(),
21703                mrm.as_operand(),
21704                elemidx.as_operand(),
21705            ],
21706        );
21707    }
21708    fn smull_2d_elem(
21709        &mut self,
21710        rd: impl OperandCast,
21711        rn: impl OperandCast,
21712        mrm: impl OperandCast,
21713        elemidx: impl OperandCast,
21714    ) {
21715        return self.emit_n(
21716            Opcode::SMULL_2d_elem as _,
21717            &[
21718                rd.as_operand(),
21719                rn.as_operand(),
21720                mrm.as_operand(),
21721                elemidx.as_operand(),
21722            ],
21723        );
21724    }
21725    fn sqdmull_2d_elem(
21726        &mut self,
21727        rd: impl OperandCast,
21728        rn: impl OperandCast,
21729        mrm: impl OperandCast,
21730        elemidx: impl OperandCast,
21731    ) {
21732        return self.emit_n(
21733            Opcode::SQDMULL_2d_elem as _,
21734            &[
21735                rd.as_operand(),
21736                rn.as_operand(),
21737                mrm.as_operand(),
21738                elemidx.as_operand(),
21739            ],
21740        );
21741    }
21742    fn umlal_4s_elem(
21743        &mut self,
21744        rd: impl OperandCast,
21745        rn: impl OperandCast,
21746        mrm: impl OperandCast,
21747        elemidx: impl OperandCast,
21748    ) {
21749        return self.emit_n(
21750            Opcode::UMLAL_4s_elem as _,
21751            &[
21752                rd.as_operand(),
21753                rn.as_operand(),
21754                mrm.as_operand(),
21755                elemidx.as_operand(),
21756            ],
21757        );
21758    }
21759    fn umlsl_4s_elem(
21760        &mut self,
21761        rd: impl OperandCast,
21762        rn: impl OperandCast,
21763        mrm: impl OperandCast,
21764        elemidx: impl OperandCast,
21765    ) {
21766        return self.emit_n(
21767            Opcode::UMLSL_4s_elem as _,
21768            &[
21769                rd.as_operand(),
21770                rn.as_operand(),
21771                mrm.as_operand(),
21772                elemidx.as_operand(),
21773            ],
21774        );
21775    }
21776    fn umull_4s_elem(
21777        &mut self,
21778        rd: impl OperandCast,
21779        rn: impl OperandCast,
21780        mrm: impl OperandCast,
21781        elemidx: impl OperandCast,
21782    ) {
21783        return self.emit_n(
21784            Opcode::UMULL_4s_elem as _,
21785            &[
21786                rd.as_operand(),
21787                rn.as_operand(),
21788                mrm.as_operand(),
21789                elemidx.as_operand(),
21790            ],
21791        );
21792    }
21793    fn umlal_2d_elem(
21794        &mut self,
21795        rd: impl OperandCast,
21796        rn: impl OperandCast,
21797        mrm: impl OperandCast,
21798        elemidx: impl OperandCast,
21799    ) {
21800        return self.emit_n(
21801            Opcode::UMLAL_2d_elem as _,
21802            &[
21803                rd.as_operand(),
21804                rn.as_operand(),
21805                mrm.as_operand(),
21806                elemidx.as_operand(),
21807            ],
21808        );
21809    }
21810    fn umlsl_2d_elem(
21811        &mut self,
21812        rd: impl OperandCast,
21813        rn: impl OperandCast,
21814        mrm: impl OperandCast,
21815        elemidx: impl OperandCast,
21816    ) {
21817        return self.emit_n(
21818            Opcode::UMLSL_2d_elem as _,
21819            &[
21820                rd.as_operand(),
21821                rn.as_operand(),
21822                mrm.as_operand(),
21823                elemidx.as_operand(),
21824            ],
21825        );
21826    }
21827    fn umull_2d_elem(
21828        &mut self,
21829        rd: impl OperandCast,
21830        rn: impl OperandCast,
21831        mrm: impl OperandCast,
21832        elemidx: impl OperandCast,
21833    ) {
21834        return self.emit_n(
21835            Opcode::UMULL_2d_elem as _,
21836            &[
21837                rd.as_operand(),
21838                rn.as_operand(),
21839                mrm.as_operand(),
21840                elemidx.as_operand(),
21841            ],
21842        );
21843    }
21844    fn smlal2_4s_elem(
21845        &mut self,
21846        rd: impl OperandCast,
21847        rn: impl OperandCast,
21848        mrm: impl OperandCast,
21849        elemidx: impl OperandCast,
21850    ) {
21851        return self.emit_n(
21852            Opcode::SMLAL2_4s_elem as _,
21853            &[
21854                rd.as_operand(),
21855                rn.as_operand(),
21856                mrm.as_operand(),
21857                elemidx.as_operand(),
21858            ],
21859        );
21860    }
21861    fn sqdmlal2_4s_elem(
21862        &mut self,
21863        rd: impl OperandCast,
21864        rn: impl OperandCast,
21865        mrm: impl OperandCast,
21866        elemidx: impl OperandCast,
21867    ) {
21868        return self.emit_n(
21869            Opcode::SQDMLAL2_4s_elem as _,
21870            &[
21871                rd.as_operand(),
21872                rn.as_operand(),
21873                mrm.as_operand(),
21874                elemidx.as_operand(),
21875            ],
21876        );
21877    }
21878    fn smlsl2_4s_elem(
21879        &mut self,
21880        rd: impl OperandCast,
21881        rn: impl OperandCast,
21882        mrm: impl OperandCast,
21883        elemidx: impl OperandCast,
21884    ) {
21885        return self.emit_n(
21886            Opcode::SMLSL2_4s_elem as _,
21887            &[
21888                rd.as_operand(),
21889                rn.as_operand(),
21890                mrm.as_operand(),
21891                elemidx.as_operand(),
21892            ],
21893        );
21894    }
21895    fn sqdmlsl2_4s_elem(
21896        &mut self,
21897        rd: impl OperandCast,
21898        rn: impl OperandCast,
21899        mrm: impl OperandCast,
21900        elemidx: impl OperandCast,
21901    ) {
21902        return self.emit_n(
21903            Opcode::SQDMLSL2_4s_elem as _,
21904            &[
21905                rd.as_operand(),
21906                rn.as_operand(),
21907                mrm.as_operand(),
21908                elemidx.as_operand(),
21909            ],
21910        );
21911    }
21912    fn smull2_4s_elem(
21913        &mut self,
21914        rd: impl OperandCast,
21915        rn: impl OperandCast,
21916        mrm: impl OperandCast,
21917        elemidx: impl OperandCast,
21918    ) {
21919        return self.emit_n(
21920            Opcode::SMULL2_4s_elem as _,
21921            &[
21922                rd.as_operand(),
21923                rn.as_operand(),
21924                mrm.as_operand(),
21925                elemidx.as_operand(),
21926            ],
21927        );
21928    }
21929    fn sqdmull2_4s_elem(
21930        &mut self,
21931        rd: impl OperandCast,
21932        rn: impl OperandCast,
21933        mrm: impl OperandCast,
21934        elemidx: impl OperandCast,
21935    ) {
21936        return self.emit_n(
21937            Opcode::SQDMULL2_4s_elem as _,
21938            &[
21939                rd.as_operand(),
21940                rn.as_operand(),
21941                mrm.as_operand(),
21942                elemidx.as_operand(),
21943            ],
21944        );
21945    }
21946    fn smlal2_2d_elem(
21947        &mut self,
21948        rd: impl OperandCast,
21949        rn: impl OperandCast,
21950        mrm: impl OperandCast,
21951        elemidx: impl OperandCast,
21952    ) {
21953        return self.emit_n(
21954            Opcode::SMLAL2_2d_elem as _,
21955            &[
21956                rd.as_operand(),
21957                rn.as_operand(),
21958                mrm.as_operand(),
21959                elemidx.as_operand(),
21960            ],
21961        );
21962    }
21963    fn sqdmlal2_2d_elem(
21964        &mut self,
21965        rd: impl OperandCast,
21966        rn: impl OperandCast,
21967        mrm: impl OperandCast,
21968        elemidx: impl OperandCast,
21969    ) {
21970        return self.emit_n(
21971            Opcode::SQDMLAL2_2d_elem as _,
21972            &[
21973                rd.as_operand(),
21974                rn.as_operand(),
21975                mrm.as_operand(),
21976                elemidx.as_operand(),
21977            ],
21978        );
21979    }
21980    fn smlsl2_2d_elem(
21981        &mut self,
21982        rd: impl OperandCast,
21983        rn: impl OperandCast,
21984        mrm: impl OperandCast,
21985        elemidx: impl OperandCast,
21986    ) {
21987        return self.emit_n(
21988            Opcode::SMLSL2_2d_elem as _,
21989            &[
21990                rd.as_operand(),
21991                rn.as_operand(),
21992                mrm.as_operand(),
21993                elemidx.as_operand(),
21994            ],
21995        );
21996    }
21997    fn sqdmlsl2_2d_elem(
21998        &mut self,
21999        rd: impl OperandCast,
22000        rn: impl OperandCast,
22001        mrm: impl OperandCast,
22002        elemidx: impl OperandCast,
22003    ) {
22004        return self.emit_n(
22005            Opcode::SQDMLSL2_2d_elem as _,
22006            &[
22007                rd.as_operand(),
22008                rn.as_operand(),
22009                mrm.as_operand(),
22010                elemidx.as_operand(),
22011            ],
22012        );
22013    }
22014    fn smull2_2d_elem(
22015        &mut self,
22016        rd: impl OperandCast,
22017        rn: impl OperandCast,
22018        mrm: impl OperandCast,
22019        elemidx: impl OperandCast,
22020    ) {
22021        return self.emit_n(
22022            Opcode::SMULL2_2d_elem as _,
22023            &[
22024                rd.as_operand(),
22025                rn.as_operand(),
22026                mrm.as_operand(),
22027                elemidx.as_operand(),
22028            ],
22029        );
22030    }
22031    fn sqdmull2_2d_elem(
22032        &mut self,
22033        rd: impl OperandCast,
22034        rn: impl OperandCast,
22035        mrm: impl OperandCast,
22036        elemidx: impl OperandCast,
22037    ) {
22038        return self.emit_n(
22039            Opcode::SQDMULL2_2d_elem as _,
22040            &[
22041                rd.as_operand(),
22042                rn.as_operand(),
22043                mrm.as_operand(),
22044                elemidx.as_operand(),
22045            ],
22046        );
22047    }
22048    fn umlal2_4s_elem(
22049        &mut self,
22050        rd: impl OperandCast,
22051        rn: impl OperandCast,
22052        mrm: impl OperandCast,
22053        elemidx: impl OperandCast,
22054    ) {
22055        return self.emit_n(
22056            Opcode::UMLAL2_4s_elem as _,
22057            &[
22058                rd.as_operand(),
22059                rn.as_operand(),
22060                mrm.as_operand(),
22061                elemidx.as_operand(),
22062            ],
22063        );
22064    }
22065    fn umlsl2_4s_elem(
22066        &mut self,
22067        rd: impl OperandCast,
22068        rn: impl OperandCast,
22069        mrm: impl OperandCast,
22070        elemidx: impl OperandCast,
22071    ) {
22072        return self.emit_n(
22073            Opcode::UMLSL2_4s_elem as _,
22074            &[
22075                rd.as_operand(),
22076                rn.as_operand(),
22077                mrm.as_operand(),
22078                elemidx.as_operand(),
22079            ],
22080        );
22081    }
22082    fn umull2_4s_elem(
22083        &mut self,
22084        rd: impl OperandCast,
22085        rn: impl OperandCast,
22086        mrm: impl OperandCast,
22087        elemidx: impl OperandCast,
22088    ) {
22089        return self.emit_n(
22090            Opcode::UMULL2_4s_elem as _,
22091            &[
22092                rd.as_operand(),
22093                rn.as_operand(),
22094                mrm.as_operand(),
22095                elemidx.as_operand(),
22096            ],
22097        );
22098    }
22099    fn umlal2_2d_elem(
22100        &mut self,
22101        rd: impl OperandCast,
22102        rn: impl OperandCast,
22103        mrm: impl OperandCast,
22104        elemidx: impl OperandCast,
22105    ) {
22106        return self.emit_n(
22107            Opcode::UMLAL2_2d_elem as _,
22108            &[
22109                rd.as_operand(),
22110                rn.as_operand(),
22111                mrm.as_operand(),
22112                elemidx.as_operand(),
22113            ],
22114        );
22115    }
22116    fn umlsl2_2d_elem(
22117        &mut self,
22118        rd: impl OperandCast,
22119        rn: impl OperandCast,
22120        mrm: impl OperandCast,
22121        elemidx: impl OperandCast,
22122    ) {
22123        return self.emit_n(
22124            Opcode::UMLSL2_2d_elem as _,
22125            &[
22126                rd.as_operand(),
22127                rn.as_operand(),
22128                mrm.as_operand(),
22129                elemidx.as_operand(),
22130            ],
22131        );
22132    }
22133    fn umull2_2d_elem(
22134        &mut self,
22135        rd: impl OperandCast,
22136        rn: impl OperandCast,
22137        mrm: impl OperandCast,
22138        elemidx: impl OperandCast,
22139    ) {
22140        return self.emit_n(
22141            Opcode::UMULL2_2d_elem as _,
22142            &[
22143                rd.as_operand(),
22144                rn.as_operand(),
22145                mrm.as_operand(),
22146                elemidx.as_operand(),
22147            ],
22148        );
22149    }
22150    fn fmlas_elem(
22151        &mut self,
22152        rd: impl OperandCast,
22153        rn: impl OperandCast,
22154        mrm: impl OperandCast,
22155        elemidx: impl OperandCast,
22156    ) {
22157        return self.emit_n(
22158            Opcode::FMLAs_elem as _,
22159            &[
22160                rd.as_operand(),
22161                rn.as_operand(),
22162                mrm.as_operand(),
22163                elemidx.as_operand(),
22164            ],
22165        );
22166    }
22167    fn fmlss_elem(
22168        &mut self,
22169        rd: impl OperandCast,
22170        rn: impl OperandCast,
22171        mrm: impl OperandCast,
22172        elemidx: impl OperandCast,
22173    ) {
22174        return self.emit_n(
22175            Opcode::FMLSs_elem as _,
22176            &[
22177                rd.as_operand(),
22178                rn.as_operand(),
22179                mrm.as_operand(),
22180                elemidx.as_operand(),
22181            ],
22182        );
22183    }
22184    fn fmuls_elem(
22185        &mut self,
22186        rd: impl OperandCast,
22187        rn: impl OperandCast,
22188        mrm: impl OperandCast,
22189        elemidx: impl OperandCast,
22190    ) {
22191        return self.emit_n(
22192            Opcode::FMULs_elem as _,
22193            &[
22194                rd.as_operand(),
22195                rn.as_operand(),
22196                mrm.as_operand(),
22197                elemidx.as_operand(),
22198            ],
22199        );
22200    }
22201    fn fmlad_elem(
22202        &mut self,
22203        rd: impl OperandCast,
22204        rn: impl OperandCast,
22205        mrm: impl OperandCast,
22206        elemidx: impl OperandCast,
22207    ) {
22208        return self.emit_n(
22209            Opcode::FMLAd_elem as _,
22210            &[
22211                rd.as_operand(),
22212                rn.as_operand(),
22213                mrm.as_operand(),
22214                elemidx.as_operand(),
22215            ],
22216        );
22217    }
22218    fn fmlsd_elem(
22219        &mut self,
22220        rd: impl OperandCast,
22221        rn: impl OperandCast,
22222        mrm: impl OperandCast,
22223        elemidx: impl OperandCast,
22224    ) {
22225        return self.emit_n(
22226            Opcode::FMLSd_elem as _,
22227            &[
22228                rd.as_operand(),
22229                rn.as_operand(),
22230                mrm.as_operand(),
22231                elemidx.as_operand(),
22232            ],
22233        );
22234    }
22235    fn fmuld_elem(
22236        &mut self,
22237        rd: impl OperandCast,
22238        rn: impl OperandCast,
22239        mrm: impl OperandCast,
22240        elemidx: impl OperandCast,
22241    ) {
22242        return self.emit_n(
22243            Opcode::FMULd_elem as _,
22244            &[
22245                rd.as_operand(),
22246                rn.as_operand(),
22247                mrm.as_operand(),
22248                elemidx.as_operand(),
22249            ],
22250        );
22251    }
22252    fn fmulxs_elem(
22253        &mut self,
22254        rd: impl OperandCast,
22255        rn: impl OperandCast,
22256        mrm: impl OperandCast,
22257        elemidx: impl OperandCast,
22258    ) {
22259        return self.emit_n(
22260            Opcode::FMULXs_elem as _,
22261            &[
22262                rd.as_operand(),
22263                rn.as_operand(),
22264                mrm.as_operand(),
22265                elemidx.as_operand(),
22266            ],
22267        );
22268    }
22269    fn fmulxd_elem(
22270        &mut self,
22271        rd: impl OperandCast,
22272        rn: impl OperandCast,
22273        mrm: impl OperandCast,
22274        elemidx: impl OperandCast,
22275    ) {
22276        return self.emit_n(
22277            Opcode::FMULXd_elem as _,
22278            &[
22279                rd.as_operand(),
22280                rn.as_operand(),
22281                mrm.as_operand(),
22282                elemidx.as_operand(),
22283            ],
22284        );
22285    }
22286    fn fmlah_elem(
22287        &mut self,
22288        rd: impl OperandCast,
22289        rn: impl OperandCast,
22290        mrm: impl OperandCast,
22291        elemidx: impl OperandCast,
22292    ) {
22293        return self.emit_n(
22294            Opcode::FMLAh_elem as _,
22295            &[
22296                rd.as_operand(),
22297                rn.as_operand(),
22298                mrm.as_operand(),
22299                elemidx.as_operand(),
22300            ],
22301        );
22302    }
22303    fn fmlsh_elem(
22304        &mut self,
22305        rd: impl OperandCast,
22306        rn: impl OperandCast,
22307        mrm: impl OperandCast,
22308        elemidx: impl OperandCast,
22309    ) {
22310        return self.emit_n(
22311            Opcode::FMLSh_elem as _,
22312            &[
22313                rd.as_operand(),
22314                rn.as_operand(),
22315                mrm.as_operand(),
22316                elemidx.as_operand(),
22317            ],
22318        );
22319    }
22320    fn fmulh_elem(
22321        &mut self,
22322        rd: impl OperandCast,
22323        rn: impl OperandCast,
22324        mrm: impl OperandCast,
22325        elemidx: impl OperandCast,
22326    ) {
22327        return self.emit_n(
22328            Opcode::FMULh_elem as _,
22329            &[
22330                rd.as_operand(),
22331                rn.as_operand(),
22332                mrm.as_operand(),
22333                elemidx.as_operand(),
22334            ],
22335        );
22336    }
22337    fn fmulxh_elem(
22338        &mut self,
22339        rd: impl OperandCast,
22340        rn: impl OperandCast,
22341        mrm: impl OperandCast,
22342        elemidx: impl OperandCast,
22343    ) {
22344        return self.emit_n(
22345            Opcode::FMULXh_elem as _,
22346            &[
22347                rd.as_operand(),
22348                rn.as_operand(),
22349                mrm.as_operand(),
22350                elemidx.as_operand(),
22351            ],
22352        );
22353    }
22354    fn fmla2s_elem(
22355        &mut self,
22356        rd: impl OperandCast,
22357        rn: impl OperandCast,
22358        mrm: impl OperandCast,
22359        elemidx: impl OperandCast,
22360    ) {
22361        return self.emit_n(
22362            Opcode::FMLA2s_elem as _,
22363            &[
22364                rd.as_operand(),
22365                rn.as_operand(),
22366                mrm.as_operand(),
22367                elemidx.as_operand(),
22368            ],
22369        );
22370    }
22371    fn fmls2s_elem(
22372        &mut self,
22373        rd: impl OperandCast,
22374        rn: impl OperandCast,
22375        mrm: impl OperandCast,
22376        elemidx: impl OperandCast,
22377    ) {
22378        return self.emit_n(
22379            Opcode::FMLS2s_elem as _,
22380            &[
22381                rd.as_operand(),
22382                rn.as_operand(),
22383                mrm.as_operand(),
22384                elemidx.as_operand(),
22385            ],
22386        );
22387    }
22388    fn fmul2s_elem(
22389        &mut self,
22390        rd: impl OperandCast,
22391        rn: impl OperandCast,
22392        mrm: impl OperandCast,
22393        elemidx: impl OperandCast,
22394    ) {
22395        return self.emit_n(
22396            Opcode::FMUL2s_elem as _,
22397            &[
22398                rd.as_operand(),
22399                rn.as_operand(),
22400                mrm.as_operand(),
22401                elemidx.as_operand(),
22402            ],
22403        );
22404    }
22405    fn fmulx2s_elem(
22406        &mut self,
22407        rd: impl OperandCast,
22408        rn: impl OperandCast,
22409        mrm: impl OperandCast,
22410        elemidx: impl OperandCast,
22411    ) {
22412        return self.emit_n(
22413            Opcode::FMULX2s_elem as _,
22414            &[
22415                rd.as_operand(),
22416                rn.as_operand(),
22417                mrm.as_operand(),
22418                elemidx.as_operand(),
22419            ],
22420        );
22421    }
22422    fn fmla4s_elem(
22423        &mut self,
22424        rd: impl OperandCast,
22425        rn: impl OperandCast,
22426        mrm: impl OperandCast,
22427        elemidx: impl OperandCast,
22428    ) {
22429        return self.emit_n(
22430            Opcode::FMLA4s_elem as _,
22431            &[
22432                rd.as_operand(),
22433                rn.as_operand(),
22434                mrm.as_operand(),
22435                elemidx.as_operand(),
22436            ],
22437        );
22438    }
22439    fn fmls4s_elem(
22440        &mut self,
22441        rd: impl OperandCast,
22442        rn: impl OperandCast,
22443        mrm: impl OperandCast,
22444        elemidx: impl OperandCast,
22445    ) {
22446        return self.emit_n(
22447            Opcode::FMLS4s_elem as _,
22448            &[
22449                rd.as_operand(),
22450                rn.as_operand(),
22451                mrm.as_operand(),
22452                elemidx.as_operand(),
22453            ],
22454        );
22455    }
22456    fn fmul4s_elem(
22457        &mut self,
22458        rd: impl OperandCast,
22459        rn: impl OperandCast,
22460        mrm: impl OperandCast,
22461        elemidx: impl OperandCast,
22462    ) {
22463        return self.emit_n(
22464            Opcode::FMUL4s_elem as _,
22465            &[
22466                rd.as_operand(),
22467                rn.as_operand(),
22468                mrm.as_operand(),
22469                elemidx.as_operand(),
22470            ],
22471        );
22472    }
22473    fn fmla2d_elem(
22474        &mut self,
22475        rd: impl OperandCast,
22476        rn: impl OperandCast,
22477        mrm: impl OperandCast,
22478        elemidx: impl OperandCast,
22479    ) {
22480        return self.emit_n(
22481            Opcode::FMLA2d_elem as _,
22482            &[
22483                rd.as_operand(),
22484                rn.as_operand(),
22485                mrm.as_operand(),
22486                elemidx.as_operand(),
22487            ],
22488        );
22489    }
22490    fn fmls2d_elem(
22491        &mut self,
22492        rd: impl OperandCast,
22493        rn: impl OperandCast,
22494        mrm: impl OperandCast,
22495        elemidx: impl OperandCast,
22496    ) {
22497        return self.emit_n(
22498            Opcode::FMLS2d_elem as _,
22499            &[
22500                rd.as_operand(),
22501                rn.as_operand(),
22502                mrm.as_operand(),
22503                elemidx.as_operand(),
22504            ],
22505        );
22506    }
22507    fn fmul2d_elem(
22508        &mut self,
22509        rd: impl OperandCast,
22510        rn: impl OperandCast,
22511        mrm: impl OperandCast,
22512        elemidx: impl OperandCast,
22513    ) {
22514        return self.emit_n(
22515            Opcode::FMUL2d_elem as _,
22516            &[
22517                rd.as_operand(),
22518                rn.as_operand(),
22519                mrm.as_operand(),
22520                elemidx.as_operand(),
22521            ],
22522        );
22523    }
22524    fn fmulx4s_elem(
22525        &mut self,
22526        rd: impl OperandCast,
22527        rn: impl OperandCast,
22528        mrm: impl OperandCast,
22529        elemidx: impl OperandCast,
22530    ) {
22531        return self.emit_n(
22532            Opcode::FMULX4s_elem as _,
22533            &[
22534                rd.as_operand(),
22535                rn.as_operand(),
22536                mrm.as_operand(),
22537                elemidx.as_operand(),
22538            ],
22539        );
22540    }
22541    fn fmulx2d_elem(
22542        &mut self,
22543        rd: impl OperandCast,
22544        rn: impl OperandCast,
22545        mrm: impl OperandCast,
22546        elemidx: impl OperandCast,
22547    ) {
22548        return self.emit_n(
22549            Opcode::FMULX2d_elem as _,
22550            &[
22551                rd.as_operand(),
22552                rn.as_operand(),
22553                mrm.as_operand(),
22554                elemidx.as_operand(),
22555            ],
22556        );
22557    }
22558    fn fmla4h_elem(
22559        &mut self,
22560        rd: impl OperandCast,
22561        rn: impl OperandCast,
22562        mrm: impl OperandCast,
22563        elemidx: impl OperandCast,
22564    ) {
22565        return self.emit_n(
22566            Opcode::FMLA4h_elem as _,
22567            &[
22568                rd.as_operand(),
22569                rn.as_operand(),
22570                mrm.as_operand(),
22571                elemidx.as_operand(),
22572            ],
22573        );
22574    }
22575    fn fmls4h_elem(
22576        &mut self,
22577        rd: impl OperandCast,
22578        rn: impl OperandCast,
22579        mrm: impl OperandCast,
22580        elemidx: impl OperandCast,
22581    ) {
22582        return self.emit_n(
22583            Opcode::FMLS4h_elem as _,
22584            &[
22585                rd.as_operand(),
22586                rn.as_operand(),
22587                mrm.as_operand(),
22588                elemidx.as_operand(),
22589            ],
22590        );
22591    }
22592    fn fmul4h_elem(
22593        &mut self,
22594        rd: impl OperandCast,
22595        rn: impl OperandCast,
22596        mrm: impl OperandCast,
22597        elemidx: impl OperandCast,
22598    ) {
22599        return self.emit_n(
22600            Opcode::FMUL4h_elem as _,
22601            &[
22602                rd.as_operand(),
22603                rn.as_operand(),
22604                mrm.as_operand(),
22605                elemidx.as_operand(),
22606            ],
22607        );
22608    }
22609    fn fmulx4h_elem(
22610        &mut self,
22611        rd: impl OperandCast,
22612        rn: impl OperandCast,
22613        mrm: impl OperandCast,
22614        elemidx: impl OperandCast,
22615    ) {
22616        return self.emit_n(
22617            Opcode::FMULX4h_elem as _,
22618            &[
22619                rd.as_operand(),
22620                rn.as_operand(),
22621                mrm.as_operand(),
22622                elemidx.as_operand(),
22623            ],
22624        );
22625    }
22626    fn fmla8h_elem(
22627        &mut self,
22628        rd: impl OperandCast,
22629        rn: impl OperandCast,
22630        mrm: impl OperandCast,
22631        elemidx: impl OperandCast,
22632    ) {
22633        return self.emit_n(
22634            Opcode::FMLA8h_elem as _,
22635            &[
22636                rd.as_operand(),
22637                rn.as_operand(),
22638                mrm.as_operand(),
22639                elemidx.as_operand(),
22640            ],
22641        );
22642    }
22643    fn fmls8h_elem(
22644        &mut self,
22645        rd: impl OperandCast,
22646        rn: impl OperandCast,
22647        mrm: impl OperandCast,
22648        elemidx: impl OperandCast,
22649    ) {
22650        return self.emit_n(
22651            Opcode::FMLS8h_elem as _,
22652            &[
22653                rd.as_operand(),
22654                rn.as_operand(),
22655                mrm.as_operand(),
22656                elemidx.as_operand(),
22657            ],
22658        );
22659    }
22660    fn fmul8h_elem(
22661        &mut self,
22662        rd: impl OperandCast,
22663        rn: impl OperandCast,
22664        mrm: impl OperandCast,
22665        elemidx: impl OperandCast,
22666    ) {
22667        return self.emit_n(
22668            Opcode::FMUL8h_elem as _,
22669            &[
22670                rd.as_operand(),
22671                rn.as_operand(),
22672                mrm.as_operand(),
22673                elemidx.as_operand(),
22674            ],
22675        );
22676    }
22677    fn fmulx8h_elem(
22678        &mut self,
22679        rd: impl OperandCast,
22680        rn: impl OperandCast,
22681        mrm: impl OperandCast,
22682        elemidx: impl OperandCast,
22683    ) {
22684        return self.emit_n(
22685            Opcode::FMULX8h_elem as _,
22686            &[
22687                rd.as_operand(),
22688                rn.as_operand(),
22689                mrm.as_operand(),
22690                elemidx.as_operand(),
22691            ],
22692        );
22693    }
22694    fn sdot2s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
22695        return self.emit_n(
22696            Opcode::SDOT2s as _,
22697            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
22698        );
22699    }
22700    fn usdot2s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
22701        return self.emit_n(
22702            Opcode::USDOT2s as _,
22703            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
22704        );
22705    }
22706    fn bfdot2s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
22707        return self.emit_n(
22708            Opcode::BFDOT2s as _,
22709            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
22710        );
22711    }
22712    fn udot2s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
22713        return self.emit_n(
22714            Opcode::UDOT2s as _,
22715            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
22716        );
22717    }
22718    fn sdot4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
22719        return self.emit_n(
22720            Opcode::SDOT4s as _,
22721            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
22722        );
22723    }
22724    fn usdot4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
22725        return self.emit_n(
22726            Opcode::USDOT4s as _,
22727            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
22728        );
22729    }
22730    fn smmla4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
22731        return self.emit_n(
22732            Opcode::SMMLA4s as _,
22733            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
22734        );
22735    }
22736    fn usmmla4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
22737        return self.emit_n(
22738            Opcode::USMMLA4s as _,
22739            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
22740        );
22741    }
22742    fn bfmmla4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
22743        return self.emit_n(
22744            Opcode::BFMMLA4s as _,
22745            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
22746        );
22747    }
22748    fn bfdot4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
22749        return self.emit_n(
22750            Opcode::BFDOT4s as _,
22751            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
22752        );
22753    }
22754    fn udot4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
22755        return self.emit_n(
22756            Opcode::UDOT4s as _,
22757            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
22758        );
22759    }
22760    fn ummla4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
22761        return self.emit_n(
22762            Opcode::UMMLA4s as _,
22763            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
22764        );
22765    }
22766    fn sudot2s_elem(
22767        &mut self,
22768        rd: impl OperandCast,
22769        rn: impl OperandCast,
22770        mrm: impl OperandCast,
22771        elemidx: impl OperandCast,
22772    ) {
22773        return self.emit_n(
22774            Opcode::SUDOT2s_elem as _,
22775            &[
22776                rd.as_operand(),
22777                rn.as_operand(),
22778                mrm.as_operand(),
22779                elemidx.as_operand(),
22780            ],
22781        );
22782    }
22783    fn bfdot2s_elem(
22784        &mut self,
22785        rd: impl OperandCast,
22786        rn: impl OperandCast,
22787        mrm: impl OperandCast,
22788        elemidx: impl OperandCast,
22789    ) {
22790        return self.emit_n(
22791            Opcode::BFDOT2s_elem as _,
22792            &[
22793                rd.as_operand(),
22794                rn.as_operand(),
22795                mrm.as_operand(),
22796                elemidx.as_operand(),
22797            ],
22798        );
22799    }
22800    fn sdot2s_elem(
22801        &mut self,
22802        rd: impl OperandCast,
22803        rn: impl OperandCast,
22804        mrm: impl OperandCast,
22805        elemidx: impl OperandCast,
22806    ) {
22807        return self.emit_n(
22808            Opcode::SDOT2s_elem as _,
22809            &[
22810                rd.as_operand(),
22811                rn.as_operand(),
22812                mrm.as_operand(),
22813                elemidx.as_operand(),
22814            ],
22815        );
22816    }
22817    fn usdot2s_elem(
22818        &mut self,
22819        rd: impl OperandCast,
22820        rn: impl OperandCast,
22821        mrm: impl OperandCast,
22822        elemidx: impl OperandCast,
22823    ) {
22824        return self.emit_n(
22825            Opcode::USDOT2s_elem as _,
22826            &[
22827                rd.as_operand(),
22828                rn.as_operand(),
22829                mrm.as_operand(),
22830                elemidx.as_operand(),
22831            ],
22832        );
22833    }
22834    fn udot2s_elem(
22835        &mut self,
22836        rd: impl OperandCast,
22837        rn: impl OperandCast,
22838        mrm: impl OperandCast,
22839        elemidx: impl OperandCast,
22840    ) {
22841        return self.emit_n(
22842            Opcode::UDOT2s_elem as _,
22843            &[
22844                rd.as_operand(),
22845                rn.as_operand(),
22846                mrm.as_operand(),
22847                elemidx.as_operand(),
22848            ],
22849        );
22850    }
22851    fn sudot4s_elem(
22852        &mut self,
22853        rd: impl OperandCast,
22854        rn: impl OperandCast,
22855        mrm: impl OperandCast,
22856        elemidx: impl OperandCast,
22857    ) {
22858        return self.emit_n(
22859            Opcode::SUDOT4s_elem as _,
22860            &[
22861                rd.as_operand(),
22862                rn.as_operand(),
22863                mrm.as_operand(),
22864                elemidx.as_operand(),
22865            ],
22866        );
22867    }
22868    fn bfdot4s_elem(
22869        &mut self,
22870        rd: impl OperandCast,
22871        rn: impl OperandCast,
22872        mrm: impl OperandCast,
22873        elemidx: impl OperandCast,
22874    ) {
22875        return self.emit_n(
22876            Opcode::BFDOT4s_elem as _,
22877            &[
22878                rd.as_operand(),
22879                rn.as_operand(),
22880                mrm.as_operand(),
22881                elemidx.as_operand(),
22882            ],
22883        );
22884    }
22885    fn sdot4s_elem(
22886        &mut self,
22887        rd: impl OperandCast,
22888        rn: impl OperandCast,
22889        mrm: impl OperandCast,
22890        elemidx: impl OperandCast,
22891    ) {
22892        return self.emit_n(
22893            Opcode::SDOT4s_elem as _,
22894            &[
22895                rd.as_operand(),
22896                rn.as_operand(),
22897                mrm.as_operand(),
22898                elemidx.as_operand(),
22899            ],
22900        );
22901    }
22902    fn usdot4s_elem(
22903        &mut self,
22904        rd: impl OperandCast,
22905        rn: impl OperandCast,
22906        mrm: impl OperandCast,
22907        elemidx: impl OperandCast,
22908    ) {
22909        return self.emit_n(
22910            Opcode::USDOT4s_elem as _,
22911            &[
22912                rd.as_operand(),
22913                rn.as_operand(),
22914                mrm.as_operand(),
22915                elemidx.as_operand(),
22916            ],
22917        );
22918    }
22919    fn udot4s_elem(
22920        &mut self,
22921        rd: impl OperandCast,
22922        rn: impl OperandCast,
22923        mrm: impl OperandCast,
22924        elemidx: impl OperandCast,
22925    ) {
22926        return self.emit_n(
22927            Opcode::UDOT4s_elem as _,
22928            &[
22929                rd.as_operand(),
22930                rn.as_operand(),
22931                mrm.as_operand(),
22932                elemidx.as_operand(),
22933            ],
22934        );
22935    }
22936    fn bfmlalb(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
22937        return self.emit_n(
22938            Opcode::BFMLALB as _,
22939            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
22940        );
22941    }
22942    fn bfmlalt(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
22943        return self.emit_n(
22944            Opcode::BFMLALT as _,
22945            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
22946        );
22947    }
22948    fn bfmlalb_elem(
22949        &mut self,
22950        rd: impl OperandCast,
22951        rn: impl OperandCast,
22952        mrm: impl OperandCast,
22953        elemidx: impl OperandCast,
22954    ) {
22955        return self.emit_n(
22956            Opcode::BFMLALB_elem as _,
22957            &[
22958                rd.as_operand(),
22959                rn.as_operand(),
22960                mrm.as_operand(),
22961                elemidx.as_operand(),
22962            ],
22963        );
22964    }
22965    fn bfmlalt_elem(
22966        &mut self,
22967        rd: impl OperandCast,
22968        rn: impl OperandCast,
22969        mrm: impl OperandCast,
22970        elemidx: impl OperandCast,
22971    ) {
22972        return self.emit_n(
22973            Opcode::BFMLALT_elem as _,
22974            &[
22975                rd.as_operand(),
22976                rn.as_operand(),
22977                mrm.as_operand(),
22978                elemidx.as_operand(),
22979            ],
22980        );
22981    }
22982    fn fmlal_2s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
22983        return self.emit_n(
22984            Opcode::FMLAL_2s as _,
22985            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
22986        );
22987    }
22988    fn fmlsl_2s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
22989        return self.emit_n(
22990            Opcode::FMLSL_2s as _,
22991            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
22992        );
22993    }
22994    fn fmlal2_2s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
22995        return self.emit_n(
22996            Opcode::FMLAL2_2s as _,
22997            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
22998        );
22999    }
23000    fn fmlsl2_2s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
23001        return self.emit_n(
23002            Opcode::FMLSL2_2s as _,
23003            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
23004        );
23005    }
23006    fn fmlal_4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
23007        return self.emit_n(
23008            Opcode::FMLAL_4s as _,
23009            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
23010        );
23011    }
23012    fn fmlsl_4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
23013        return self.emit_n(
23014            Opcode::FMLSL_4s as _,
23015            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
23016        );
23017    }
23018    fn fmlal2_4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
23019        return self.emit_n(
23020            Opcode::FMLAL2_4s as _,
23021            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
23022        );
23023    }
23024    fn fmlsl2_4s(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
23025        return self.emit_n(
23026            Opcode::FMLSL2_4s as _,
23027            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
23028        );
23029    }
23030    fn fmlal_2s_elem(
23031        &mut self,
23032        rd: impl OperandCast,
23033        rn: impl OperandCast,
23034        mrm: impl OperandCast,
23035        elemidx: impl OperandCast,
23036    ) {
23037        return self.emit_n(
23038            Opcode::FMLAL_2s_elem as _,
23039            &[
23040                rd.as_operand(),
23041                rn.as_operand(),
23042                mrm.as_operand(),
23043                elemidx.as_operand(),
23044            ],
23045        );
23046    }
23047    fn fmlsl_2s_elem(
23048        &mut self,
23049        rd: impl OperandCast,
23050        rn: impl OperandCast,
23051        mrm: impl OperandCast,
23052        elemidx: impl OperandCast,
23053    ) {
23054        return self.emit_n(
23055            Opcode::FMLSL_2s_elem as _,
23056            &[
23057                rd.as_operand(),
23058                rn.as_operand(),
23059                mrm.as_operand(),
23060                elemidx.as_operand(),
23061            ],
23062        );
23063    }
23064    fn fmlal2_2s_elem(
23065        &mut self,
23066        rd: impl OperandCast,
23067        rn: impl OperandCast,
23068        mrm: impl OperandCast,
23069        elemidx: impl OperandCast,
23070    ) {
23071        return self.emit_n(
23072            Opcode::FMLAL2_2s_elem as _,
23073            &[
23074                rd.as_operand(),
23075                rn.as_operand(),
23076                mrm.as_operand(),
23077                elemidx.as_operand(),
23078            ],
23079        );
23080    }
23081    fn fmlsl2_2s_elem(
23082        &mut self,
23083        rd: impl OperandCast,
23084        rn: impl OperandCast,
23085        mrm: impl OperandCast,
23086        elemidx: impl OperandCast,
23087    ) {
23088        return self.emit_n(
23089            Opcode::FMLSL2_2s_elem as _,
23090            &[
23091                rd.as_operand(),
23092                rn.as_operand(),
23093                mrm.as_operand(),
23094                elemidx.as_operand(),
23095            ],
23096        );
23097    }
23098    fn fmlal_4s_elem(
23099        &mut self,
23100        rd: impl OperandCast,
23101        rn: impl OperandCast,
23102        mrm: impl OperandCast,
23103        elemidx: impl OperandCast,
23104    ) {
23105        return self.emit_n(
23106            Opcode::FMLAL_4s_elem as _,
23107            &[
23108                rd.as_operand(),
23109                rn.as_operand(),
23110                mrm.as_operand(),
23111                elemidx.as_operand(),
23112            ],
23113        );
23114    }
23115    fn fmlsl_4s_elem(
23116        &mut self,
23117        rd: impl OperandCast,
23118        rn: impl OperandCast,
23119        mrm: impl OperandCast,
23120        elemidx: impl OperandCast,
23121    ) {
23122        return self.emit_n(
23123            Opcode::FMLSL_4s_elem as _,
23124            &[
23125                rd.as_operand(),
23126                rn.as_operand(),
23127                mrm.as_operand(),
23128                elemidx.as_operand(),
23129            ],
23130        );
23131    }
23132    fn fmlal2_4s_elem(
23133        &mut self,
23134        rd: impl OperandCast,
23135        rn: impl OperandCast,
23136        mrm: impl OperandCast,
23137        elemidx: impl OperandCast,
23138    ) {
23139        return self.emit_n(
23140            Opcode::FMLAL2_4s_elem as _,
23141            &[
23142                rd.as_operand(),
23143                rn.as_operand(),
23144                mrm.as_operand(),
23145                elemidx.as_operand(),
23146            ],
23147        );
23148    }
23149    fn fmlsl2_4s_elem(
23150        &mut self,
23151        rd: impl OperandCast,
23152        rn: impl OperandCast,
23153        mrm: impl OperandCast,
23154        elemidx: impl OperandCast,
23155    ) {
23156        return self.emit_n(
23157            Opcode::FMLSL2_4s_elem as _,
23158            &[
23159                rd.as_operand(),
23160                rn.as_operand(),
23161                mrm.as_operand(),
23162                elemidx.as_operand(),
23163            ],
23164        );
23165    }
23166    fn fcmla4h(
23167        &mut self,
23168        rd: impl OperandCast,
23169        rn: impl OperandCast,
23170        rm: impl OperandCast,
23171        rot: impl OperandCast,
23172    ) {
23173        return self.emit_n(
23174            Opcode::FCMLA4h as _,
23175            &[
23176                rd.as_operand(),
23177                rn.as_operand(),
23178                rm.as_operand(),
23179                rot.as_operand(),
23180            ],
23181        );
23182    }
23183    fn fcadd4h(
23184        &mut self,
23185        rd: impl OperandCast,
23186        rn: impl OperandCast,
23187        rm: impl OperandCast,
23188        rot: impl OperandCast,
23189    ) {
23190        return self.emit_n(
23191            Opcode::FCADD4h as _,
23192            &[
23193                rd.as_operand(),
23194                rn.as_operand(),
23195                rm.as_operand(),
23196                rot.as_operand(),
23197            ],
23198        );
23199    }
23200    fn fcmla2s(
23201        &mut self,
23202        rd: impl OperandCast,
23203        rn: impl OperandCast,
23204        rm: impl OperandCast,
23205        rot: impl OperandCast,
23206    ) {
23207        return self.emit_n(
23208            Opcode::FCMLA2s as _,
23209            &[
23210                rd.as_operand(),
23211                rn.as_operand(),
23212                rm.as_operand(),
23213                rot.as_operand(),
23214            ],
23215        );
23216    }
23217    fn fcadd2s(
23218        &mut self,
23219        rd: impl OperandCast,
23220        rn: impl OperandCast,
23221        rm: impl OperandCast,
23222        rot: impl OperandCast,
23223    ) {
23224        return self.emit_n(
23225            Opcode::FCADD2s as _,
23226            &[
23227                rd.as_operand(),
23228                rn.as_operand(),
23229                rm.as_operand(),
23230                rot.as_operand(),
23231            ],
23232        );
23233    }
23234    fn fcmla8h(
23235        &mut self,
23236        rd: impl OperandCast,
23237        rn: impl OperandCast,
23238        rm: impl OperandCast,
23239        rot: impl OperandCast,
23240    ) {
23241        return self.emit_n(
23242            Opcode::FCMLA8h as _,
23243            &[
23244                rd.as_operand(),
23245                rn.as_operand(),
23246                rm.as_operand(),
23247                rot.as_operand(),
23248            ],
23249        );
23250    }
23251    fn fcadd8h(
23252        &mut self,
23253        rd: impl OperandCast,
23254        rn: impl OperandCast,
23255        rm: impl OperandCast,
23256        rot: impl OperandCast,
23257    ) {
23258        return self.emit_n(
23259            Opcode::FCADD8h as _,
23260            &[
23261                rd.as_operand(),
23262                rn.as_operand(),
23263                rm.as_operand(),
23264                rot.as_operand(),
23265            ],
23266        );
23267    }
23268    fn fcmla4s(
23269        &mut self,
23270        rd: impl OperandCast,
23271        rn: impl OperandCast,
23272        rm: impl OperandCast,
23273        rot: impl OperandCast,
23274    ) {
23275        return self.emit_n(
23276            Opcode::FCMLA4s as _,
23277            &[
23278                rd.as_operand(),
23279                rn.as_operand(),
23280                rm.as_operand(),
23281                rot.as_operand(),
23282            ],
23283        );
23284    }
23285    fn fcadd4s(
23286        &mut self,
23287        rd: impl OperandCast,
23288        rn: impl OperandCast,
23289        rm: impl OperandCast,
23290        rot: impl OperandCast,
23291    ) {
23292        return self.emit_n(
23293            Opcode::FCADD4s as _,
23294            &[
23295                rd.as_operand(),
23296                rn.as_operand(),
23297                rm.as_operand(),
23298                rot.as_operand(),
23299            ],
23300        );
23301    }
23302    fn fcmla2d(
23303        &mut self,
23304        rd: impl OperandCast,
23305        rn: impl OperandCast,
23306        rm: impl OperandCast,
23307        rot: impl OperandCast,
23308    ) {
23309        return self.emit_n(
23310            Opcode::FCMLA2d as _,
23311            &[
23312                rd.as_operand(),
23313                rn.as_operand(),
23314                rm.as_operand(),
23315                rot.as_operand(),
23316            ],
23317        );
23318    }
23319    fn fcadd2d(
23320        &mut self,
23321        rd: impl OperandCast,
23322        rn: impl OperandCast,
23323        rm: impl OperandCast,
23324        rot: impl OperandCast,
23325    ) {
23326        return self.emit_n(
23327            Opcode::FCADD2d as _,
23328            &[
23329                rd.as_operand(),
23330                rn.as_operand(),
23331                rm.as_operand(),
23332                rot.as_operand(),
23333            ],
23334        );
23335    }
23336    fn fcmla4h_elem(
23337        &mut self,
23338        rd: impl OperandCast,
23339        rn: impl OperandCast,
23340        mrm: impl OperandCast,
23341        elemidx: impl OperandCast,
23342        rot: impl OperandCast,
23343    ) {
23344        return self.emit_n(
23345            Opcode::FCMLA4h_elem as _,
23346            &[
23347                rd.as_operand(),
23348                rn.as_operand(),
23349                mrm.as_operand(),
23350                elemidx.as_operand(),
23351                rot.as_operand(),
23352            ],
23353        );
23354    }
23355    fn fcmla8h_elem(
23356        &mut self,
23357        rd: impl OperandCast,
23358        rn: impl OperandCast,
23359        mrm: impl OperandCast,
23360        elemidx: impl OperandCast,
23361        rot: impl OperandCast,
23362    ) {
23363        return self.emit_n(
23364            Opcode::FCMLA8h_elem as _,
23365            &[
23366                rd.as_operand(),
23367                rn.as_operand(),
23368                mrm.as_operand(),
23369                elemidx.as_operand(),
23370                rot.as_operand(),
23371            ],
23372        );
23373    }
23374    fn fcmla4s_elem(
23375        &mut self,
23376        rd: impl OperandCast,
23377        rn: impl OperandCast,
23378        mrm: impl OperandCast,
23379        elemidx: impl OperandCast,
23380        rot: impl OperandCast,
23381    ) {
23382        return self.emit_n(
23383            Opcode::FCMLA4s_elem as _,
23384            &[
23385                rd.as_operand(),
23386                rn.as_operand(),
23387                mrm.as_operand(),
23388                elemidx.as_operand(),
23389                rot.as_operand(),
23390            ],
23391        );
23392    }
23393    fn movid(&mut self, rd: impl OperandCast, imm64: impl OperandCast) {
23394        return self.emit_n(Opcode::MOVId as _, &[rd.as_operand(), imm64.as_operand()]);
23395    }
23396    fn movi2d(&mut self, rd: impl OperandCast, imm64: impl OperandCast) {
23397        return self.emit_n(Opcode::MOVI2d as _, &[rd.as_operand(), imm64.as_operand()]);
23398    }
23399    fn orr2si(&mut self, rd: impl OperandCast, imm: impl OperandCast, lsl: impl OperandCast) {
23400        return self.emit_n(
23401            Opcode::ORR2si as _,
23402            &[rd.as_operand(), imm.as_operand(), lsl.as_operand()],
23403        );
23404    }
23405    fn bic2si(&mut self, rd: impl OperandCast, imm: impl OperandCast, lsl: impl OperandCast) {
23406        return self.emit_n(
23407            Opcode::BIC2si as _,
23408            &[rd.as_operand(), imm.as_operand(), lsl.as_operand()],
23409        );
23410    }
23411    fn orr4si(&mut self, rd: impl OperandCast, imm: impl OperandCast, lsl: impl OperandCast) {
23412        return self.emit_n(
23413            Opcode::ORR4si as _,
23414            &[rd.as_operand(), imm.as_operand(), lsl.as_operand()],
23415        );
23416    }
23417    fn bic4si(&mut self, rd: impl OperandCast, imm: impl OperandCast, lsl: impl OperandCast) {
23418        return self.emit_n(
23419            Opcode::BIC4si as _,
23420            &[rd.as_operand(), imm.as_operand(), lsl.as_operand()],
23421        );
23422    }
23423    fn orr4hi(&mut self, rd: impl OperandCast, imm: impl OperandCast, lsl: impl OperandCast) {
23424        return self.emit_n(
23425            Opcode::ORR4hi as _,
23426            &[rd.as_operand(), imm.as_operand(), lsl.as_operand()],
23427        );
23428    }
23429    fn bic4hi(&mut self, rd: impl OperandCast, imm: impl OperandCast, lsl: impl OperandCast) {
23430        return self.emit_n(
23431            Opcode::BIC4hi as _,
23432            &[rd.as_operand(), imm.as_operand(), lsl.as_operand()],
23433        );
23434    }
23435    fn orr8hi(&mut self, rd: impl OperandCast, imm: impl OperandCast, lsl: impl OperandCast) {
23436        return self.emit_n(
23437            Opcode::ORR8hi as _,
23438            &[rd.as_operand(), imm.as_operand(), lsl.as_operand()],
23439        );
23440    }
23441    fn bic8hi(&mut self, rd: impl OperandCast, imm: impl OperandCast, lsl: impl OperandCast) {
23442        return self.emit_n(
23443            Opcode::BIC8hi as _,
23444            &[rd.as_operand(), imm.as_operand(), lsl.as_operand()],
23445        );
23446    }
23447    fn fmov2si(&mut self, rd: impl OperandCast, imm: impl OperandCast) {
23448        return self.emit_n(Opcode::FMOV2si as _, &[rd.as_operand(), imm.as_operand()]);
23449    }
23450    fn fmov4hi(&mut self, rd: impl OperandCast, imm: impl OperandCast) {
23451        return self.emit_n(Opcode::FMOV4hi as _, &[rd.as_operand(), imm.as_operand()]);
23452    }
23453    fn fmov4si(&mut self, rd: impl OperandCast, imm: impl OperandCast) {
23454        return self.emit_n(Opcode::FMOV4si as _, &[rd.as_operand(), imm.as_operand()]);
23455    }
23456    fn fmov8hi(&mut self, rd: impl OperandCast, imm: impl OperandCast) {
23457        return self.emit_n(Opcode::FMOV8hi as _, &[rd.as_operand(), imm.as_operand()]);
23458    }
23459    fn fmov2di(&mut self, rd: impl OperandCast, imm: impl OperandCast) {
23460        return self.emit_n(Opcode::FMOV2di as _, &[rd.as_operand(), imm.as_operand()]);
23461    }
23462    fn pacia(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
23463        return self.emit_n(Opcode::PACIA as _, &[rd.as_operand(), rn.as_operand()]);
23464    }
23465    fn pacib(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
23466        return self.emit_n(Opcode::PACIB as _, &[rd.as_operand(), rn.as_operand()]);
23467    }
23468    fn pacda(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
23469        return self.emit_n(Opcode::PACDA as _, &[rd.as_operand(), rn.as_operand()]);
23470    }
23471    fn pacdb(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
23472        return self.emit_n(Opcode::PACDB as _, &[rd.as_operand(), rn.as_operand()]);
23473    }
23474    fn autia(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
23475        return self.emit_n(Opcode::AUTIA as _, &[rd.as_operand(), rn.as_operand()]);
23476    }
23477    fn autib(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
23478        return self.emit_n(Opcode::AUTIB as _, &[rd.as_operand(), rn.as_operand()]);
23479    }
23480    fn autda(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
23481        return self.emit_n(Opcode::AUTDA as _, &[rd.as_operand(), rn.as_operand()]);
23482    }
23483    fn autdb(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
23484        return self.emit_n(Opcode::AUTDB as _, &[rd.as_operand(), rn.as_operand()]);
23485    }
23486    fn paciza(&mut self, rd: impl OperandCast) {
23487        return self.emit_n(Opcode::PACIZA as _, &[rd.as_operand()]);
23488    }
23489    fn pacizb(&mut self, rd: impl OperandCast) {
23490        return self.emit_n(Opcode::PACIZB as _, &[rd.as_operand()]);
23491    }
23492    fn pacdza(&mut self, rd: impl OperandCast) {
23493        return self.emit_n(Opcode::PACDZA as _, &[rd.as_operand()]);
23494    }
23495    fn pacdzb(&mut self, rd: impl OperandCast) {
23496        return self.emit_n(Opcode::PACDZB as _, &[rd.as_operand()]);
23497    }
23498    fn autiza(&mut self, rd: impl OperandCast) {
23499        return self.emit_n(Opcode::AUTIZA as _, &[rd.as_operand()]);
23500    }
23501    fn autizb(&mut self, rd: impl OperandCast) {
23502        return self.emit_n(Opcode::AUTIZB as _, &[rd.as_operand()]);
23503    }
23504    fn autdza(&mut self, rd: impl OperandCast) {
23505        return self.emit_n(Opcode::AUTDZA as _, &[rd.as_operand()]);
23506    }
23507    fn autdzb(&mut self, rd: impl OperandCast) {
23508        return self.emit_n(Opcode::AUTDZB as _, &[rd.as_operand()]);
23509    }
23510    fn ldraa(&mut self, rt: impl OperandCast, rn: impl OperandCast, simm9: impl OperandCast) {
23511        return self.emit_n(
23512            Opcode::LDRAA as _,
23513            &[rt.as_operand(), rn.as_operand(), simm9.as_operand()],
23514        );
23515    }
23516    fn ldraa_pre(&mut self, rt: impl OperandCast, rn: impl OperandCast, simm9: impl OperandCast) {
23517        return self.emit_n(
23518            Opcode::LDRAA_pre as _,
23519            &[rt.as_operand(), rn.as_operand(), simm9.as_operand()],
23520        );
23521    }
23522    fn ldrab(&mut self, rt: impl OperandCast, rn: impl OperandCast, simm9: impl OperandCast) {
23523        return self.emit_n(
23524            Opcode::LDRAB as _,
23525            &[rt.as_operand(), rn.as_operand(), simm9.as_operand()],
23526        );
23527    }
23528    fn ldrab_pre(&mut self, rt: impl OperandCast, rn: impl OperandCast, simm9: impl OperandCast) {
23529        return self.emit_n(
23530            Opcode::LDRAB_pre as _,
23531            &[rt.as_operand(), rn.as_operand(), simm9.as_operand()],
23532        );
23533    }
23534    fn xpaci(&mut self, rd: impl OperandCast) {
23535        return self.emit_n(Opcode::XPACI as _, &[rd.as_operand()]);
23536    }
23537    fn xpacd(&mut self, rd: impl OperandCast) {
23538        return self.emit_n(Opcode::XPACD as _, &[rd.as_operand()]);
23539    }
23540    fn pacga(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
23541        return self.emit_n(
23542            Opcode::PACGA as _,
23543            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
23544        );
23545    }
23546    fn casb(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
23547        return self.emit_n(
23548            Opcode::CASB as _,
23549            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
23550        );
23551    }
23552    fn caslb(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
23553        return self.emit_n(
23554            Opcode::CASLB as _,
23555            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
23556        );
23557    }
23558    fn casab(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
23559        return self.emit_n(
23560            Opcode::CASAB as _,
23561            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
23562        );
23563    }
23564    fn casalb(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
23565        return self.emit_n(
23566            Opcode::CASALB as _,
23567            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
23568        );
23569    }
23570    fn cash(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
23571        return self.emit_n(
23572            Opcode::CASH as _,
23573            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
23574        );
23575    }
23576    fn caslh(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
23577        return self.emit_n(
23578            Opcode::CASLH as _,
23579            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
23580        );
23581    }
23582    fn casah(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
23583        return self.emit_n(
23584            Opcode::CASAH as _,
23585            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
23586        );
23587    }
23588    fn casalh(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
23589        return self.emit_n(
23590            Opcode::CASALH as _,
23591            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
23592        );
23593    }
23594    fn casw(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
23595        return self.emit_n(
23596            Opcode::CASw as _,
23597            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
23598        );
23599    }
23600    fn caslw(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
23601        return self.emit_n(
23602            Opcode::CASLw as _,
23603            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
23604        );
23605    }
23606    fn casaw(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
23607        return self.emit_n(
23608            Opcode::CASAw as _,
23609            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
23610        );
23611    }
23612    fn casalw(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
23613        return self.emit_n(
23614            Opcode::CASALw as _,
23615            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
23616        );
23617    }
23618    fn casx(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
23619        return self.emit_n(
23620            Opcode::CASx as _,
23621            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
23622        );
23623    }
23624    fn caslx(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
23625        return self.emit_n(
23626            Opcode::CASLx as _,
23627            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
23628        );
23629    }
23630    fn casax(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
23631        return self.emit_n(
23632            Opcode::CASAx as _,
23633            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
23634        );
23635    }
23636    fn casalx(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
23637        return self.emit_n(
23638            Opcode::CASALx as _,
23639            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
23640        );
23641    }
23642    fn caspw(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
23643        return self.emit_n(
23644            Opcode::CASPw as _,
23645            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
23646        );
23647    }
23648    fn casplw(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
23649        return self.emit_n(
23650            Opcode::CASPLw as _,
23651            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
23652        );
23653    }
23654    fn caspaw(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
23655        return self.emit_n(
23656            Opcode::CASPAw as _,
23657            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
23658        );
23659    }
23660    fn caspalw(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
23661        return self.emit_n(
23662            Opcode::CASPALw as _,
23663            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
23664        );
23665    }
23666    fn caspx(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
23667        return self.emit_n(
23668            Opcode::CASPx as _,
23669            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
23670        );
23671    }
23672    fn casplx(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
23673        return self.emit_n(
23674            Opcode::CASPLx as _,
23675            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
23676        );
23677    }
23678    fn caspax(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
23679        return self.emit_n(
23680            Opcode::CASPAx as _,
23681            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
23682        );
23683    }
23684    fn caspalx(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
23685        return self.emit_n(
23686            Opcode::CASPALx as _,
23687            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
23688        );
23689    }
23690    fn swpb(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
23691        return self.emit_n(
23692            Opcode::SWPB as _,
23693            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
23694        );
23695    }
23696    fn swplb(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
23697        return self.emit_n(
23698            Opcode::SWPLB as _,
23699            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
23700        );
23701    }
23702    fn swpab(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
23703        return self.emit_n(
23704            Opcode::SWPAB as _,
23705            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
23706        );
23707    }
23708    fn swpalb(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
23709        return self.emit_n(
23710            Opcode::SWPALB as _,
23711            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
23712        );
23713    }
23714    fn swph(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
23715        return self.emit_n(
23716            Opcode::SWPH as _,
23717            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
23718        );
23719    }
23720    fn swplh(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
23721        return self.emit_n(
23722            Opcode::SWPLH as _,
23723            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
23724        );
23725    }
23726    fn swpah(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
23727        return self.emit_n(
23728            Opcode::SWPAH as _,
23729            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
23730        );
23731    }
23732    fn swpalh(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
23733        return self.emit_n(
23734            Opcode::SWPALH as _,
23735            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
23736        );
23737    }
23738    fn swpw(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
23739        return self.emit_n(
23740            Opcode::SWPw as _,
23741            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
23742        );
23743    }
23744    fn swplw(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
23745        return self.emit_n(
23746            Opcode::SWPLw as _,
23747            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
23748        );
23749    }
23750    fn swpaw(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
23751        return self.emit_n(
23752            Opcode::SWPAw as _,
23753            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
23754        );
23755    }
23756    fn swpalw(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
23757        return self.emit_n(
23758            Opcode::SWPALw as _,
23759            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
23760        );
23761    }
23762    fn swpx(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
23763        return self.emit_n(
23764            Opcode::SWPx as _,
23765            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
23766        );
23767    }
23768    fn swplx(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
23769        return self.emit_n(
23770            Opcode::SWPLx as _,
23771            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
23772        );
23773    }
23774    fn swpax(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
23775        return self.emit_n(
23776            Opcode::SWPAx as _,
23777            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
23778        );
23779    }
23780    fn swpalx(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
23781        return self.emit_n(
23782            Opcode::SWPALx as _,
23783            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
23784        );
23785    }
23786    fn ldaddb(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
23787        return self.emit_n(
23788            Opcode::LDADDB as _,
23789            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
23790        );
23791    }
23792    fn ldclrb(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
23793        return self.emit_n(
23794            Opcode::LDCLRB as _,
23795            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
23796        );
23797    }
23798    fn ldeorb(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
23799        return self.emit_n(
23800            Opcode::LDEORB as _,
23801            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
23802        );
23803    }
23804    fn ldsetb(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
23805        return self.emit_n(
23806            Opcode::LDSETB as _,
23807            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
23808        );
23809    }
23810    fn ldsmaxb(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
23811        return self.emit_n(
23812            Opcode::LDSMAXB as _,
23813            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
23814        );
23815    }
23816    fn ldsminb(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
23817        return self.emit_n(
23818            Opcode::LDSMINB as _,
23819            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
23820        );
23821    }
23822    fn ldumaxb(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
23823        return self.emit_n(
23824            Opcode::LDUMAXB as _,
23825            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
23826        );
23827    }
23828    fn lduminb(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
23829        return self.emit_n(
23830            Opcode::LDUMINB as _,
23831            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
23832        );
23833    }
23834    fn ldaddlb(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
23835        return self.emit_n(
23836            Opcode::LDADDLB as _,
23837            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
23838        );
23839    }
23840    fn ldclrlb(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
23841        return self.emit_n(
23842            Opcode::LDCLRLB as _,
23843            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
23844        );
23845    }
23846    fn ldeorlb(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
23847        return self.emit_n(
23848            Opcode::LDEORLB as _,
23849            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
23850        );
23851    }
23852    fn ldsetlb(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
23853        return self.emit_n(
23854            Opcode::LDSETLB as _,
23855            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
23856        );
23857    }
23858    fn ldsmaxlb(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
23859        return self.emit_n(
23860            Opcode::LDSMAXLB as _,
23861            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
23862        );
23863    }
23864    fn ldsminlb(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
23865        return self.emit_n(
23866            Opcode::LDSMINLB as _,
23867            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
23868        );
23869    }
23870    fn ldumaxlb(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
23871        return self.emit_n(
23872            Opcode::LDUMAXLB as _,
23873            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
23874        );
23875    }
23876    fn lduminlb(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
23877        return self.emit_n(
23878            Opcode::LDUMINLB as _,
23879            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
23880        );
23881    }
23882    fn ldaddab(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
23883        return self.emit_n(
23884            Opcode::LDADDAB as _,
23885            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
23886        );
23887    }
23888    fn ldclrab(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
23889        return self.emit_n(
23890            Opcode::LDCLRAB as _,
23891            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
23892        );
23893    }
23894    fn ldeorab(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
23895        return self.emit_n(
23896            Opcode::LDEORAB as _,
23897            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
23898        );
23899    }
23900    fn ldsetab(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
23901        return self.emit_n(
23902            Opcode::LDSETAB as _,
23903            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
23904        );
23905    }
23906    fn ldsmaxab(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
23907        return self.emit_n(
23908            Opcode::LDSMAXAB as _,
23909            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
23910        );
23911    }
23912    fn ldsminab(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
23913        return self.emit_n(
23914            Opcode::LDSMINAB as _,
23915            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
23916        );
23917    }
23918    fn ldumaxab(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
23919        return self.emit_n(
23920            Opcode::LDUMAXAB as _,
23921            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
23922        );
23923    }
23924    fn lduminab(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
23925        return self.emit_n(
23926            Opcode::LDUMINAB as _,
23927            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
23928        );
23929    }
23930    fn ldaddalb(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
23931        return self.emit_n(
23932            Opcode::LDADDALB as _,
23933            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
23934        );
23935    }
23936    fn ldclralb(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
23937        return self.emit_n(
23938            Opcode::LDCLRALB as _,
23939            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
23940        );
23941    }
23942    fn ldeoralb(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
23943        return self.emit_n(
23944            Opcode::LDEORALB as _,
23945            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
23946        );
23947    }
23948    fn ldsetalb(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
23949        return self.emit_n(
23950            Opcode::LDSETALB as _,
23951            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
23952        );
23953    }
23954    fn ldsmaxalb(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
23955        return self.emit_n(
23956            Opcode::LDSMAXALB as _,
23957            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
23958        );
23959    }
23960    fn ldsminalb(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
23961        return self.emit_n(
23962            Opcode::LDSMINALB as _,
23963            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
23964        );
23965    }
23966    fn ldumaxalb(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
23967        return self.emit_n(
23968            Opcode::LDUMAXALB as _,
23969            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
23970        );
23971    }
23972    fn lduminalb(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
23973        return self.emit_n(
23974            Opcode::LDUMINALB as _,
23975            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
23976        );
23977    }
23978    fn ldaddh(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
23979        return self.emit_n(
23980            Opcode::LDADDH as _,
23981            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
23982        );
23983    }
23984    fn ldclrh(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
23985        return self.emit_n(
23986            Opcode::LDCLRH as _,
23987            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
23988        );
23989    }
23990    fn ldeorh(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
23991        return self.emit_n(
23992            Opcode::LDEORH as _,
23993            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
23994        );
23995    }
23996    fn ldseth(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
23997        return self.emit_n(
23998            Opcode::LDSETH as _,
23999            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
24000        );
24001    }
24002    fn ldsmaxh(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
24003        return self.emit_n(
24004            Opcode::LDSMAXH as _,
24005            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
24006        );
24007    }
24008    fn ldsminh(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
24009        return self.emit_n(
24010            Opcode::LDSMINH as _,
24011            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
24012        );
24013    }
24014    fn ldumaxh(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
24015        return self.emit_n(
24016            Opcode::LDUMAXH as _,
24017            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
24018        );
24019    }
24020    fn lduminh(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
24021        return self.emit_n(
24022            Opcode::LDUMINH as _,
24023            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
24024        );
24025    }
24026    fn ldaddlh(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
24027        return self.emit_n(
24028            Opcode::LDADDLH as _,
24029            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
24030        );
24031    }
24032    fn ldclrlh(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
24033        return self.emit_n(
24034            Opcode::LDCLRLH as _,
24035            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
24036        );
24037    }
24038    fn ldeorlh(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
24039        return self.emit_n(
24040            Opcode::LDEORLH as _,
24041            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
24042        );
24043    }
24044    fn ldsetlh(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
24045        return self.emit_n(
24046            Opcode::LDSETLH as _,
24047            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
24048        );
24049    }
24050    fn ldsmaxlh(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
24051        return self.emit_n(
24052            Opcode::LDSMAXLH as _,
24053            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
24054        );
24055    }
24056    fn ldsminlh(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
24057        return self.emit_n(
24058            Opcode::LDSMINLH as _,
24059            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
24060        );
24061    }
24062    fn ldumaxlh(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
24063        return self.emit_n(
24064            Opcode::LDUMAXLH as _,
24065            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
24066        );
24067    }
24068    fn lduminlh(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
24069        return self.emit_n(
24070            Opcode::LDUMINLH as _,
24071            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
24072        );
24073    }
24074    fn ldaddah(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
24075        return self.emit_n(
24076            Opcode::LDADDAH as _,
24077            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
24078        );
24079    }
24080    fn ldclrah(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
24081        return self.emit_n(
24082            Opcode::LDCLRAH as _,
24083            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
24084        );
24085    }
24086    fn ldeorah(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
24087        return self.emit_n(
24088            Opcode::LDEORAH as _,
24089            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
24090        );
24091    }
24092    fn ldsetah(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
24093        return self.emit_n(
24094            Opcode::LDSETAH as _,
24095            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
24096        );
24097    }
24098    fn ldsmaxah(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
24099        return self.emit_n(
24100            Opcode::LDSMAXAH as _,
24101            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
24102        );
24103    }
24104    fn ldsminah(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
24105        return self.emit_n(
24106            Opcode::LDSMINAH as _,
24107            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
24108        );
24109    }
24110    fn ldumaxah(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
24111        return self.emit_n(
24112            Opcode::LDUMAXAH as _,
24113            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
24114        );
24115    }
24116    fn lduminah(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
24117        return self.emit_n(
24118            Opcode::LDUMINAH as _,
24119            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
24120        );
24121    }
24122    fn ldaddalh(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
24123        return self.emit_n(
24124            Opcode::LDADDALH as _,
24125            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
24126        );
24127    }
24128    fn ldclralh(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
24129        return self.emit_n(
24130            Opcode::LDCLRALH as _,
24131            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
24132        );
24133    }
24134    fn ldeoralh(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
24135        return self.emit_n(
24136            Opcode::LDEORALH as _,
24137            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
24138        );
24139    }
24140    fn ldsetalh(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
24141        return self.emit_n(
24142            Opcode::LDSETALH as _,
24143            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
24144        );
24145    }
24146    fn ldsmaxalh(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
24147        return self.emit_n(
24148            Opcode::LDSMAXALH as _,
24149            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
24150        );
24151    }
24152    fn ldsminalh(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
24153        return self.emit_n(
24154            Opcode::LDSMINALH as _,
24155            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
24156        );
24157    }
24158    fn ldumaxalh(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
24159        return self.emit_n(
24160            Opcode::LDUMAXALH as _,
24161            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
24162        );
24163    }
24164    fn lduminalh(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
24165        return self.emit_n(
24166            Opcode::LDUMINALH as _,
24167            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
24168        );
24169    }
24170    fn ldaddw(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
24171        return self.emit_n(
24172            Opcode::LDADDw as _,
24173            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
24174        );
24175    }
24176    fn ldclrw(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
24177        return self.emit_n(
24178            Opcode::LDCLRw as _,
24179            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
24180        );
24181    }
24182    fn ldeorw(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
24183        return self.emit_n(
24184            Opcode::LDEORw as _,
24185            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
24186        );
24187    }
24188    fn ldsetw(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
24189        return self.emit_n(
24190            Opcode::LDSETw as _,
24191            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
24192        );
24193    }
24194    fn ldsmaxw(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
24195        return self.emit_n(
24196            Opcode::LDSMAXw as _,
24197            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
24198        );
24199    }
24200    fn ldsminw(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
24201        return self.emit_n(
24202            Opcode::LDSMINw as _,
24203            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
24204        );
24205    }
24206    fn ldumaxw(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
24207        return self.emit_n(
24208            Opcode::LDUMAXw as _,
24209            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
24210        );
24211    }
24212    fn lduminw(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
24213        return self.emit_n(
24214            Opcode::LDUMINw as _,
24215            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
24216        );
24217    }
24218    fn ldaddlw(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
24219        return self.emit_n(
24220            Opcode::LDADDLw as _,
24221            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
24222        );
24223    }
24224    fn ldclrlw(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
24225        return self.emit_n(
24226            Opcode::LDCLRLw as _,
24227            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
24228        );
24229    }
24230    fn ldeorlw(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
24231        return self.emit_n(
24232            Opcode::LDEORLw as _,
24233            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
24234        );
24235    }
24236    fn ldsetlw(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
24237        return self.emit_n(
24238            Opcode::LDSETLw as _,
24239            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
24240        );
24241    }
24242    fn ldsmaxlw(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
24243        return self.emit_n(
24244            Opcode::LDSMAXLw as _,
24245            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
24246        );
24247    }
24248    fn ldsminlw(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
24249        return self.emit_n(
24250            Opcode::LDSMINLw as _,
24251            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
24252        );
24253    }
24254    fn ldumaxlw(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
24255        return self.emit_n(
24256            Opcode::LDUMAXLw as _,
24257            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
24258        );
24259    }
24260    fn lduminlw(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
24261        return self.emit_n(
24262            Opcode::LDUMINLw as _,
24263            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
24264        );
24265    }
24266    fn ldaddaw(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
24267        return self.emit_n(
24268            Opcode::LDADDAw as _,
24269            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
24270        );
24271    }
24272    fn ldclraw(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
24273        return self.emit_n(
24274            Opcode::LDCLRAw as _,
24275            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
24276        );
24277    }
24278    fn ldeoraw(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
24279        return self.emit_n(
24280            Opcode::LDEORAw as _,
24281            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
24282        );
24283    }
24284    fn ldsetaw(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
24285        return self.emit_n(
24286            Opcode::LDSETAw as _,
24287            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
24288        );
24289    }
24290    fn ldsmaxaw(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
24291        return self.emit_n(
24292            Opcode::LDSMAXAw as _,
24293            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
24294        );
24295    }
24296    fn ldsminaw(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
24297        return self.emit_n(
24298            Opcode::LDSMINAw as _,
24299            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
24300        );
24301    }
24302    fn ldumaxaw(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
24303        return self.emit_n(
24304            Opcode::LDUMAXAw as _,
24305            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
24306        );
24307    }
24308    fn lduminaw(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
24309        return self.emit_n(
24310            Opcode::LDUMINAw as _,
24311            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
24312        );
24313    }
24314    fn ldaddalw(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
24315        return self.emit_n(
24316            Opcode::LDADDALw as _,
24317            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
24318        );
24319    }
24320    fn ldclralw(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
24321        return self.emit_n(
24322            Opcode::LDCLRALw as _,
24323            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
24324        );
24325    }
24326    fn ldeoralw(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
24327        return self.emit_n(
24328            Opcode::LDEORALw as _,
24329            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
24330        );
24331    }
24332    fn ldsetalw(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
24333        return self.emit_n(
24334            Opcode::LDSETALw as _,
24335            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
24336        );
24337    }
24338    fn ldsmaxalw(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
24339        return self.emit_n(
24340            Opcode::LDSMAXALw as _,
24341            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
24342        );
24343    }
24344    fn ldsminalw(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
24345        return self.emit_n(
24346            Opcode::LDSMINALw as _,
24347            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
24348        );
24349    }
24350    fn ldumaxalw(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
24351        return self.emit_n(
24352            Opcode::LDUMAXALw as _,
24353            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
24354        );
24355    }
24356    fn lduminalw(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
24357        return self.emit_n(
24358            Opcode::LDUMINALw as _,
24359            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
24360        );
24361    }
24362    fn ldaddx(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
24363        return self.emit_n(
24364            Opcode::LDADDx as _,
24365            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
24366        );
24367    }
24368    fn ldclrx(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
24369        return self.emit_n(
24370            Opcode::LDCLRx as _,
24371            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
24372        );
24373    }
24374    fn ldeorx(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
24375        return self.emit_n(
24376            Opcode::LDEORx as _,
24377            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
24378        );
24379    }
24380    fn ldsetx(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
24381        return self.emit_n(
24382            Opcode::LDSETx as _,
24383            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
24384        );
24385    }
24386    fn ldsmaxx(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
24387        return self.emit_n(
24388            Opcode::LDSMAXx as _,
24389            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
24390        );
24391    }
24392    fn ldsminx(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
24393        return self.emit_n(
24394            Opcode::LDSMINx as _,
24395            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
24396        );
24397    }
24398    fn ldumaxx(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
24399        return self.emit_n(
24400            Opcode::LDUMAXx as _,
24401            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
24402        );
24403    }
24404    fn lduminx(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
24405        return self.emit_n(
24406            Opcode::LDUMINx as _,
24407            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
24408        );
24409    }
24410    fn ldaddlx(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
24411        return self.emit_n(
24412            Opcode::LDADDLx as _,
24413            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
24414        );
24415    }
24416    fn ldclrlx(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
24417        return self.emit_n(
24418            Opcode::LDCLRLx as _,
24419            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
24420        );
24421    }
24422    fn ldeorlx(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
24423        return self.emit_n(
24424            Opcode::LDEORLx as _,
24425            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
24426        );
24427    }
24428    fn ldsetlx(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
24429        return self.emit_n(
24430            Opcode::LDSETLx as _,
24431            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
24432        );
24433    }
24434    fn ldsmaxlx(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
24435        return self.emit_n(
24436            Opcode::LDSMAXLx as _,
24437            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
24438        );
24439    }
24440    fn ldsminlx(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
24441        return self.emit_n(
24442            Opcode::LDSMINLx as _,
24443            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
24444        );
24445    }
24446    fn ldumaxlx(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
24447        return self.emit_n(
24448            Opcode::LDUMAXLx as _,
24449            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
24450        );
24451    }
24452    fn lduminlx(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
24453        return self.emit_n(
24454            Opcode::LDUMINLx as _,
24455            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
24456        );
24457    }
24458    fn ldaddax(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
24459        return self.emit_n(
24460            Opcode::LDADDAx as _,
24461            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
24462        );
24463    }
24464    fn ldclrax(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
24465        return self.emit_n(
24466            Opcode::LDCLRAx as _,
24467            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
24468        );
24469    }
24470    fn ldeorax(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
24471        return self.emit_n(
24472            Opcode::LDEORAx as _,
24473            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
24474        );
24475    }
24476    fn ldsetax(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
24477        return self.emit_n(
24478            Opcode::LDSETAx as _,
24479            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
24480        );
24481    }
24482    fn ldsmaxax(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
24483        return self.emit_n(
24484            Opcode::LDSMAXAx as _,
24485            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
24486        );
24487    }
24488    fn ldsminax(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
24489        return self.emit_n(
24490            Opcode::LDSMINAx as _,
24491            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
24492        );
24493    }
24494    fn ldumaxax(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
24495        return self.emit_n(
24496            Opcode::LDUMAXAx as _,
24497            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
24498        );
24499    }
24500    fn lduminax(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
24501        return self.emit_n(
24502            Opcode::LDUMINAx as _,
24503            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
24504        );
24505    }
24506    fn ldaddalx(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
24507        return self.emit_n(
24508            Opcode::LDADDALx as _,
24509            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
24510        );
24511    }
24512    fn ldclralx(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
24513        return self.emit_n(
24514            Opcode::LDCLRALx as _,
24515            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
24516        );
24517    }
24518    fn ldeoralx(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
24519        return self.emit_n(
24520            Opcode::LDEORALx as _,
24521            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
24522        );
24523    }
24524    fn ldsetalx(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
24525        return self.emit_n(
24526            Opcode::LDSETALx as _,
24527            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
24528        );
24529    }
24530    fn ldsmaxalx(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
24531        return self.emit_n(
24532            Opcode::LDSMAXALx as _,
24533            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
24534        );
24535    }
24536    fn ldsminalx(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
24537        return self.emit_n(
24538            Opcode::LDSMINALx as _,
24539            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
24540        );
24541    }
24542    fn ldumaxalx(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
24543        return self.emit_n(
24544            Opcode::LDUMAXALx as _,
24545            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
24546        );
24547    }
24548    fn lduminalx(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
24549        return self.emit_n(
24550            Opcode::LDUMINALx as _,
24551            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
24552        );
24553    }
24554    fn stlurb(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm9: impl OperandCast) {
24555        return self.emit_n(
24556            Opcode::STLURB as _,
24557            &[rt.as_operand(), rn.as_operand(), imm9.as_operand()],
24558        );
24559    }
24560    fn ldapurb(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm9: impl OperandCast) {
24561        return self.emit_n(
24562            Opcode::LDAPURB as _,
24563            &[rt.as_operand(), rn.as_operand(), imm9.as_operand()],
24564        );
24565    }
24566    fn ldapursbx(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm9: impl OperandCast) {
24567        return self.emit_n(
24568            Opcode::LDAPURSBx as _,
24569            &[rt.as_operand(), rn.as_operand(), imm9.as_operand()],
24570        );
24571    }
24572    fn ldapursbw(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm9: impl OperandCast) {
24573        return self.emit_n(
24574            Opcode::LDAPURSBw as _,
24575            &[rt.as_operand(), rn.as_operand(), imm9.as_operand()],
24576        );
24577    }
24578    fn stlurh(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm9: impl OperandCast) {
24579        return self.emit_n(
24580            Opcode::STLURH as _,
24581            &[rt.as_operand(), rn.as_operand(), imm9.as_operand()],
24582        );
24583    }
24584    fn ldapurh(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm9: impl OperandCast) {
24585        return self.emit_n(
24586            Opcode::LDAPURH as _,
24587            &[rt.as_operand(), rn.as_operand(), imm9.as_operand()],
24588        );
24589    }
24590    fn ldapurshx(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm9: impl OperandCast) {
24591        return self.emit_n(
24592            Opcode::LDAPURSHx as _,
24593            &[rt.as_operand(), rn.as_operand(), imm9.as_operand()],
24594        );
24595    }
24596    fn ldapurshw(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm9: impl OperandCast) {
24597        return self.emit_n(
24598            Opcode::LDAPURSHw as _,
24599            &[rt.as_operand(), rn.as_operand(), imm9.as_operand()],
24600        );
24601    }
24602    fn stlurw(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm9: impl OperandCast) {
24603        return self.emit_n(
24604            Opcode::STLURw as _,
24605            &[rt.as_operand(), rn.as_operand(), imm9.as_operand()],
24606        );
24607    }
24608    fn ldapurw(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm9: impl OperandCast) {
24609        return self.emit_n(
24610            Opcode::LDAPURw as _,
24611            &[rt.as_operand(), rn.as_operand(), imm9.as_operand()],
24612        );
24613    }
24614    fn ldapurswx(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm9: impl OperandCast) {
24615        return self.emit_n(
24616            Opcode::LDAPURSWx as _,
24617            &[rt.as_operand(), rn.as_operand(), imm9.as_operand()],
24618        );
24619    }
24620    fn stlurx(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm9: impl OperandCast) {
24621        return self.emit_n(
24622            Opcode::STLURx as _,
24623            &[rt.as_operand(), rn.as_operand(), imm9.as_operand()],
24624        );
24625    }
24626    fn ldapurx(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm9: impl OperandCast) {
24627        return self.emit_n(
24628            Opcode::LDAPURx as _,
24629            &[rt.as_operand(), rn.as_operand(), imm9.as_operand()],
24630        );
24631    }
24632    fn ldaprb(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
24633        return self.emit_n(Opcode::LDAPRB as _, &[rt.as_operand(), rn.as_operand()]);
24634    }
24635    fn ldaprh(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
24636        return self.emit_n(Opcode::LDAPRH as _, &[rt.as_operand(), rn.as_operand()]);
24637    }
24638    fn ldaprw(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
24639        return self.emit_n(Opcode::LDAPRw as _, &[rt.as_operand(), rn.as_operand()]);
24640    }
24641    fn ldaprx(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
24642        return self.emit_n(Opcode::LDAPRx as _, &[rt.as_operand(), rn.as_operand()]);
24643    }
24644    fn crc32b(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
24645        return self.emit_n(
24646            Opcode::CRC32B as _,
24647            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
24648        );
24649    }
24650    fn crc32h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
24651        return self.emit_n(
24652            Opcode::CRC32H as _,
24653            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
24654        );
24655    }
24656    fn crc32w(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
24657        return self.emit_n(
24658            Opcode::CRC32W as _,
24659            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
24660        );
24661    }
24662    fn crc32cb(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
24663        return self.emit_n(
24664            Opcode::CRC32CB as _,
24665            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
24666        );
24667    }
24668    fn crc32ch(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
24669        return self.emit_n(
24670            Opcode::CRC32CH as _,
24671            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
24672        );
24673    }
24674    fn crc32cw(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
24675        return self.emit_n(
24676            Opcode::CRC32CW as _,
24677            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
24678        );
24679    }
24680    fn crc32x(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
24681        return self.emit_n(
24682            Opcode::CRC32X as _,
24683            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
24684        );
24685    }
24686    fn crc32cx(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
24687        return self.emit_n(
24688            Opcode::CRC32CX as _,
24689            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
24690        );
24691    }
24692    fn addg(
24693        &mut self,
24694        rd: impl OperandCast,
24695        rn: impl OperandCast,
24696        uimm6: impl OperandCast,
24697        uimm4: impl OperandCast,
24698    ) {
24699        return self.emit_n(
24700            Opcode::ADDG as _,
24701            &[
24702                rd.as_operand(),
24703                rn.as_operand(),
24704                uimm6.as_operand(),
24705                uimm4.as_operand(),
24706            ],
24707        );
24708    }
24709    fn subg(
24710        &mut self,
24711        rd: impl OperandCast,
24712        rn: impl OperandCast,
24713        uimm6: impl OperandCast,
24714        uimm4: impl OperandCast,
24715    ) {
24716        return self.emit_n(
24717            Opcode::SUBG as _,
24718            &[
24719                rd.as_operand(),
24720                rn.as_operand(),
24721                uimm6.as_operand(),
24722                uimm4.as_operand(),
24723            ],
24724        );
24725    }
24726    fn irg(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
24727        return self.emit_n(
24728            Opcode::IRG as _,
24729            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
24730        );
24731    }
24732    fn gmi(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
24733        return self.emit_n(
24734            Opcode::GMI as _,
24735            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
24736        );
24737    }
24738    fn subp(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
24739        return self.emit_n(
24740            Opcode::SUBP as _,
24741            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
24742        );
24743    }
24744    fn subps(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
24745        return self.emit_n(
24746            Opcode::SUBPS as _,
24747            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
24748        );
24749    }
24750    fn cmpp(&mut self, rn: impl OperandCast, rm: impl OperandCast) {
24751        return self.emit_n(Opcode::CMPP as _, &[rn.as_operand(), rm.as_operand()]);
24752    }
24753    fn stg_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm9: impl OperandCast) {
24754        return self.emit_n(
24755            Opcode::STG_post as _,
24756            &[rt.as_operand(), rn.as_operand(), imm9.as_operand()],
24757        );
24758    }
24759    fn stg(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm9: impl OperandCast) {
24760        return self.emit_n(
24761            Opcode::STG as _,
24762            &[rt.as_operand(), rn.as_operand(), imm9.as_operand()],
24763        );
24764    }
24765    fn stg_pre(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm9: impl OperandCast) {
24766        return self.emit_n(
24767            Opcode::STG_pre as _,
24768            &[rt.as_operand(), rn.as_operand(), imm9.as_operand()],
24769        );
24770    }
24771    fn stzg_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm9: impl OperandCast) {
24772        return self.emit_n(
24773            Opcode::STZG_post as _,
24774            &[rt.as_operand(), rn.as_operand(), imm9.as_operand()],
24775        );
24776    }
24777    fn stzg(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm9: impl OperandCast) {
24778        return self.emit_n(
24779            Opcode::STZG as _,
24780            &[rt.as_operand(), rn.as_operand(), imm9.as_operand()],
24781        );
24782    }
24783    fn stzg_pre(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm9: impl OperandCast) {
24784        return self.emit_n(
24785            Opcode::STZG_pre as _,
24786            &[rt.as_operand(), rn.as_operand(), imm9.as_operand()],
24787        );
24788    }
24789    fn st2g_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm9: impl OperandCast) {
24790        return self.emit_n(
24791            Opcode::ST2G_post as _,
24792            &[rt.as_operand(), rn.as_operand(), imm9.as_operand()],
24793        );
24794    }
24795    fn st2g(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm9: impl OperandCast) {
24796        return self.emit_n(
24797            Opcode::ST2G as _,
24798            &[rt.as_operand(), rn.as_operand(), imm9.as_operand()],
24799        );
24800    }
24801    fn st2g_pre(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm9: impl OperandCast) {
24802        return self.emit_n(
24803            Opcode::ST2G_pre as _,
24804            &[rt.as_operand(), rn.as_operand(), imm9.as_operand()],
24805        );
24806    }
24807    fn stz2g_post(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm9: impl OperandCast) {
24808        return self.emit_n(
24809            Opcode::STZ2G_post as _,
24810            &[rt.as_operand(), rn.as_operand(), imm9.as_operand()],
24811        );
24812    }
24813    fn stz2g(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm9: impl OperandCast) {
24814        return self.emit_n(
24815            Opcode::STZ2G as _,
24816            &[rt.as_operand(), rn.as_operand(), imm9.as_operand()],
24817        );
24818    }
24819    fn stz2g_pre(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm9: impl OperandCast) {
24820        return self.emit_n(
24821            Opcode::STZ2G_pre as _,
24822            &[rt.as_operand(), rn.as_operand(), imm9.as_operand()],
24823        );
24824    }
24825    fn ldg(&mut self, rt: impl OperandCast, rn: impl OperandCast, imm9: impl OperandCast) {
24826        return self.emit_n(
24827            Opcode::ldg as _,
24828            &[rt.as_operand(), rn.as_operand(), imm9.as_operand()],
24829        );
24830    }
24831    fn stzgm(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
24832        return self.emit_n(Opcode::STZGM as _, &[rt.as_operand(), rn.as_operand()]);
24833    }
24834    fn stgm(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
24835        return self.emit_n(Opcode::STGM as _, &[rt.as_operand(), rn.as_operand()]);
24836    }
24837    fn ldgm(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
24838        return self.emit_n(Opcode::LDGM as _, &[rt.as_operand(), rn.as_operand()]);
24839    }
24840    fn cfinv(&mut self) {
24841        return self.emit_n(Opcode::CFINV as _, &[]);
24842    }
24843    fn xaflag(&mut self) {
24844        return self.emit_n(Opcode::XAFLAG as _, &[]);
24845    }
24846    fn axflag(&mut self) {
24847        return self.emit_n(Opcode::AXFLAG as _, &[]);
24848    }
24849    fn rmif(&mut self, rn: impl OperandCast, imm6: impl OperandCast, mask: impl OperandCast) {
24850        return self.emit_n(
24851            Opcode::RMIF as _,
24852            &[rn.as_operand(), imm6.as_operand(), mask.as_operand()],
24853        );
24854    }
24855    fn setf8(&mut self, rn: impl OperandCast) {
24856        return self.emit_n(Opcode::SETF8 as _, &[rn.as_operand()]);
24857    }
24858    fn setf16(&mut self, rn: impl OperandCast) {
24859        return self.emit_n(Opcode::SETF16 as _, &[rn.as_operand()]);
24860    }
24861    fn sb(&mut self) {
24862        return self.emit_n(Opcode::SB as _, &[]);
24863    }
24864    fn tcancel(&mut self, imm16: impl OperandCast) {
24865        return self.emit_n(Opcode::TCANCEL as _, &[imm16.as_operand()]);
24866    }
24867    fn tcommit(&mut self) {
24868        return self.emit_n(Opcode::TCOMMIT as _, &[]);
24869    }
24870    fn tstart(&mut self, rt: impl OperandCast) {
24871        return self.emit_n(Opcode::TSTART as _, &[rt.as_operand()]);
24872    }
24873    fn ttest(&mut self, rt: impl OperandCast) {
24874        return self.emit_n(Opcode::TTEST as _, &[rt.as_operand()]);
24875    }
24876    fn wfet(&mut self, rd: impl OperandCast) {
24877        return self.emit_n(Opcode::WFET as _, &[rd.as_operand()]);
24878    }
24879    fn wfit(&mut self, rd: impl OperandCast) {
24880        return self.emit_n(Opcode::WFIT as _, &[rd.as_operand()]);
24881    }
24882    fn st64b(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
24883        return self.emit_n(Opcode::ST64B as _, &[rt.as_operand(), rn.as_operand()]);
24884    }
24885    fn ld64b(&mut self, rt: impl OperandCast, rn: impl OperandCast) {
24886        return self.emit_n(Opcode::LD64B as _, &[rt.as_operand(), rn.as_operand()]);
24887    }
24888    fn st64bv0(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
24889        return self.emit_n(
24890            Opcode::ST64BV0 as _,
24891            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
24892        );
24893    }
24894    fn st64bv(&mut self, rs: impl OperandCast, rt: impl OperandCast, rn: impl OperandCast) {
24895        return self.emit_n(
24896            Opcode::ST64BV as _,
24897            &[rs.as_operand(), rt.as_operand(), rn.as_operand()],
24898        );
24899    }
24900    fn cpyfp(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
24901        return self.emit_n(
24902            Opcode::CPYFP as _,
24903            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
24904        );
24905    }
24906    fn cpyfpwt(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
24907        return self.emit_n(
24908            Opcode::CPYFPWT as _,
24909            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
24910        );
24911    }
24912    fn cpyfprt(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
24913        return self.emit_n(
24914            Opcode::CPYFPRT as _,
24915            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
24916        );
24917    }
24918    fn cpyfpt(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
24919        return self.emit_n(
24920            Opcode::CPYFPT as _,
24921            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
24922        );
24923    }
24924    fn cpyfpwn(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
24925        return self.emit_n(
24926            Opcode::CPYFPWN as _,
24927            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
24928        );
24929    }
24930    fn cpyfpwtwn(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
24931        return self.emit_n(
24932            Opcode::CPYFPWTWN as _,
24933            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
24934        );
24935    }
24936    fn cpyfprtwn(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
24937        return self.emit_n(
24938            Opcode::CPYFPRTWN as _,
24939            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
24940        );
24941    }
24942    fn cpyfptwn(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
24943        return self.emit_n(
24944            Opcode::CPYFPTWN as _,
24945            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
24946        );
24947    }
24948    fn cpyfprn(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
24949        return self.emit_n(
24950            Opcode::CPYFPRN as _,
24951            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
24952        );
24953    }
24954    fn cpyfpwtrn(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
24955        return self.emit_n(
24956            Opcode::CPYFPWTRN as _,
24957            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
24958        );
24959    }
24960    fn cpyfprtrn(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
24961        return self.emit_n(
24962            Opcode::CPYFPRTRN as _,
24963            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
24964        );
24965    }
24966    fn cpyfptrn(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
24967        return self.emit_n(
24968            Opcode::CPYFPTRN as _,
24969            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
24970        );
24971    }
24972    fn cpyfpn(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
24973        return self.emit_n(
24974            Opcode::CPYFPN as _,
24975            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
24976        );
24977    }
24978    fn cpyfpwtn(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
24979        return self.emit_n(
24980            Opcode::CPYFPWTN as _,
24981            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
24982        );
24983    }
24984    fn cpyfprtn(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
24985        return self.emit_n(
24986            Opcode::CPYFPRTN as _,
24987            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
24988        );
24989    }
24990    fn cpyfptn(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
24991        return self.emit_n(
24992            Opcode::CPYFPTN as _,
24993            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
24994        );
24995    }
24996    fn cpyfm(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
24997        return self.emit_n(
24998            Opcode::CPYFM as _,
24999            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
25000        );
25001    }
25002    fn cpyfmwt(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
25003        return self.emit_n(
25004            Opcode::CPYFMWT as _,
25005            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
25006        );
25007    }
25008    fn cpyfmrt(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
25009        return self.emit_n(
25010            Opcode::CPYFMRT as _,
25011            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
25012        );
25013    }
25014    fn cpyfmt(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
25015        return self.emit_n(
25016            Opcode::CPYFMT as _,
25017            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
25018        );
25019    }
25020    fn cpyfmwn(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
25021        return self.emit_n(
25022            Opcode::CPYFMWN as _,
25023            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
25024        );
25025    }
25026    fn cpyfmwtwn(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
25027        return self.emit_n(
25028            Opcode::CPYFMWTWN as _,
25029            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
25030        );
25031    }
25032    fn cpyfmrtwn(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
25033        return self.emit_n(
25034            Opcode::CPYFMRTWN as _,
25035            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
25036        );
25037    }
25038    fn cpyfmtwn(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
25039        return self.emit_n(
25040            Opcode::CPYFMTWN as _,
25041            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
25042        );
25043    }
25044    fn cpyfmrn(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
25045        return self.emit_n(
25046            Opcode::CPYFMRN as _,
25047            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
25048        );
25049    }
25050    fn cpyfmwtrn(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
25051        return self.emit_n(
25052            Opcode::CPYFMWTRN as _,
25053            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
25054        );
25055    }
25056    fn cpyfmrtrn(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
25057        return self.emit_n(
25058            Opcode::CPYFMRTRN as _,
25059            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
25060        );
25061    }
25062    fn cpyfmtrn(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
25063        return self.emit_n(
25064            Opcode::CPYFMTRN as _,
25065            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
25066        );
25067    }
25068    fn cpyfmn(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
25069        return self.emit_n(
25070            Opcode::CPYFMN as _,
25071            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
25072        );
25073    }
25074    fn cpyfmwtn(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
25075        return self.emit_n(
25076            Opcode::CPYFMWTN as _,
25077            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
25078        );
25079    }
25080    fn cpyfmrtn(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
25081        return self.emit_n(
25082            Opcode::CPYFMRTN as _,
25083            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
25084        );
25085    }
25086    fn cpyfmtn(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
25087        return self.emit_n(
25088            Opcode::CPYFMTN as _,
25089            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
25090        );
25091    }
25092    fn cpyfe(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
25093        return self.emit_n(
25094            Opcode::CPYFE as _,
25095            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
25096        );
25097    }
25098    fn cpyfewt(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
25099        return self.emit_n(
25100            Opcode::CPYFEWT as _,
25101            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
25102        );
25103    }
25104    fn cpyfert(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
25105        return self.emit_n(
25106            Opcode::CPYFERT as _,
25107            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
25108        );
25109    }
25110    fn cpyfet(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
25111        return self.emit_n(
25112            Opcode::CPYFET as _,
25113            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
25114        );
25115    }
25116    fn cpyfewn(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
25117        return self.emit_n(
25118            Opcode::CPYFEWN as _,
25119            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
25120        );
25121    }
25122    fn cpyfewtwn(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
25123        return self.emit_n(
25124            Opcode::CPYFEWTWN as _,
25125            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
25126        );
25127    }
25128    fn cpyfertwn(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
25129        return self.emit_n(
25130            Opcode::CPYFERTWN as _,
25131            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
25132        );
25133    }
25134    fn cpyfetwn(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
25135        return self.emit_n(
25136            Opcode::CPYFETWN as _,
25137            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
25138        );
25139    }
25140    fn cpyfern(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
25141        return self.emit_n(
25142            Opcode::CPYFERN as _,
25143            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
25144        );
25145    }
25146    fn cpyfewtrn(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
25147        return self.emit_n(
25148            Opcode::CPYFEWTRN as _,
25149            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
25150        );
25151    }
25152    fn cpyfertrn(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
25153        return self.emit_n(
25154            Opcode::CPYFERTRN as _,
25155            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
25156        );
25157    }
25158    fn cpyfetrn(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
25159        return self.emit_n(
25160            Opcode::CPYFETRN as _,
25161            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
25162        );
25163    }
25164    fn cpyfen(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
25165        return self.emit_n(
25166            Opcode::CPYFEN as _,
25167            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
25168        );
25169    }
25170    fn cpyfewtn(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
25171        return self.emit_n(
25172            Opcode::CPYFEWTN as _,
25173            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
25174        );
25175    }
25176    fn cpyfertn(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
25177        return self.emit_n(
25178            Opcode::CPYFERTN as _,
25179            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
25180        );
25181    }
25182    fn cpyfetn(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
25183        return self.emit_n(
25184            Opcode::CPYFETN as _,
25185            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
25186        );
25187    }
25188    fn cpyp(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
25189        return self.emit_n(
25190            Opcode::CPYP as _,
25191            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
25192        );
25193    }
25194    fn cpypwt(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
25195        return self.emit_n(
25196            Opcode::CPYPWT as _,
25197            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
25198        );
25199    }
25200    fn cpyprt(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
25201        return self.emit_n(
25202            Opcode::CPYPRT as _,
25203            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
25204        );
25205    }
25206    fn cpypt(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
25207        return self.emit_n(
25208            Opcode::CPYPT as _,
25209            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
25210        );
25211    }
25212    fn cpypwn(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
25213        return self.emit_n(
25214            Opcode::CPYPWN as _,
25215            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
25216        );
25217    }
25218    fn cpypwtwn(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
25219        return self.emit_n(
25220            Opcode::CPYPWTWN as _,
25221            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
25222        );
25223    }
25224    fn cpyprtwn(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
25225        return self.emit_n(
25226            Opcode::CPYPRTWN as _,
25227            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
25228        );
25229    }
25230    fn cpyptwn(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
25231        return self.emit_n(
25232            Opcode::CPYPTWN as _,
25233            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
25234        );
25235    }
25236    fn cpyprn(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
25237        return self.emit_n(
25238            Opcode::CPYPRN as _,
25239            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
25240        );
25241    }
25242    fn cpypwtrn(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
25243        return self.emit_n(
25244            Opcode::CPYPWTRN as _,
25245            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
25246        );
25247    }
25248    fn cpyprtrn(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
25249        return self.emit_n(
25250            Opcode::CPYPRTRN as _,
25251            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
25252        );
25253    }
25254    fn cpyptrn(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
25255        return self.emit_n(
25256            Opcode::CPYPTRN as _,
25257            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
25258        );
25259    }
25260    fn cpypn(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
25261        return self.emit_n(
25262            Opcode::CPYPN as _,
25263            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
25264        );
25265    }
25266    fn cpypwtn(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
25267        return self.emit_n(
25268            Opcode::CPYPWTN as _,
25269            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
25270        );
25271    }
25272    fn cpyprtn(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
25273        return self.emit_n(
25274            Opcode::CPYPRTN as _,
25275            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
25276        );
25277    }
25278    fn cpyptn(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
25279        return self.emit_n(
25280            Opcode::CPYPTN as _,
25281            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
25282        );
25283    }
25284    fn cpym(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
25285        return self.emit_n(
25286            Opcode::CPYM as _,
25287            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
25288        );
25289    }
25290    fn cpymwt(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
25291        return self.emit_n(
25292            Opcode::CPYMWT as _,
25293            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
25294        );
25295    }
25296    fn cpymrt(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
25297        return self.emit_n(
25298            Opcode::CPYMRT as _,
25299            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
25300        );
25301    }
25302    fn cpymt(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
25303        return self.emit_n(
25304            Opcode::CPYMT as _,
25305            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
25306        );
25307    }
25308    fn cpymwn(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
25309        return self.emit_n(
25310            Opcode::CPYMWN as _,
25311            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
25312        );
25313    }
25314    fn cpymwtwn(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
25315        return self.emit_n(
25316            Opcode::CPYMWTWN as _,
25317            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
25318        );
25319    }
25320    fn cpymrtwn(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
25321        return self.emit_n(
25322            Opcode::CPYMRTWN as _,
25323            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
25324        );
25325    }
25326    fn cpymtwn(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
25327        return self.emit_n(
25328            Opcode::CPYMTWN as _,
25329            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
25330        );
25331    }
25332    fn cpymrn(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
25333        return self.emit_n(
25334            Opcode::CPYMRN as _,
25335            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
25336        );
25337    }
25338    fn cpymwtrn(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
25339        return self.emit_n(
25340            Opcode::CPYMWTRN as _,
25341            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
25342        );
25343    }
25344    fn cpymrtrn(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
25345        return self.emit_n(
25346            Opcode::CPYMRTRN as _,
25347            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
25348        );
25349    }
25350    fn cpymtrn(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
25351        return self.emit_n(
25352            Opcode::CPYMTRN as _,
25353            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
25354        );
25355    }
25356    fn cpymn(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
25357        return self.emit_n(
25358            Opcode::CPYMN as _,
25359            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
25360        );
25361    }
25362    fn cpymwtn(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
25363        return self.emit_n(
25364            Opcode::CPYMWTN as _,
25365            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
25366        );
25367    }
25368    fn cpymrtn(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
25369        return self.emit_n(
25370            Opcode::CPYMRTN as _,
25371            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
25372        );
25373    }
25374    fn cpymtn(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
25375        return self.emit_n(
25376            Opcode::CPYMTN as _,
25377            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
25378        );
25379    }
25380    fn cpye(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
25381        return self.emit_n(
25382            Opcode::CPYE as _,
25383            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
25384        );
25385    }
25386    fn cpyewt(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
25387        return self.emit_n(
25388            Opcode::CPYEWT as _,
25389            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
25390        );
25391    }
25392    fn cpyert(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
25393        return self.emit_n(
25394            Opcode::CPYERT as _,
25395            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
25396        );
25397    }
25398    fn cpyet(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
25399        return self.emit_n(
25400            Opcode::CPYET as _,
25401            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
25402        );
25403    }
25404    fn cpyewn(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
25405        return self.emit_n(
25406            Opcode::CPYEWN as _,
25407            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
25408        );
25409    }
25410    fn cpyewtwn(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
25411        return self.emit_n(
25412            Opcode::CPYEWTWN as _,
25413            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
25414        );
25415    }
25416    fn cpyertwn(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
25417        return self.emit_n(
25418            Opcode::CPYERTWN as _,
25419            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
25420        );
25421    }
25422    fn cpyetwn(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
25423        return self.emit_n(
25424            Opcode::CPYETWN as _,
25425            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
25426        );
25427    }
25428    fn cpyern(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
25429        return self.emit_n(
25430            Opcode::CPYERN as _,
25431            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
25432        );
25433    }
25434    fn cpyewtrn(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
25435        return self.emit_n(
25436            Opcode::CPYEWTRN as _,
25437            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
25438        );
25439    }
25440    fn cpyertrn(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
25441        return self.emit_n(
25442            Opcode::CPYERTRN as _,
25443            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
25444        );
25445    }
25446    fn cpyetrn(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
25447        return self.emit_n(
25448            Opcode::CPYETRN as _,
25449            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
25450        );
25451    }
25452    fn cpyen(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
25453        return self.emit_n(
25454            Opcode::CPYEN as _,
25455            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
25456        );
25457    }
25458    fn cpyewtn(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
25459        return self.emit_n(
25460            Opcode::CPYEWTN as _,
25461            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
25462        );
25463    }
25464    fn cpyertn(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
25465        return self.emit_n(
25466            Opcode::CPYERTN as _,
25467            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
25468        );
25469    }
25470    fn cpyetn(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
25471        return self.emit_n(
25472            Opcode::CPYETN as _,
25473            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
25474        );
25475    }
25476    fn setp(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
25477        return self.emit_n(
25478            Opcode::SETP as _,
25479            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
25480        );
25481    }
25482    fn setpt(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
25483        return self.emit_n(
25484            Opcode::SETPT as _,
25485            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
25486        );
25487    }
25488    fn setpn(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
25489        return self.emit_n(
25490            Opcode::SETPN as _,
25491            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
25492        );
25493    }
25494    fn setptn(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
25495        return self.emit_n(
25496            Opcode::SETPTN as _,
25497            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
25498        );
25499    }
25500    fn setm(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
25501        return self.emit_n(
25502            Opcode::SETM as _,
25503            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
25504        );
25505    }
25506    fn setmt(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
25507        return self.emit_n(
25508            Opcode::SETMT as _,
25509            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
25510        );
25511    }
25512    fn setmn(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
25513        return self.emit_n(
25514            Opcode::SETMN as _,
25515            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
25516        );
25517    }
25518    fn setmtn(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
25519        return self.emit_n(
25520            Opcode::SETMTN as _,
25521            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
25522        );
25523    }
25524    fn sete(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
25525        return self.emit_n(
25526            Opcode::SETE as _,
25527            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
25528        );
25529    }
25530    fn setet(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
25531        return self.emit_n(
25532            Opcode::SETET as _,
25533            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
25534        );
25535    }
25536    fn seten(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
25537        return self.emit_n(
25538            Opcode::SETEN as _,
25539            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
25540        );
25541    }
25542    fn setetn(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
25543        return self.emit_n(
25544            Opcode::SETETN as _,
25545            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
25546        );
25547    }
25548    fn setgp(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
25549        return self.emit_n(
25550            Opcode::SETGP as _,
25551            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
25552        );
25553    }
25554    fn setgpt(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
25555        return self.emit_n(
25556            Opcode::SETGPT as _,
25557            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
25558        );
25559    }
25560    fn setgpn(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
25561        return self.emit_n(
25562            Opcode::SETGPN as _,
25563            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
25564        );
25565    }
25566    fn setgptn(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
25567        return self.emit_n(
25568            Opcode::SETGPTN as _,
25569            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
25570        );
25571    }
25572    fn setgm(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
25573        return self.emit_n(
25574            Opcode::SETGM as _,
25575            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
25576        );
25577    }
25578    fn setgmt(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
25579        return self.emit_n(
25580            Opcode::SETGMT as _,
25581            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
25582        );
25583    }
25584    fn setgmn(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
25585        return self.emit_n(
25586            Opcode::SETGMN as _,
25587            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
25588        );
25589    }
25590    fn setgmtn(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
25591        return self.emit_n(
25592            Opcode::SETGMTN as _,
25593            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
25594        );
25595    }
25596    fn setge(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
25597        return self.emit_n(
25598            Opcode::SETGE as _,
25599            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
25600        );
25601    }
25602    fn setget(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
25603        return self.emit_n(
25604            Opcode::SETGET as _,
25605            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
25606        );
25607    }
25608    fn setgen(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
25609        return self.emit_n(
25610            Opcode::SETGEN as _,
25611            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
25612        );
25613    }
25614    fn setgetn(&mut self, rd: impl OperandCast, rs: impl OperandCast, rn: impl OperandCast) {
25615        return self.emit_n(
25616            Opcode::SETGETN as _,
25617            &[rd.as_operand(), rs.as_operand(), rn.as_operand()],
25618        );
25619    }
25620    fn aese(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
25621        return self.emit_n(Opcode::AESE as _, &[rd.as_operand(), rn.as_operand()]);
25622    }
25623    fn aesd(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
25624        return self.emit_n(Opcode::AESD as _, &[rd.as_operand(), rn.as_operand()]);
25625    }
25626    fn aesmc(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
25627        return self.emit_n(Opcode::AESMC as _, &[rd.as_operand(), rn.as_operand()]);
25628    }
25629    fn aesimc(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
25630        return self.emit_n(Opcode::AESIMC as _, &[rd.as_operand(), rn.as_operand()]);
25631    }
25632    fn sha1c(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
25633        return self.emit_n(
25634            Opcode::SHA1C as _,
25635            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
25636        );
25637    }
25638    fn sha1p(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
25639        return self.emit_n(
25640            Opcode::SHA1P as _,
25641            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
25642        );
25643    }
25644    fn sha1m(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
25645        return self.emit_n(
25646            Opcode::SHA1M as _,
25647            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
25648        );
25649    }
25650    fn sha1su0(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
25651        return self.emit_n(
25652            Opcode::SHA1SU0 as _,
25653            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
25654        );
25655    }
25656    fn sha256h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
25657        return self.emit_n(
25658            Opcode::SHA256H as _,
25659            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
25660        );
25661    }
25662    fn sha256h2(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
25663        return self.emit_n(
25664            Opcode::SHA256H2 as _,
25665            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
25666        );
25667    }
25668    fn sha256su1(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
25669        return self.emit_n(
25670            Opcode::SHA256SU1 as _,
25671            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
25672        );
25673    }
25674    fn sha1h(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
25675        return self.emit_n(Opcode::SHA1H as _, &[rd.as_operand(), rn.as_operand()]);
25676    }
25677    fn sha1su1(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
25678        return self.emit_n(Opcode::SHA1SU1 as _, &[rd.as_operand(), rn.as_operand()]);
25679    }
25680    fn sha256su0(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
25681        return self.emit_n(Opcode::SHA256SU0 as _, &[rd.as_operand(), rn.as_operand()]);
25682    }
25683    fn sm3tt1a(
25684        &mut self,
25685        rd: impl OperandCast,
25686        rn: impl OperandCast,
25687        rm: impl OperandCast,
25688        imm2: impl OperandCast,
25689    ) {
25690        return self.emit_n(
25691            Opcode::SM3TT1A as _,
25692            &[
25693                rd.as_operand(),
25694                rn.as_operand(),
25695                rm.as_operand(),
25696                imm2.as_operand(),
25697            ],
25698        );
25699    }
25700    fn sm3tt1b(
25701        &mut self,
25702        rd: impl OperandCast,
25703        rn: impl OperandCast,
25704        rm: impl OperandCast,
25705        imm2: impl OperandCast,
25706    ) {
25707        return self.emit_n(
25708            Opcode::SM3TT1B as _,
25709            &[
25710                rd.as_operand(),
25711                rn.as_operand(),
25712                rm.as_operand(),
25713                imm2.as_operand(),
25714            ],
25715        );
25716    }
25717    fn sm3tt2a(
25718        &mut self,
25719        rd: impl OperandCast,
25720        rn: impl OperandCast,
25721        rm: impl OperandCast,
25722        imm2: impl OperandCast,
25723    ) {
25724        return self.emit_n(
25725            Opcode::SM3TT2A as _,
25726            &[
25727                rd.as_operand(),
25728                rn.as_operand(),
25729                rm.as_operand(),
25730                imm2.as_operand(),
25731            ],
25732        );
25733    }
25734    fn sm3tt2b(
25735        &mut self,
25736        rd: impl OperandCast,
25737        rn: impl OperandCast,
25738        rm: impl OperandCast,
25739        imm2: impl OperandCast,
25740    ) {
25741        return self.emit_n(
25742            Opcode::SM3TT2B as _,
25743            &[
25744                rd.as_operand(),
25745                rn.as_operand(),
25746                rm.as_operand(),
25747                imm2.as_operand(),
25748            ],
25749        );
25750    }
25751    fn eor3(
25752        &mut self,
25753        rd: impl OperandCast,
25754        rn: impl OperandCast,
25755        rm: impl OperandCast,
25756        ra: impl OperandCast,
25757    ) {
25758        return self.emit_n(
25759            Opcode::EOR3 as _,
25760            &[
25761                rd.as_operand(),
25762                rn.as_operand(),
25763                rm.as_operand(),
25764                ra.as_operand(),
25765            ],
25766        );
25767    }
25768    fn bcax(
25769        &mut self,
25770        rd: impl OperandCast,
25771        rn: impl OperandCast,
25772        rm: impl OperandCast,
25773        ra: impl OperandCast,
25774    ) {
25775        return self.emit_n(
25776            Opcode::BCAX as _,
25777            &[
25778                rd.as_operand(),
25779                rn.as_operand(),
25780                rm.as_operand(),
25781                ra.as_operand(),
25782            ],
25783        );
25784    }
25785    fn sm3ss1(
25786        &mut self,
25787        rd: impl OperandCast,
25788        rn: impl OperandCast,
25789        rm: impl OperandCast,
25790        ra: impl OperandCast,
25791    ) {
25792        return self.emit_n(
25793            Opcode::SM3SS1 as _,
25794            &[
25795                rd.as_operand(),
25796                rn.as_operand(),
25797                rm.as_operand(),
25798                ra.as_operand(),
25799            ],
25800        );
25801    }
25802    fn sha512su0(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
25803        return self.emit_n(Opcode::SHA512SU0 as _, &[rd.as_operand(), rn.as_operand()]);
25804    }
25805    fn sm4e(&mut self, rd: impl OperandCast, rn: impl OperandCast) {
25806        return self.emit_n(Opcode::SM4E as _, &[rd.as_operand(), rn.as_operand()]);
25807    }
25808    fn sha512h(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
25809        return self.emit_n(
25810            Opcode::SHA512H as _,
25811            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
25812        );
25813    }
25814    fn sha512h2(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
25815        return self.emit_n(
25816            Opcode::SHA512H2 as _,
25817            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
25818        );
25819    }
25820    fn sha512su1(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
25821        return self.emit_n(
25822            Opcode::SHA512SU1 as _,
25823            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
25824        );
25825    }
25826    fn rax1(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
25827        return self.emit_n(
25828            Opcode::RAX1 as _,
25829            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
25830        );
25831    }
25832    fn sm3partw1(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
25833        return self.emit_n(
25834            Opcode::SM3PARTW1 as _,
25835            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
25836        );
25837    }
25838    fn sm3partw2(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
25839        return self.emit_n(
25840            Opcode::SM3PARTW2 as _,
25841            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
25842        );
25843    }
25844    fn sm4ekey(&mut self, rd: impl OperandCast, rn: impl OperandCast, rm: impl OperandCast) {
25845        return self.emit_n(
25846            Opcode::SM4EKEY as _,
25847            &[rd.as_operand(), rn.as_operand(), rm.as_operand()],
25848        );
25849    }
25850    fn xar(
25851        &mut self,
25852        rd: impl OperandCast,
25853        rn: impl OperandCast,
25854        rm: impl OperandCast,
25855        imm6: impl OperandCast,
25856    ) {
25857        return self.emit_n(
25858            Opcode::XAR as _,
25859            &[
25860                rd.as_operand(),
25861                rn.as_operand(),
25862                rm.as_operand(),
25863                imm6.as_operand(),
25864            ],
25865        );
25866    }
25867}