-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathiclass.go
4021 lines (3592 loc) · 171 KB
/
iclass.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
// This file was generated. DO NOT EDIT.
package arm64
type iclass int
const (
iclass_none iclass = iota
// reserved
iclass_perm_undef // Reserved
// sme > mortlach_32bit_prod
iclass_mortlach_f32f32_prod // SME FP32 outer product
iclass_mortlach_b16f32_prod // SME BF16 outer product
iclass_mortlach_f16f32_prod // SME FP16 outer product
iclass_mortlach_i8i32_prod // SME Int8 outer product
// sme > mortlach_64bit_prod
iclass_mortlach_f64f64_prod // SME FP64 outer product
iclass_mortlach_i16i64_prod // SME Int16 outer product
// sme > mortlach_ins
iclass_mortlach_insert_pred // SME move vector to array
// sme > mortlach_ext
iclass_mortlach_extract_pred // SME move array to vector
// sme > mortlach_misc
iclass_mortlach_zero // SME zero array
// sme > mortlach_hvadd
iclass_mortlach_addhv // SME add vector to array
// sme > mortlach_mem
iclass_mortlach_contig_load // SME load array vector (elements)
iclass_mortlach_contig_store // SME store array vector (elements)
iclass_mortlach_ctxt_ldst // SME save and restore array
iclass_mortlach_contig_qload // SME load array vector (quadwords)
iclass_mortlach_contig_qstore // SME store array vector (quadwords)
// sve > sve_int_muladd_pred
iclass_sve_int_mlas_vvv_pred // SVE integer multiply-accumulate writing addend (predicated)
iclass_sve_int_mladdsub_vvv_pred // SVE integer multiply-add writing multiplicand (predicated)
// sve > sve_int_pred_bin
iclass_sve_int_bin_pred_arit_0 // SVE integer add/subtract vectors (predicated)
iclass_sve_int_bin_pred_arit_1 // SVE integer min/max/difference (predicated)
iclass_sve_int_bin_pred_arit_2 // SVE integer multiply vectors (predicated)
iclass_sve_int_bin_pred_div // SVE integer divide vectors (predicated)
iclass_sve_int_bin_pred_log // SVE bitwise logical operations (predicated)
// sve > sve_int_pred_red
iclass_sve_int_reduce_0 // SVE integer add reduction (predicated)
iclass_sve_int_reduce_1 // SVE integer min/max reduction (predicated)
iclass_sve_int_movprfx_pred // SVE constructive prefix (predicated)
iclass_sve_int_reduce_2 // SVE bitwise logical reduction (predicated)
// sve > sve_int_pred_shift
iclass_sve_int_bin_pred_shift_0 // SVE bitwise shift by immediate (predicated)
iclass_sve_int_bin_pred_shift_1 // SVE bitwise shift by vector (predicated)
iclass_sve_int_bin_pred_shift_2 // SVE bitwise shift by wide elements (predicated)
// sve > sve_int_pred_un
iclass_sve_int_un_pred_arit_0 // SVE integer unary operations (predicated)
iclass_sve_int_un_pred_arit_1 // SVE bitwise unary operations (predicated)
// sve
iclass_sve_int_bin_cons_arit_0 // SVE integer add/subtract vectors (unpredicated)
// sve > sve_int_unpred_logical
iclass_sve_int_bin_cons_log // SVE bitwise logical operations (unpredicated)
iclass_sve_int_rotate_imm // sve_int_rotate_imm
iclass_sve_int_tern_log // SVE2 bitwise ternary operations
// sve > sve_index
iclass_sve_int_index_ii // SVE index generation (immediate start, immediate increment)
iclass_sve_int_index_ri // SVE index generation (register start, immediate increment)
iclass_sve_int_index_ir // SVE index generation (immediate start, register increment)
iclass_sve_int_index_rr // SVE index generation (register start, register increment)
// sve > sve_alloca
iclass_sve_int_arith_vl // SVE stack frame adjustment
iclass_sve_int_arith_svl // sve_int_arith_svl
iclass_sve_int_read_vl_a // SVE stack frame size
iclass_sve_int_read_svl_a // sve_int_read_svl_a
// sve > sve_int_unpred_arit_b
iclass_sve_int_mul_b // SVE2 integer multiply vectors (unpredicated)
iclass_sve_int_sqdmulh // SVE2 signed saturating doubling multiply high (unpredicated)
// sve > sve_int_unpred_shift
iclass_sve_int_bin_cons_shift_a // SVE bitwise shift by wide elements (unpredicated)
iclass_sve_int_bin_cons_shift_b // SVE bitwise shift by immediate (unpredicated)
// sve
iclass_sve_int_bin_cons_misc_0_a // SVE address generation
// sve > sve_int_unpred_misc
iclass_sve_int_bin_cons_misc_0_b // SVE floating-point trig select coefficient
iclass_sve_int_bin_cons_misc_0_c // SVE floating-point exponential accelerator
iclass_sve_int_bin_cons_misc_0_d // SVE constructive prefix (unpredicated)
// sve > sve_countelt
iclass_sve_int_countvlv0 // SVE saturating inc/dec vector by element count
iclass_sve_int_count // SVE element count
iclass_sve_int_countvlv1 // SVE inc/dec vector by element count
iclass_sve_int_pred_pattern_a // SVE inc/dec register by element count
iclass_sve_int_pred_pattern_b // SVE saturating inc/dec register by element count
// sve > sve_maskimm
iclass_sve_int_dup_mask_imm // SVE broadcast bitmask immediate
iclass_sve_int_log_imm // SVE bitwise logical with immediate (unpredicated)
// sve > sve_wideimm_pred
iclass_sve_int_dup_imm_pred // SVE copy integer immediate (predicated)
iclass_sve_int_dup_fpimm_pred // SVE copy floating-point immediate (predicated)
// sve
iclass_sve_int_perm_dup_i // SVE broadcast indexed element
iclass_sve_int_perm_tbl_3src // SVE table lookup (three sources)
iclass_sve_int_perm_tbl // SVE table lookup
// sve > sve_perm_unpred_d
iclass_sve_int_perm_dup_r // SVE broadcast general register
iclass_sve_int_perm_insrs // SVE insert general register
iclass_sve_int_perm_unpk // SVE unpack vector elements
iclass_sve_int_perm_insrv // SVE insert SIMD&FP scalar register
iclass_sve_int_perm_reverse_z // SVE reverse vector elements
// sve > sve_perm_predicates
iclass_sve_int_perm_punpk // SVE unpack predicate elements
iclass_sve_int_perm_bin_perm_pp // SVE permute predicate elements
iclass_sve_int_perm_reverse_p // SVE reverse predicate elements
// sve
iclass_sve_int_perm_bin_perm_zz // SVE permute vector elements
// sve > sve_perm_pred
iclass_sve_int_perm_cpy_v // SVE copy SIMD&FP scalar register to vector (predicated)
iclass_sve_int_perm_compact // SVE compress active elements
iclass_sve_int_perm_last_r // SVE extract element to general register
iclass_sve_int_perm_last_v // SVE extract element to SIMD&FP scalar register
iclass_sve_int_perm_rev // SVE reverse within elements
iclass_sve_int_perm_cpy_r // SVE copy general register to vector (predicated)
iclass_sve_int_perm_clast_zz // SVE conditionally broadcast element to vector
iclass_sve_int_perm_clast_vz // SVE conditionally extract element to SIMD&FP scalar
iclass_sve_int_perm_splice // SVE vector splice (destructive)
iclass_sve_intx_perm_splice // SVE2 vector splice (constructive)
iclass_sve_int_perm_revd // SVE reverse doublewords
iclass_sve_int_perm_clast_rz // SVE conditionally extract element to general register
// sve
iclass_sve_int_sel_vvv // SVE select vector elements (predicated)
// sve > sve_perm_extract
iclass_sve_int_perm_extract_i // SVE extract vector (immediate offset, destructive)
iclass_sve_intx_perm_extract_i // SVE2 extract vector (immediate offset, constructive)
// sve > sve_perm_inter_long
iclass_sve_int_perm_bin_long_perm_zz // SVE permute vector segments
// sve > sve_cmpvec
iclass_sve_int_cmp_0 // SVE integer compare vectors
iclass_sve_int_cmp_1 // SVE integer compare with wide elements
// sve
iclass_sve_int_ucmp_vi // SVE integer compare with unsigned immediate
iclass_sve_int_scmp_vi // SVE integer compare with signed immediate
iclass_sve_int_pred_log // SVE predicate logical operations
// sve > sve_pred_gen_b
iclass_sve_int_brkp // SVE propagate break from previous partition
// sve > sve_pred_gen_c
iclass_sve_int_brkn // SVE propagate break to next partition
iclass_sve_int_break // SVE partition break condition
// sve > sve_pred_gen_d
iclass_sve_int_ptest // SVE predicate test
iclass_sve_int_pfirst // SVE predicate first active
iclass_sve_int_pfalse // SVE predicate zero
iclass_sve_int_rdffr // SVE predicate read from FFR (predicated)
iclass_sve_int_pnext // SVE predicate next active
iclass_sve_int_rdffr_2 // SVE predicate read from FFR (unpredicated)
iclass_sve_int_ptrue // SVE predicate initialize
// sve > sve_cmpgpr
iclass_sve_int_while_rr // SVE integer compare scalar count and limit
iclass_sve_int_cterm // SVE conditionally terminate scalars
iclass_sve_int_whilenc // SVE pointer conflict compare
// sve
iclass_sve_int_pred_dup // SVE broadcast predicate element
// sve > sve_wideimm_unpred
iclass_sve_int_arith_imm0 // SVE integer add/subtract immediate (unpredicated)
iclass_sve_int_arith_imm1 // SVE integer min/max immediate (unpredicated)
iclass_sve_int_arith_imm2 // SVE integer multiply immediate (unpredicated)
iclass_sve_int_dup_imm // SVE broadcast integer immediate (unpredicated)
iclass_sve_int_dup_fpimm // SVE broadcast floating-point immediate (unpredicated)
// sve > sve_pred_count_a
iclass_sve_int_pcount_pred // SVE predicate count
// sve > sve_pred_count_b
iclass_sve_int_count_v_sat // SVE saturating inc/dec vector by predicate count
iclass_sve_int_count_r_sat // SVE saturating inc/dec register by predicate count
iclass_sve_int_count_v // SVE inc/dec vector by predicate count
iclass_sve_int_count_r // SVE inc/dec register by predicate count
// sve > sve_pred_wrffr
iclass_sve_int_wrffr // SVE FFR write from predicate
iclass_sve_int_setffr // SVE FFR initialise
// sve > sve_intx_muladd_unpred
iclass_sve_intx_dot // SVE integer dot product (unpredicated)
iclass_sve_intx_qdmlalbt // SVE2 saturating multiply-add interleaved long
iclass_sve_intx_cdot // SVE2 complex integer dot product
iclass_sve_intx_cmla // SVE2 complex integer multiply-add
iclass_sve_intx_mlal_long // SVE2 integer multiply-add long
iclass_sve_intx_qdmlal_long // SVE2 saturating multiply-add long
iclass_sve_intx_qrdmlah // SVE2 saturating multiply-add high
iclass_sve_intx_mixed_dot // SVE mixed sign dot product
// sve > sve_intx_predicated
iclass_sve_intx_accumulate_long_pairs // SVE2 integer pairwise add and accumulate long
iclass_sve_intx_pred_arith_unary // SVE2 integer unary operations (predicated)
iclass_sve_intx_bin_pred_shift_sat_round // SVE2 saturating/rounding bitwise shift left (predicated)
iclass_sve_intx_pred_arith_binary // SVE2 integer halving add/subtract (predicated)
iclass_sve_intx_arith_binary_pairs // SVE2 integer pairwise arithmetic
iclass_sve_intx_pred_arith_binary_sat // SVE2 saturating add/subtract
// sve
iclass_sve_intx_clamp // SVE clamp
// sve > sve_intx_by_indexed_elem
iclass_sve_intx_dot_by_indexed_elem // SVE integer dot product (indexed)
iclass_sve_intx_mla_by_indexed_elem // SVE2 integer multiply-add (indexed)
iclass_sve_intx_qrdmlah_by_indexed_elem // SVE2 saturating multiply-add high (indexed)
iclass_sve_intx_mixed_dot_by_indexed_elem // SVE mixed sign dot product (indexed)
iclass_sve_intx_qdmla_long_by_indexed_elem // SVE2 saturating multiply-add (indexed)
iclass_sve_intx_cdot_by_indexed_elem // SVE2 complex integer dot product (indexed)
iclass_sve_intx_cmla_by_indexed_elem // SVE2 complex integer multiply-add (indexed)
iclass_sve_intx_qrdcmla_by_indexed_elem // SVE2 complex saturating multiply-add (indexed)
iclass_sve_intx_mla_long_by_indexed_elem // SVE2 integer multiply-add long (indexed)
iclass_sve_intx_mul_long_by_indexed_elem // SVE2 integer multiply long (indexed)
iclass_sve_intx_qdmul_long_by_indexed_elem // SVE2 saturating multiply (indexed)
iclass_sve_intx_qdmulh_by_indexed_elem // SVE2 saturating multiply high (indexed)
iclass_sve_intx_mul_by_indexed_elem // SVE2 integer multiply (indexed)
// sve > sve_intx_cons_widening
iclass_sve_intx_cons_arith_long // SVE2 integer add/subtract long
iclass_sve_intx_cons_arith_wide // SVE2 integer add/subtract wide
iclass_sve_intx_cons_mul_long // SVE2 integer multiply long
// sve > sve_intx_constructive
iclass_sve_intx_shift_long // SVE2 bitwise shift left long
iclass_sve_intx_clong // SVE2 integer add/subtract interleaved long
iclass_sve_intx_eorx // SVE2 bitwise exclusive-or interleaved
iclass_sve_intx_mmla // SVE integer matrix multiply accumulate
iclass_sve_intx_perm_bit // SVE2 bitwise permute
// sve > sve_intx_acc
iclass_sve_intx_cadd // SVE2 complex integer add
iclass_sve_intx_aba_long // SVE2 integer absolute difference and accumulate long
iclass_sve_intx_adc_long // SVE2 integer add/subtract long with carry
iclass_sve_intx_sra // SVE2 bitwise shift right and accumulate
iclass_sve_intx_shift_insert // SVE2 bitwise shift and insert
iclass_sve_intx_aba // SVE2 integer absolute difference and accumulate
// sve > sve_intx_narrowing
iclass_sve_intx_extract_narrow // SVE2 saturating extract narrow
iclass_sve_intx_shift_narrow // SVE2 bitwise shift right narrow
iclass_sve_intx_arith_narrow // SVE2 integer add/subtract narrow high part
// sve
iclass_sve_intx_match // SVE2 character match
// sve > sve_intx_histseg
iclass_sve_intx_histseg // SVE2 histogram generation (segment)
// sve
iclass_sve_intx_histcnt // SVE2 histogram generation (vector)
// sve > sve_intx_crypto
iclass_sve_crypto_unary // SVE2 crypto unary operations
iclass_sve_crypto_binary_dest // SVE2 crypto destructive binary operations
iclass_sve_crypto_binary_const // SVE2 crypto constructive binary operations
// sve
iclass_sve_fp_fcmla // SVE floating-point complex multiply-add (predicated)
iclass_sve_fp_fcadd // SVE floating-point complex add (predicated)
iclass_sve_fp_fcvt2 // SVE floating-point convert precision odd elements
iclass_sve_fp_pairwise // SVE2 floating-point pairwise operations
iclass_sve_fp_fma_by_indexed_elem // SVE floating-point multiply-add (indexed)
iclass_sve_fp_fcmla_by_indexed_elem // SVE floating-point complex multiply-add (indexed)
iclass_sve_fp_fmul_by_indexed_elem // SVE floating-point multiply (indexed)
// sve > sve_fp_fma_w_by_indexed_elem
iclass_sve_fp_fdot_by_indexed_elem // SVE BFloat16 floating-point dot product (indexed)
iclass_sve_fp_fma_long_by_indexed_elem // SVE floating-point multiply-add long (indexed)
// sve > sve_fp_fma_w
iclass_sve_fp_fdot // SVE BFloat16 floating-point dot product
iclass_sve_fp_fma_long // SVE floating-point multiply-add long
// sve
iclass_sve_fp_fmmla // SVE floating point matrix multiply accumulate
iclass_sve_fp_3op_p_pd // SVE floating-point compare vectors
iclass_sve_fp_3op_u_zd // SVE floating-point arithmetic (unpredicated)
// sve > sve_fp_pred
iclass_sve_fp_2op_p_zds // SVE floating-point arithmetic (predicated)
iclass_sve_fp_ftmad // SVE floating-point trig multiply-add coefficient
iclass_sve_fp_2op_i_p_zds // SVE floating-point arithmetic with immediate (predicated)
// sve > sve_fp_unary
iclass_sve_fp_2op_p_zd_a // SVE floating-point round to integral value
iclass_sve_fp_2op_p_zd_b_0 // SVE floating-point convert precision
iclass_sve_fp_2op_p_zd_b_1 // SVE floating-point unary operations
iclass_sve_fp_2op_p_zd_c // SVE integer convert to floating-point
iclass_sve_fp_2op_p_zd_d // SVE floating-point convert to integer
// sve
iclass_sve_fp_fast_red // SVE floating-point recursive reduction
// sve > sve_fp_unary_unpred
iclass_sve_fp_2op_u_zd // SVE floating-point reciprocal estimate (unpredicated)
// sve > sve_fp_cmpzero
iclass_sve_fp_2op_p_pd // SVE floating-point compare with zero
// sve > sve_fp_slowreduce
iclass_sve_fp_2op_p_vd // SVE floating-point serial reduction (predicated)
// sve > sve_fp_fma
iclass_sve_fp_3op_p_zds_a // SVE floating-point multiply-accumulate writing addend
iclass_sve_fp_3op_p_zds_b // SVE floating-point multiply-accumulate writing multiplicand
// sve > sve_mem32
iclass_sve_mem_32b_prfm_sv // SVE 32-bit gather prefetch (scalar plus 32-bit scaled offsets)
iclass_sve_mem_32b_gld_sv_a // SVE 32-bit gather load halfwords (scalar plus 32-bit scaled offsets)
iclass_sve_mem_32b_gld_sv_b // SVE 32-bit gather load words (scalar plus 32-bit scaled offsets)
iclass_sve_mem_32b_pfill // SVE load predicate register
iclass_sve_mem_32b_fill // SVE load vector register
iclass_sve_mem_prfm_si // SVE contiguous prefetch (scalar plus immediate)
iclass_sve_mem_32b_gld_vs // SVE 32-bit gather load (scalar plus 32-bit unscaled offsets)
iclass_sve_mem_32b_gldnt_vs // SVE2 32-bit gather non-temporal load (scalar plus 32-bit unscaled offsets)
iclass_sve_mem_prfm_ss // SVE contiguous prefetch (scalar plus scalar)
iclass_sve_mem_32b_prfm_vi // SVE 32-bit gather prefetch (vector plus immediate)
iclass_sve_mem_32b_gld_vi // SVE 32-bit gather load (vector plus immediate)
iclass_sve_mem_ld_dup // SVE load and broadcast element
// sve > sve_memcld
iclass_sve_mem_cldnt_si // SVE contiguous non-temporal load (scalar plus immediate)
iclass_sve_mem_cldnt_ss // SVE contiguous non-temporal load (scalar plus scalar)
iclass_sve_mem_eld_si // SVE load multiple structures (scalar plus immediate)
iclass_sve_mem_eld_ss // SVE load multiple structures (scalar plus scalar)
iclass_sve_mem_ldqr_si // SVE load and broadcast quadword (scalar plus immediate)
iclass_sve_mem_cld_si // SVE contiguous load (scalar plus immediate)
iclass_sve_mem_cldnf_si // SVE contiguous non-fault load (scalar plus immediate)
iclass_sve_mem_ldqr_ss // SVE load and broadcast quadword (scalar plus scalar)
iclass_sve_mem_cld_ss // SVE contiguous load (scalar plus scalar)
iclass_sve_mem_cldff_ss // SVE contiguous first-fault load (scalar plus scalar)
// sve > sve_mem64
iclass_sve_mem_64b_prfm_sv2 // SVE 64-bit gather prefetch (scalar plus 64-bit scaled offsets)
iclass_sve_mem_64b_prfm_sv // SVE 64-bit gather prefetch (scalar plus unpacked 32-bit scaled offsets)
iclass_sve_mem_64b_gld_sv2 // SVE 64-bit gather load (scalar plus 64-bit scaled offsets)
iclass_sve_mem_64b_gld_sv // SVE 64-bit gather load (scalar plus 32-bit unpacked scaled offsets)
iclass_sve_mem_64b_prfm_vi // SVE 64-bit gather prefetch (vector plus immediate)
iclass_sve_mem_64b_gldnt_vs // SVE2 64-bit gather non-temporal load (scalar plus unpacked 32-bit unscaled offsets)
iclass_sve_mem_64b_gld_vi // SVE 64-bit gather load (vector plus immediate)
iclass_sve_mem_64b_gld_vs2 // SVE 64-bit gather load (scalar plus 64-bit unscaled offsets)
iclass_sve_mem_64b_gld_vs // SVE 64-bit gather load (scalar plus unpacked 32-bit unscaled offsets)
// sve > sve_memst_cs
iclass_sve_mem_pspill // SVE store predicate register
iclass_sve_mem_spill // SVE store vector register
iclass_sve_mem_cst_ss // SVE contiguous store (scalar plus scalar)
// sve > sve_memst_nt
iclass_sve_mem_sstnt_64b_vs // SVE2 64-bit scatter non-temporal store (vector plus scalar)
iclass_sve_mem_cstnt_ss // SVE contiguous non-temporal store (scalar plus scalar)
iclass_sve_mem_sstnt_32b_vs // SVE2 32-bit scatter non-temporal store (vector plus scalar)
iclass_sve_mem_est_ss // SVE store multiple structures (scalar plus scalar)
// sve > sve_memst_ss
iclass_sve_mem_sst_vs_a // SVE 64-bit scatter store (scalar plus unpacked 32-bit unscaled offsets)
iclass_sve_mem_sst_sv_a // SVE 64-bit scatter store (scalar plus unpacked 32-bit scaled offsets)
iclass_sve_mem_sst_vs_b // SVE 32-bit scatter store (scalar plus 32-bit unscaled offsets)
iclass_sve_mem_sst_sv_b // SVE 32-bit scatter store (scalar plus 32-bit scaled offsets)
// sve > sve_memst_ss2
iclass_sve_mem_sst_vs2 // SVE 64-bit scatter store (scalar plus 64-bit unscaled offsets)
iclass_sve_mem_sst_sv2 // SVE 64-bit scatter store (scalar plus 64-bit scaled offsets)
iclass_sve_mem_sst_vi_a // SVE 64-bit scatter store (vector plus immediate)
iclass_sve_mem_sst_vi_b // SVE 32-bit scatter store (vector plus immediate)
// sve > sve_memst_si
iclass_sve_mem_cstnt_si // SVE contiguous non-temporal store (scalar plus immediate)
iclass_sve_mem_est_si // SVE store multiple structures (scalar plus immediate)
iclass_sve_mem_cst_si // SVE contiguous store (scalar plus immediate)
// dpimm
iclass_pcreladdr // PC-rel. addressing
iclass_addsub_imm // Add/subtract (immediate)
iclass_addsub_immtags // Add/subtract (immediate, with tags)
iclass_log_imm // Logical (immediate)
iclass_movewide // Move wide (immediate)
iclass_bitfield // Bitfield
iclass_extract // Extract
// control
iclass_condbranch // Conditional branch (immediate)
iclass_exception // Exception generation
iclass_systeminstrswithreg // System instructions with register argument
iclass_hints // Hints
iclass_barriers // Barriers
iclass_pstate // PSTATE
iclass_systemresult // System with result
iclass_systeminstrs // System instructions
iclass_systemmove // System register move
iclass_branch_reg // Unconditional branch (register)
iclass_branch_imm // Unconditional branch (immediate)
iclass_compbranch // Compare and branch (immediate)
iclass_testbranch // Test and branch (immediate)
// ldst
iclass_comswappr // Compare and swap pair
iclass_asisdlse // Advanced SIMD load/store multiple structures
iclass_asisdlsep // Advanced SIMD load/store multiple structures (post-indexed)
iclass_asisdlso // Advanced SIMD load/store single structure
iclass_asisdlsop // Advanced SIMD load/store single structure (post-indexed)
iclass_ldsttags // Load/store memory tags
iclass_ldstexclp // Load/store exclusive pair
iclass_ldstexclr // Load/store exclusive register
iclass_ldstord // Load/store ordered
iclass_comswap // Compare and swap
iclass_ldapstl_unscaled // LDAPR/STLR (unscaled immediate)
iclass_loadlit // Load register (literal)
iclass_memcms // Memory Copy and Memory Set
iclass_ldstnapair_offs // Load/store no-allocate pair (offset)
iclass_ldstpair_post // Load/store register pair (post-indexed)
iclass_ldstpair_off // Load/store register pair (offset)
iclass_ldstpair_pre // Load/store register pair (pre-indexed)
iclass_ldst_unscaled // Load/store register (unscaled immediate)
iclass_ldst_immpost // Load/store register (immediate post-indexed)
iclass_ldst_unpriv // Load/store register (unprivileged)
iclass_ldst_immpre // Load/store register (immediate pre-indexed)
iclass_memop // Atomic memory operations
iclass_ldst_regoff // Load/store register (register offset)
iclass_ldst_pac // Load/store register (pac)
iclass_ldst_pos // Load/store register (unsigned immediate)
// dpreg
iclass_dp_2src // Data-processing (2 source)
iclass_dp_1src // Data-processing (1 source)
iclass_log_shift // Logical (shifted register)
iclass_addsub_shift // Add/subtract (shifted register)
iclass_addsub_ext // Add/subtract (extended register)
iclass_addsub_carry // Add/subtract (with carry)
iclass_rmif // Rotate right into flags
iclass_setf // Evaluate into flags
iclass_condcmp_reg // Conditional compare (register)
iclass_condcmp_imm // Conditional compare (immediate)
iclass_condsel // Conditional select
iclass_dp_3src // Data-processing (3 source)
// simd-dp
iclass_cryptoaes // Cryptographic AES
iclass_cryptosha3 // Cryptographic three-register SHA
iclass_cryptosha2 // Cryptographic two-register SHA
iclass_asisdone // Advanced SIMD scalar copy
iclass_asisdsamefp16 // Advanced SIMD scalar three same FP16
iclass_asisdmiscfp16 // Advanced SIMD scalar two-register miscellaneous FP16
iclass_asisdsame2 // Advanced SIMD scalar three same extra
iclass_asisdmisc // Advanced SIMD scalar two-register miscellaneous
iclass_asisdpair // Advanced SIMD scalar pairwise
iclass_asisddiff // Advanced SIMD scalar three different
iclass_asisdsame // Advanced SIMD scalar three same
iclass_asisdshf // Advanced SIMD scalar shift by immediate
iclass_asisdelem // Advanced SIMD scalar x indexed element
iclass_asimdtbl // Advanced SIMD table lookup
iclass_asimdperm // Advanced SIMD permute
iclass_asimdext // Advanced SIMD extract
iclass_asimdins // Advanced SIMD copy
iclass_asimdsamefp16 // Advanced SIMD three same (FP16)
iclass_asimdmiscfp16 // Advanced SIMD two-register miscellaneous (FP16)
iclass_asimdsame2 // Advanced SIMD three-register extension
iclass_asimdmisc // Advanced SIMD two-register miscellaneous
iclass_asimdall // Advanced SIMD across lanes
iclass_asimddiff // Advanced SIMD three different
iclass_asimdsame // Advanced SIMD three same
iclass_asimdimm // Advanced SIMD modified immediate
iclass_asimdshf // Advanced SIMD shift by immediate
iclass_asimdelem // Advanced SIMD vector x indexed element
iclass_crypto3_imm2 // Cryptographic three-register, imm2
iclass_cryptosha512_3 // Cryptographic three-register SHA 512
iclass_crypto4 // Cryptographic four-register
iclass_crypto3_imm6 // Cryptographic three-register, imm6
iclass_cryptosha512_2 // Cryptographic two-register SHA 512
iclass_float2fix // Conversion between floating-point and fixed-point
iclass_float2int // Conversion between floating-point and integer
iclass_floatdp1 // Floating-point data-processing (1 source)
iclass_floatcmp // Floating-point compare
iclass_floatimm // Floating-point immediate
iclass_floatccmp // Floating-point conditional compare
iclass_floatdp2 // Floating-point data-processing (2 source)
iclass_floatsel // Floating-point conditional select
iclass_floatdp3 // Floating-point data-processing (3 source)
)
type encoding int
const (
encoding_none encoding = iota
// iclass_perm_undef
encoding_UDF_only_perm_undef // UDF
// iclass_mortlach_f32f32_prod
encoding_fmopa_za_pp_zz_32 // FMOPA (non-widening)
encoding_fmops_za_pp_zz_32 // FMOPS (non-widening)
// iclass_mortlach_b16f32_prod
encoding_bfmopa_za32_pp_zz_ // BFMOPA
encoding_bfmops_za32_pp_zz_ // BFMOPS
// iclass_mortlach_f16f32_prod
encoding_fmopa_za32_pp_zz_16 // FMOPA (widening)
encoding_fmops_za32_pp_zz_16 // FMOPS (widening)
// iclass_mortlach_i8i32_prod
encoding_smopa_za_pp_zz_32 // SMOPA
encoding_smops_za_pp_zz_32 // SMOPS
encoding_sumopa_za_pp_zz_32 // SUMOPA
encoding_sumops_za_pp_zz_32 // SUMOPS
encoding_usmopa_za_pp_zz_32 // USMOPA
encoding_usmops_za_pp_zz_32 // USMOPS
encoding_umopa_za_pp_zz_32 // UMOPA
encoding_umops_za_pp_zz_32 // UMOPS
// iclass_mortlach_f64f64_prod
encoding_fmopa_za_pp_zz_64 // FMOPA (non-widening)
encoding_fmops_za_pp_zz_64 // FMOPS (non-widening)
// iclass_mortlach_i16i64_prod
encoding_smopa_za_pp_zz_64 // SMOPA
encoding_smops_za_pp_zz_64 // SMOPS
encoding_sumopa_za_pp_zz_64 // SUMOPA
encoding_sumops_za_pp_zz_64 // SUMOPS
encoding_usmopa_za_pp_zz_64 // USMOPA
encoding_usmops_za_pp_zz_64 // USMOPS
encoding_umopa_za_pp_zz_64 // UMOPA
encoding_umops_za_pp_zz_64 // UMOPS
// iclass_mortlach_insert_pred
encoding_mova_za_p_rz_b // MOVA (vector to tile)
encoding_mova_za_p_rz_h // MOVA (vector to tile)
encoding_mova_za_p_rz_w // MOVA (vector to tile)
encoding_mova_za_p_rz_d // MOVA (vector to tile)
encoding_mova_za_p_rz_q // MOVA (vector to tile)
// iclass_mortlach_extract_pred
encoding_mova_z_p_rza_b // MOVA (tile to vector)
encoding_mova_z_p_rza_h // MOVA (tile to vector)
encoding_mova_z_p_rza_w // MOVA (tile to vector)
encoding_mova_z_p_rza_d // MOVA (tile to vector)
encoding_mova_z_p_rza_q // MOVA (tile to vector)
// iclass_mortlach_zero
encoding_zero_za_i_ // ZERO
// iclass_mortlach_addhv
encoding_addha_za_pp_z_32 // ADDHA
encoding_addva_za_pp_z_32 // ADDVA
encoding_addha_za_pp_z_64 // ADDHA
encoding_addva_za_pp_z_64 // ADDVA
// iclass_mortlach_contig_load
encoding_ld1b_za_p_rrr_ // LD1B
encoding_ld1h_za_p_rrr_ // LD1H
encoding_ld1w_za_p_rrr_ // LD1W
encoding_ld1d_za_p_rrr_ // LD1D
// iclass_mortlach_contig_store
encoding_st1b_za_p_rrr_ // ST1B
encoding_st1h_za_p_rrr_ // ST1H
encoding_st1w_za_p_rrr_ // ST1W
encoding_st1d_za_p_rrr_ // ST1D
// iclass_mortlach_ctxt_ldst
encoding_ldr_za_ri_ // LDR
encoding_str_za_ri_ // STR
// iclass_mortlach_contig_qload
encoding_ld1q_za_p_rrr_ // LD1Q
// iclass_mortlach_contig_qstore
encoding_st1q_za_p_rrr_ // ST1Q
// iclass_sve_int_mlas_vvv_pred
encoding_mla_z_p_zzz_ // MLA (vectors)
encoding_mls_z_p_zzz_ // MLS (vectors)
// iclass_sve_int_mladdsub_vvv_pred
encoding_mad_z_p_zzz_ // MAD
encoding_msb_z_p_zzz_ // MSB
// iclass_sve_int_bin_pred_arit_0
encoding_add_z_p_zz_ // ADD (vectors, predicated)
encoding_sub_z_p_zz_ // SUB (vectors, predicated)
encoding_subr_z_p_zz_ // SUBR (vectors)
// iclass_sve_int_bin_pred_arit_1
encoding_smax_z_p_zz_ // SMAX (vectors)
encoding_umax_z_p_zz_ // UMAX (vectors)
encoding_smin_z_p_zz_ // SMIN (vectors)
encoding_umin_z_p_zz_ // UMIN (vectors)
encoding_sabd_z_p_zz_ // SABD
encoding_uabd_z_p_zz_ // UABD
// iclass_sve_int_bin_pred_arit_2
encoding_mul_z_p_zz_ // MUL (vectors, predicated)
encoding_smulh_z_p_zz_ // SMULH (predicated)
encoding_umulh_z_p_zz_ // UMULH (predicated)
// iclass_sve_int_bin_pred_div
encoding_sdiv_z_p_zz_ // SDIV
encoding_udiv_z_p_zz_ // UDIV
encoding_sdivr_z_p_zz_ // SDIVR
encoding_udivr_z_p_zz_ // UDIVR
// iclass_sve_int_bin_pred_log
encoding_orr_z_p_zz_ // ORR (vectors, predicated)
encoding_eor_z_p_zz_ // EOR (vectors, predicated)
encoding_and_z_p_zz_ // AND (vectors, predicated)
encoding_bic_z_p_zz_ // BIC (vectors, predicated)
// iclass_sve_int_reduce_0
encoding_saddv_r_p_z_ // SADDV
encoding_uaddv_r_p_z_ // UADDV
// iclass_sve_int_reduce_1
encoding_smaxv_r_p_z_ // SMAXV
encoding_umaxv_r_p_z_ // UMAXV
encoding_sminv_r_p_z_ // SMINV
encoding_uminv_r_p_z_ // UMINV
// iclass_sve_int_movprfx_pred
encoding_movprfx_z_p_z_ // MOVPRFX (predicated)
// iclass_sve_int_reduce_2
encoding_orv_r_p_z_ // ORV
encoding_eorv_r_p_z_ // EORV
encoding_andv_r_p_z_ // ANDV
// iclass_sve_int_bin_pred_shift_0
encoding_asr_z_p_zi_ // ASR (immediate, predicated)
encoding_lsr_z_p_zi_ // LSR (immediate, predicated)
encoding_lsl_z_p_zi_ // LSL (immediate, predicated)
encoding_asrd_z_p_zi_ // ASRD
encoding_sqshl_z_p_zi_ // SQSHL (immediate)
encoding_uqshl_z_p_zi_ // UQSHL (immediate)
encoding_srshr_z_p_zi_ // SRSHR
encoding_urshr_z_p_zi_ // URSHR
encoding_sqshlu_z_p_zi_ // SQSHLU
// iclass_sve_int_bin_pred_shift_1
encoding_asr_z_p_zz_ // ASR (vectors)
encoding_lsr_z_p_zz_ // LSR (vectors)
encoding_lsl_z_p_zz_ // LSL (vectors)
encoding_asrr_z_p_zz_ // ASRR
encoding_lsrr_z_p_zz_ // LSRR
encoding_lslr_z_p_zz_ // LSLR
// iclass_sve_int_bin_pred_shift_2
encoding_asr_z_p_zw_ // ASR (wide elements, predicated)
encoding_lsr_z_p_zw_ // LSR (wide elements, predicated)
encoding_lsl_z_p_zw_ // LSL (wide elements, predicated)
// iclass_sve_int_un_pred_arit_0
encoding_sxtb_z_p_z_ // SXTB, SXTH, SXTW
encoding_uxtb_z_p_z_ // UXTB, UXTH, UXTW
encoding_sxth_z_p_z_ // SXTB, SXTH, SXTW
encoding_uxth_z_p_z_ // UXTB, UXTH, UXTW
encoding_sxtw_z_p_z_ // SXTB, SXTH, SXTW
encoding_uxtw_z_p_z_ // UXTB, UXTH, UXTW
encoding_abs_z_p_z_ // ABS
encoding_neg_z_p_z_ // NEG
// iclass_sve_int_un_pred_arit_1
encoding_cls_z_p_z_ // CLS
encoding_clz_z_p_z_ // CLZ
encoding_cnt_z_p_z_ // CNT
encoding_cnot_z_p_z_ // CNOT
encoding_fabs_z_p_z_ // FABS
encoding_fneg_z_p_z_ // FNEG
encoding_not_z_p_z_ // NOT (vector)
// iclass_sve_int_bin_cons_arit_0
encoding_add_z_zz_ // ADD (vectors, unpredicated)
encoding_sub_z_zz_ // SUB (vectors, unpredicated)
encoding_sqadd_z_zz_ // SQADD (vectors, unpredicated)
encoding_uqadd_z_zz_ // UQADD (vectors, unpredicated)
encoding_sqsub_z_zz_ // SQSUB (vectors, unpredicated)
encoding_uqsub_z_zz_ // UQSUB (vectors, unpredicated)
// iclass_sve_int_bin_cons_log
encoding_and_z_zz_ // AND (vectors, unpredicated)
encoding_orr_z_zz_ // ORR (vectors, unpredicated)
encoding_eor_z_zz_ // EOR (vectors, unpredicated)
encoding_bic_z_zz_ // BIC (vectors, unpredicated)
// iclass_sve_int_rotate_imm
encoding_xar_z_zzi_ // XAR
// iclass_sve_int_tern_log
encoding_eor3_z_zzz_ // EOR3
encoding_bsl_z_zzz_ // BSL
encoding_bcax_z_zzz_ // BCAX
encoding_bsl1n_z_zzz_ // BSL1N
encoding_bsl2n_z_zzz_ // BSL2N
encoding_nbsl_z_zzz_ // NBSL
// iclass_sve_int_index_ii
encoding_index_z_ii_ // INDEX (immediates)
// iclass_sve_int_index_ri
encoding_index_z_ri_ // INDEX (scalar, immediate)
// iclass_sve_int_index_ir
encoding_index_z_ir_ // INDEX (immediate, scalar)
// iclass_sve_int_index_rr
encoding_index_z_rr_ // INDEX (scalars)
// iclass_sve_int_arith_vl
encoding_addvl_r_ri_ // ADDVL
encoding_addpl_r_ri_ // ADDPL
// iclass_sve_int_arith_svl
encoding_addsvl_r_ri_ // ADDSVL
encoding_addspl_r_ri_ // ADDSPL
// iclass_sve_int_read_vl_a
encoding_rdvl_r_i_ // RDVL
// iclass_sve_int_read_svl_a
encoding_rdsvl_r_i_ // RDSVL
// iclass_sve_int_mul_b
encoding_mul_z_zz_ // MUL (vectors, unpredicated)
encoding_smulh_z_zz_ // SMULH (unpredicated)
encoding_umulh_z_zz_ // UMULH (unpredicated)
encoding_pmul_z_zz_ // PMUL
// iclass_sve_int_sqdmulh
encoding_sqdmulh_z_zz_ // SQDMULH (vectors)
encoding_sqrdmulh_z_zz_ // SQRDMULH (vectors)
// iclass_sve_int_bin_cons_shift_a
encoding_asr_z_zw_ // ASR (wide elements, unpredicated)
encoding_lsr_z_zw_ // LSR (wide elements, unpredicated)
encoding_lsl_z_zw_ // LSL (wide elements, unpredicated)
// iclass_sve_int_bin_cons_shift_b
encoding_asr_z_zi_ // ASR (immediate, unpredicated)
encoding_lsr_z_zi_ // LSR (immediate, unpredicated)
encoding_lsl_z_zi_ // LSL (immediate, unpredicated)
// iclass_sve_int_bin_cons_misc_0_a
encoding_adr_z_az_d_s32_scaled // ADR
encoding_adr_z_az_d_u32_scaled // ADR
encoding_adr_z_az_sd_same_scaled // ADR
// iclass_sve_int_bin_cons_misc_0_b
encoding_ftssel_z_zz_ // FTSSEL
// iclass_sve_int_bin_cons_misc_0_c
encoding_fexpa_z_z_ // FEXPA
// iclass_sve_int_bin_cons_misc_0_d
encoding_movprfx_z_z_ // MOVPRFX (unpredicated)
// iclass_sve_int_countvlv0
encoding_sqinch_z_zs_ // SQINCH (vector)
encoding_uqinch_z_zs_ // UQINCH (vector)
encoding_sqdech_z_zs_ // SQDECH (vector)
encoding_uqdech_z_zs_ // UQDECH (vector)
encoding_sqincw_z_zs_ // SQINCW (vector)
encoding_uqincw_z_zs_ // UQINCW (vector)
encoding_sqdecw_z_zs_ // SQDECW (vector)
encoding_uqdecw_z_zs_ // UQDECW (vector)
encoding_sqincd_z_zs_ // SQINCD (vector)
encoding_uqincd_z_zs_ // UQINCD (vector)
encoding_sqdecd_z_zs_ // SQDECD (vector)
encoding_uqdecd_z_zs_ // UQDECD (vector)
// iclass_sve_int_count
encoding_cntb_r_s_ // CNTB, CNTD, CNTH, CNTW
encoding_cnth_r_s_ // CNTB, CNTD, CNTH, CNTW
encoding_cntw_r_s_ // CNTB, CNTD, CNTH, CNTW
encoding_cntd_r_s_ // CNTB, CNTD, CNTH, CNTW
// iclass_sve_int_countvlv1
encoding_inch_z_zs_ // INCD, INCH, INCW (vector)
encoding_dech_z_zs_ // DECD, DECH, DECW (vector)
encoding_incw_z_zs_ // INCD, INCH, INCW (vector)
encoding_decw_z_zs_ // DECD, DECH, DECW (vector)
encoding_incd_z_zs_ // INCD, INCH, INCW (vector)
encoding_decd_z_zs_ // DECD, DECH, DECW (vector)
// iclass_sve_int_pred_pattern_a
encoding_incb_r_rs_ // INCB, INCD, INCH, INCW (scalar)
encoding_decb_r_rs_ // DECB, DECD, DECH, DECW (scalar)
encoding_inch_r_rs_ // INCB, INCD, INCH, INCW (scalar)
encoding_dech_r_rs_ // DECB, DECD, DECH, DECW (scalar)
encoding_incw_r_rs_ // INCB, INCD, INCH, INCW (scalar)
encoding_decw_r_rs_ // DECB, DECD, DECH, DECW (scalar)
encoding_incd_r_rs_ // INCB, INCD, INCH, INCW (scalar)
encoding_decd_r_rs_ // DECB, DECD, DECH, DECW (scalar)
// iclass_sve_int_pred_pattern_b
encoding_sqincb_r_rs_sx // SQINCB
encoding_uqincb_r_rs_uw // UQINCB
encoding_sqdecb_r_rs_sx // SQDECB
encoding_uqdecb_r_rs_uw // UQDECB
encoding_sqincb_r_rs_x // SQINCB
encoding_uqincb_r_rs_x // UQINCB
encoding_sqdecb_r_rs_x // SQDECB
encoding_uqdecb_r_rs_x // UQDECB
encoding_sqinch_r_rs_sx // SQINCH (scalar)
encoding_uqinch_r_rs_uw // UQINCH (scalar)
encoding_sqdech_r_rs_sx // SQDECH (scalar)
encoding_uqdech_r_rs_uw // UQDECH (scalar)
encoding_sqinch_r_rs_x // SQINCH (scalar)
encoding_uqinch_r_rs_x // UQINCH (scalar)
encoding_sqdech_r_rs_x // SQDECH (scalar)
encoding_uqdech_r_rs_x // UQDECH (scalar)
encoding_sqincw_r_rs_sx // SQINCW (scalar)
encoding_uqincw_r_rs_uw // UQINCW (scalar)
encoding_sqdecw_r_rs_sx // SQDECW (scalar)
encoding_uqdecw_r_rs_uw // UQDECW (scalar)
encoding_sqincw_r_rs_x // SQINCW (scalar)
encoding_uqincw_r_rs_x // UQINCW (scalar)
encoding_sqdecw_r_rs_x // SQDECW (scalar)
encoding_uqdecw_r_rs_x // UQDECW (scalar)
encoding_sqincd_r_rs_sx // SQINCD (scalar)
encoding_uqincd_r_rs_uw // UQINCD (scalar)
encoding_sqdecd_r_rs_sx // SQDECD (scalar)
encoding_uqdecd_r_rs_uw // UQDECD (scalar)
encoding_sqincd_r_rs_x // SQINCD (scalar)
encoding_uqincd_r_rs_x // UQINCD (scalar)
encoding_sqdecd_r_rs_x // SQDECD (scalar)
encoding_uqdecd_r_rs_x // UQDECD (scalar)
// iclass_sve_int_dup_mask_imm
encoding_dupm_z_i_ // DUPM
// iclass_sve_int_log_imm
encoding_orr_z_zi_ // ORR (immediate)
encoding_eor_z_zi_ // EOR (immediate)
encoding_and_z_zi_ // AND (immediate)
// iclass_sve_int_dup_imm_pred
encoding_cpy_z_o_i_ // CPY (immediate, zeroing)
encoding_cpy_z_p_i_ // CPY (immediate, merging)
// iclass_sve_int_dup_fpimm_pred
encoding_fcpy_z_p_i_ // FCPY
// iclass_sve_int_perm_dup_i
encoding_dup_z_zi_ // DUP (indexed)
// iclass_sve_int_perm_tbl_3src
encoding_tbl_z_zz_2 // TBL
encoding_tbx_z_zz_ // TBX
// iclass_sve_int_perm_tbl
encoding_tbl_z_zz_1 // TBL
// iclass_sve_int_perm_dup_r
encoding_dup_z_r_ // DUP (scalar)
// iclass_sve_int_perm_insrs
encoding_insr_z_r_ // INSR (scalar)
// iclass_sve_int_perm_unpk
encoding_sunpklo_z_z_ // SUNPKHI, SUNPKLO
encoding_sunpkhi_z_z_ // SUNPKHI, SUNPKLO
encoding_uunpklo_z_z_ // UUNPKHI, UUNPKLO
encoding_uunpkhi_z_z_ // UUNPKHI, UUNPKLO
// iclass_sve_int_perm_insrv
encoding_insr_z_v_ // INSR (SIMD&FP scalar)
// iclass_sve_int_perm_reverse_z
encoding_rev_z_z_ // REV (vector)
// iclass_sve_int_perm_punpk
encoding_punpklo_p_p_ // PUNPKHI, PUNPKLO
encoding_punpkhi_p_p_ // PUNPKHI, PUNPKLO
// iclass_sve_int_perm_bin_perm_pp
encoding_zip1_p_pp_ // ZIP1, ZIP2 (predicates)
encoding_zip2_p_pp_ // ZIP1, ZIP2 (predicates)
encoding_uzp1_p_pp_ // UZP1, UZP2 (predicates)
encoding_uzp2_p_pp_ // UZP1, UZP2 (predicates)
encoding_trn1_p_pp_ // TRN1, TRN2 (predicates)
encoding_trn2_p_pp_ // TRN1, TRN2 (predicates)
// iclass_sve_int_perm_reverse_p
encoding_rev_p_p_ // REV (predicate)
// iclass_sve_int_perm_bin_perm_zz
encoding_zip1_z_zz_ // ZIP1, ZIP2 (vectors)
encoding_zip2_z_zz_ // ZIP1, ZIP2 (vectors)
encoding_uzp1_z_zz_ // UZP1, UZP2 (vectors)
encoding_uzp2_z_zz_ // UZP1, UZP2 (vectors)
encoding_trn1_z_zz_ // TRN1, TRN2 (vectors)
encoding_trn2_z_zz_ // TRN1, TRN2 (vectors)
// iclass_sve_int_perm_cpy_v
encoding_cpy_z_p_v_ // CPY (SIMD&FP scalar)
// iclass_sve_int_perm_compact
encoding_compact_z_p_z_ // COMPACT
// iclass_sve_int_perm_last_r
encoding_lasta_r_p_z_ // LASTA (scalar)
encoding_lastb_r_p_z_ // LASTB (scalar)
// iclass_sve_int_perm_last_v
encoding_lasta_v_p_z_ // LASTA (SIMD&FP scalar)
encoding_lastb_v_p_z_ // LASTB (SIMD&FP scalar)
// iclass_sve_int_perm_rev
encoding_revb_z_z_ // REVB, REVH, REVW
encoding_revh_z_z_ // REVB, REVH, REVW
encoding_revw_z_z_ // REVB, REVH, REVW
encoding_rbit_z_p_z_ // RBIT
// iclass_sve_int_perm_cpy_r
encoding_cpy_z_p_r_ // CPY (scalar)
// iclass_sve_int_perm_clast_zz
encoding_clasta_z_p_zz_ // CLASTA (vectors)
encoding_clastb_z_p_zz_ // CLASTB (vectors)
// iclass_sve_int_perm_clast_vz
encoding_clasta_v_p_z_ // CLASTA (SIMD&FP scalar)
encoding_clastb_v_p_z_ // CLASTB (SIMD&FP scalar)
// iclass_sve_int_perm_splice
encoding_splice_z_p_zz_des // SPLICE
// iclass_sve_intx_perm_splice
encoding_splice_z_p_zz_con // SPLICE
// iclass_sve_int_perm_revd
encoding_revd_z_p_z_ // REVD
// iclass_sve_int_perm_clast_rz
encoding_clasta_r_p_z_ // CLASTA (scalar)
encoding_clastb_r_p_z_ // CLASTB (scalar)
// iclass_sve_int_sel_vvv
encoding_sel_z_p_zz_ // SEL (vectors)
// iclass_sve_int_perm_extract_i
encoding_ext_z_zi_des // EXT
// iclass_sve_intx_perm_extract_i
encoding_ext_z_zi_con // EXT
// iclass_sve_int_perm_bin_long_perm_zz
encoding_zip1_z_zz_q // ZIP1, ZIP2 (vectors)
encoding_zip2_z_zz_q // ZIP1, ZIP2 (vectors)
encoding_uzp1_z_zz_q // UZP1, UZP2 (vectors)
encoding_uzp2_z_zz_q // UZP1, UZP2 (vectors)
encoding_trn1_z_zz_q // TRN1, TRN2 (vectors)
encoding_trn2_z_zz_q // TRN1, TRN2 (vectors)
// iclass_sve_int_cmp_0
encoding_cmphs_p_p_zz_ // CMP<cc> (vectors)
encoding_cmphi_p_p_zz_ // CMP<cc> (vectors)
encoding_cmpeq_p_p_zw_ // CMP<cc> (wide elements)
encoding_cmpne_p_p_zw_ // CMP<cc> (wide elements)
encoding_cmpge_p_p_zz_ // CMP<cc> (vectors)
encoding_cmpgt_p_p_zz_ // CMP<cc> (vectors)
encoding_cmpeq_p_p_zz_ // CMP<cc> (vectors)
encoding_cmpne_p_p_zz_ // CMP<cc> (vectors)
// iclass_sve_int_cmp_1
encoding_cmpge_p_p_zw_ // CMP<cc> (wide elements)
encoding_cmpgt_p_p_zw_ // CMP<cc> (wide elements)
encoding_cmplt_p_p_zw_ // CMP<cc> (wide elements)
encoding_cmple_p_p_zw_ // CMP<cc> (wide elements)