• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2019, VIXL authors
2 // All rights reserved.
3 //
4 // Redistribution and use in source and binary forms, with or without
5 // modification, are permitted provided that the following conditions are met:
6 //
7 //   * Redistributions of source code must retain the above copyright notice,
8 //     this list of conditions and the following disclaimer.
9 //   * Redistributions in binary form must reproduce the above copyright notice,
10 //     this list of conditions and the following disclaimer in the documentation
11 //     and/or other materials provided with the distribution.
12 //   * Neither the name of ARM Limited nor the names of its contributors may be
13 //     used to endorse or promote products derived from this software without
14 //     specific prior written permission.
15 //
16 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS CONTRIBUTORS "AS IS" AND
17 // ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 // WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 // DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
20 // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21 // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
22 // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
23 // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
24 // OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
25 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 
27 namespace vixl {
28 namespace aarch64 {
29 
30 // This decode table is derived from the AArch64 ISA XML specification,
31 // available from https://developer.arm.com/products/architecture/a-profile/
32 
33 // clang-format off
34 static const DecodeMapping kDecodeMapping[] = {
35   { "Decode_gggyqx",
36     {23, 22, 20, 19, 18, 17, 16},
37     { {"0111001", "Visit_fcvtnu_asimdmiscfp16_r"},
38       {"0x00001", "Visit_fcvtnu_asimdmisc_r"},
39       {"1111001", "Visit_fcvtpu_asimdmiscfp16_r"},
40       {"1x00001", "Visit_fcvtpu_asimdmisc_r"},
41       {"xx10000", "Visit_umaxv_asimdall_only"},
42       {"xx10001", "Visit_uminv_asimdall_only"},
43     },
44   },
45 
46   { "Decode_ggvztl",
47     {30},
48     { {"0", "Visit_bl_only_branch_imm"},
49       {"1", "Decode_qpzynz"},
50     },
51   },
52 
53   { "Decode_ghmzhr",
54     {20, 19, 18, 17, 16, 13, 12},
55     { {"0000000", "Visit_rbit_32_dp_1src"},
56       {"0000001", "Visit_clz_32_dp_1src"},
57     },
58   },
59 
60   { "Decode_ghnljt",
61     {23, 22, 20, 19, 18, 17, 16},
62     { {"0000000", "Visit_fcvtns_64s_float2int"},
63       {"0000001", "Visit_fcvtnu_64s_float2int"},
64       {"0000010", "Visit_scvtf_s64_float2int"},
65       {"0000011", "Visit_ucvtf_s64_float2int"},
66       {"0000100", "Visit_fcvtas_64s_float2int"},
67       {"0000101", "Visit_fcvtau_64s_float2int"},
68       {"0001000", "Visit_fcvtps_64s_float2int"},
69       {"0001001", "Visit_fcvtpu_64s_float2int"},
70       {"0010000", "Visit_fcvtms_64s_float2int"},
71       {"0010001", "Visit_fcvtmu_64s_float2int"},
72       {"0011000", "Visit_fcvtzs_64s_float2int"},
73       {"0011001", "Visit_fcvtzu_64s_float2int"},
74       {"0100000", "Visit_fcvtns_64d_float2int"},
75       {"0100001", "Visit_fcvtnu_64d_float2int"},
76       {"0100010", "Visit_scvtf_d64_float2int"},
77       {"0100011", "Visit_ucvtf_d64_float2int"},
78       {"0100100", "Visit_fcvtas_64d_float2int"},
79       {"0100101", "Visit_fcvtau_64d_float2int"},
80       {"0100110", "Visit_fmov_64d_float2int"},
81       {"0100111", "Visit_fmov_d64_float2int"},
82       {"0101000", "Visit_fcvtps_64d_float2int"},
83       {"0101001", "Visit_fcvtpu_64d_float2int"},
84       {"0110000", "Visit_fcvtms_64d_float2int"},
85       {"0110001", "Visit_fcvtmu_64d_float2int"},
86       {"0111000", "Visit_fcvtzs_64d_float2int"},
87       {"0111001", "Visit_fcvtzu_64d_float2int"},
88       {"1001110", "Visit_fmov_64vx_float2int"},
89       {"1001111", "Visit_fmov_v64i_float2int"},
90       {"1100000", "Visit_fcvtns_64h_float2int"},
91       {"1100001", "Visit_fcvtnu_64h_float2int"},
92       {"1100010", "Visit_scvtf_h64_float2int"},
93       {"1100011", "Visit_ucvtf_h64_float2int"},
94       {"1100100", "Visit_fcvtas_64h_float2int"},
95       {"1100101", "Visit_fcvtau_64h_float2int"},
96       {"1100110", "Visit_fmov_64h_float2int"},
97       {"1100111", "Visit_fmov_h64_float2int"},
98       {"1101000", "Visit_fcvtps_64h_float2int"},
99       {"1101001", "Visit_fcvtpu_64h_float2int"},
100       {"1110000", "Visit_fcvtms_64h_float2int"},
101       {"1110001", "Visit_fcvtmu_64h_float2int"},
102       {"1111000", "Visit_fcvtzs_64h_float2int"},
103       {"1111001", "Visit_fcvtzu_64h_float2int"},
104     },
105   },
106 
107   { "Decode_gjprmg",
108     {11},
109     { {"0", "Decode_llpsqq"},
110     },
111   },
112 
113   { "Decode_gjsnly",
114     {16, 13, 12},
115     { {"000", "Visit_rev16_64_dp_1src"},
116       {"001", "Visit_cls_64_dp_1src"},
117       {"100", "Visit_pacib_64p_dp_1src"},
118       {"101", "Visit_autib_64p_dp_1src"},
119       {"110", "Decode_ksvxxm"},
120       {"111", "Decode_xsgxyy"},
121     },
122   },
123 
124   { "Decode_gjylrt",
125     {20, 19, 18, 17, 16},
126     { {"00000", "Visit_fcvtns_32h_float2int"},
127       {"00001", "Visit_fcvtnu_32h_float2int"},
128       {"00010", "Visit_scvtf_h32_float2int"},
129       {"00011", "Visit_ucvtf_h32_float2int"},
130       {"00100", "Visit_fcvtas_32h_float2int"},
131       {"00101", "Visit_fcvtau_32h_float2int"},
132       {"00110", "Visit_fmov_32h_float2int"},
133       {"00111", "Visit_fmov_h32_float2int"},
134       {"01000", "Visit_fcvtps_32h_float2int"},
135       {"01001", "Visit_fcvtpu_32h_float2int"},
136       {"10000", "Visit_fcvtms_32h_float2int"},
137       {"10001", "Visit_fcvtmu_32h_float2int"},
138       {"11000", "Visit_fcvtzs_32h_float2int"},
139       {"11001", "Visit_fcvtzu_32h_float2int"},
140     },
141   },
142 
143   { "Decode_gkhhjm",
144     {30, 23, 22},
145     { {"000", "Visit_sbfm_32m_bitfield"},
146       {"100", "Visit_ubfm_32m_bitfield"},
147     },
148   },
149 
150   { "Decode_gkkpjz",
151     {23, 22, 20, 19, 18, 17, 16},
152     { {"0111001", "Visit_fcvtmu_asisdmiscfp16_r"},
153       {"0x00001", "Visit_fcvtmu_asisdmisc_r"},
154       {"1111001", "Visit_fcvtzu_asisdmiscfp16_r"},
155       {"1x00001", "Visit_fcvtzu_asisdmisc_r"},
156       {"xx00000", "Visit_neg_asisdmisc_r"},
157     },
158   },
159 
160   { "Decode_gkpvxz",
161     {10},
162     { {"0", "Visit_blraa_64p_branch_reg"},
163       {"1", "Visit_blrab_64p_branch_reg"},
164     },
165   },
166 
167   { "Decode_gkpzhr",
168     {30, 23, 22, 13, 12, 11, 10},
169     { {"000xxxx", "Visit_fnmsub_s_floatdp3"},
170       {"001xxxx", "Visit_fnmsub_d_floatdp3"},
171       {"011xxxx", "Visit_fnmsub_h_floatdp3"},
172       {"10001x0", "Visit_fmul_asisdelem_rh_h"},
173       {"10x0101", "Visit_sqshrn_asisdshf_n"},
174       {"10x0111", "Visit_sqrshrn_asisdshf_n"},
175       {"11x01x0", "Visit_fmul_asisdelem_r_sd"},
176       {"1xx11x0", "Visit_sqdmull_asisdelem_l"},
177     },
178   },
179 
180   { "Decode_gkxgsn",
181     {30, 23, 22, 11, 10},
182     { {"00000", "Visit_stlur_32_ldapstl_unscaled"},
183       {"00100", "Visit_ldapur_32_ldapstl_unscaled"},
184       {"01000", "Visit_ldapursw_64_ldapstl_unscaled"},
185       {"10000", "Visit_stlur_64_ldapstl_unscaled"},
186       {"10100", "Visit_ldapur_64_ldapstl_unscaled"},
187     },
188   },
189 
190   { "Decode_glgrjy",
191     {23, 22, 20, 19, 18, 17, 16},
192     { {"0000000", "Visit_not_asimdmisc_r"},
193       {"0100000", "Visit_rbit_asimdmisc_r"},
194     },
195   },
196 
197   { "Decode_glhxyj",
198     {17},
199     { {"0", "Visit_ld3_asisdlsop_bx3_r3b"},
200       {"1", "Visit_ld3_asisdlsop_b3_i3b"},
201     },
202   },
203 
204   { "Decode_glkzlv",
205     {20, 19, 18, 17, 16},
206     { {"00000", "Visit_rev16_asimdmisc_r"},
207     },
208   },
209 
210   { "Decode_gmjhll",
211     {17},
212     { {"0", "Visit_st1_asisdlsep_r4_r4"},
213       {"1", "Visit_st1_asisdlsep_i4_i4"},
214     },
215   },
216 
217   { "Decode_gmrxlp",
218     {30},
219     { {"0", "Visit_orr_32_log_shift"},
220       {"1", "Visit_ands_32_log_shift"},
221     },
222   },
223 
224   { "Decode_gmrxqq",
225     {30, 23, 22},
226     { {"000", "Visit_stp_q_ldstpair_off"},
227       {"001", "Visit_ldp_q_ldstpair_off"},
228       {"010", "Visit_stp_q_ldstpair_pre"},
229       {"011", "Visit_ldp_q_ldstpair_pre"},
230     },
231   },
232 
233   { "Decode_gmsgqz",
234     {30, 23, 22},
235     { {"100", "Visit_eor3_vvv16_crypto4"},
236       {"101", "Visit_sm3ss1_vvv4_crypto4"},
237       {"110", "Visit_xar_vvv2_crypto3_imm6"},
238     },
239   },
240 
241   { "Decode_gmvjgn",
242     {23},
243     { {"0", "Visit_fmax_asimdsame_only"},
244       {"1", "Visit_fmin_asimdsame_only"},
245     },
246   },
247 
248   { "Decode_gmvrxn",
249     {18, 17, 12},
250     { {"000", "Visit_st4_asisdlso_d4_4d"},
251     },
252   },
253 
254   { "Decode_gmvtss",
255     {30},
256     { {"0", "Visit_ldr_q_loadlit"},
257     },
258   },
259 
260   { "Decode_gngjxr",
261     {20, 19, 18, 17, 16},
262     { {"00000", "Visit_cadd_z_zz"},
263       {"00001", "Visit_sqcadd_z_zz"},
264     },
265   },
266 
267   { "Decode_gnqhsl",
268     {23, 22, 20, 19, 18, 17, 16},
269     { {"0010000", "Visit_punpklo_p_p"},
270       {"0010001", "Visit_punpkhi_p_p"},
271       {"xx0xxxx", "Visit_zip1_p_pp"},
272       {"xx10100", "Visit_rev_p_p"},
273     },
274   },
275 
276   { "Decode_gnqjhz",
277     {20, 19, 18, 17, 16, 13, 12},
278     { {"0000000", "Visit_rev16_32_dp_1src"},
279       {"0000001", "Visit_cls_32_dp_1src"},
280     },
281   },
282 
283   { "Decode_gntpyh",
284     {23, 13, 12, 11, 10},
285     { {"00010", "Decode_gqspys"},
286       {"00110", "Decode_ymgrgx"},
287       {"01001", "Visit_fcmge_asisdsame_only"},
288       {"01011", "Visit_facge_asisdsame_only"},
289       {"01110", "Decode_kjyphv"},
290       {"10010", "Decode_myjqrl"},
291       {"10101", "Visit_fabd_asisdsame_only"},
292       {"10110", "Decode_vlsmsn"},
293       {"11001", "Visit_fcmgt_asisdsame_only"},
294       {"11011", "Visit_facgt_asisdsame_only"},
295       {"11110", "Decode_pxtsvn"},
296     },
297   },
298 
299   { "Decode_gnxgxs",
300     {30, 18},
301     { {"00", "Decode_krlpjl"},
302     },
303   },
304 
305   { "Decode_gnytkh",
306     {1, 0},
307     { {"11", "Visit_braaz_64_branch_reg"},
308     },
309   },
310 
311   { "Decode_gpxltv",
312     {23, 18, 17, 16},
313     { {"0000", "Visit_uqxtnt_z_zz"},
314     },
315   },
316 
317   { "Decode_gqspys",
318     {22, 20, 19, 18, 17, 16},
319     { {"111001", "Visit_fcvtau_asisdmiscfp16_r"},
320       {"x00001", "Visit_fcvtau_asisdmisc_r"},
321       {"x10000", "Visit_fmaxnmp_asisdpair_only_sd"},
322     },
323   },
324 
325   { "Decode_gqykqv",
326     {23, 22, 12},
327     { {"000", "Decode_rjmyyl"},
328       {"001", "Decode_zqltpy"},
329       {"010", "Decode_hstvrp"},
330       {"011", "Decode_yhqyzj"},
331       {"110", "Decode_mxtskk"},
332       {"111", "Decode_qmjqhq"},
333     },
334   },
335 
336   { "Decode_grqnlm",
337     {30, 23, 22, 13, 12, 11, 10},
338     { {"000xxxx", "Visit_fnmadd_s_floatdp3"},
339       {"001xxxx", "Visit_fnmadd_d_floatdp3"},
340       {"011xxxx", "Visit_fnmadd_h_floatdp3"},
341       {"10001x0", "Visit_fmla_asisdelem_rh_h"},
342       {"10x0001", "Visit_sshr_asisdshf_r"},
343       {"10x0101", "Visit_ssra_asisdshf_r"},
344       {"10x1001", "Visit_srshr_asisdshf_r"},
345       {"10x1101", "Visit_srsra_asisdshf_r"},
346       {"11x01x0", "Visit_fmla_asisdelem_r_sd"},
347       {"1xx11x0", "Visit_sqdmlal_asisdelem_l"},
348     },
349   },
350 
351   { "Decode_grrjlh",
352     {30},
353     { {"1", "Decode_jlqxvj"},
354     },
355   },
356 
357   { "Decode_grxzzg",
358     {23, 22},
359     { {"00", "Visit_tbx_asimdtbl_l2_2"},
360     },
361   },
362 
363   { "Decode_gsgzpg",
364     {17},
365     { {"0", "Visit_ld2_asisdlso_h2_2h"},
366     },
367   },
368 
369   { "Decode_gshrzq",
370     {22, 20, 11},
371     { {"010", "Visit_decb_r_rs"},
372       {"110", "Visit_dech_r_rs"},
373     },
374   },
375 
376   { "Decode_gskkxk",
377     {17},
378     { {"0", "Visit_st1_asisdlso_h1_1h"},
379     },
380   },
381 
382   { "Decode_gsttpm",
383     {12},
384     { {"0", "Visit_ld3_asisdlsop_dx3_r3d"},
385     },
386   },
387 
388   { "Decode_gszlvl",
389     {30},
390     { {"0", "Decode_tvsszp"},
391       {"1", "Decode_njtngm"},
392     },
393   },
394 
395   { "Decode_gszxkp",
396     {13, 12},
397     { {"11", "Visit_cmgt_asisdsame_only"},
398     },
399   },
400 
401   { "Decode_gtjskz",
402     {30, 23, 22, 13, 12, 11, 10},
403     { {"1011011", "Visit_bfmmla_asimdsame2_e"},
404       {"x011111", "Visit_bfdot_asimdsame2_d"},
405       {"x111111", "Visit_bfmlal_asimdsame2_f"},
406       {"xxx0xx1", "Visit_fcmla_asimdsame2_c"},
407       {"xxx1x01", "Visit_fcadd_asimdsame2_c"},
408     },
409   },
410 
411   { "Decode_gttglx",
412     {17},
413     { {"0", "Visit_st4_asisdlso_h4_4h"},
414     },
415   },
416 
417   { "Decode_gtvhmp",
418     {30, 13},
419     { {"00", "Decode_rjyrnt"},
420       {"01", "Decode_mzhsrq"},
421       {"10", "Decode_xtzlzy"},
422       {"11", "Decode_kqxhzx"},
423     },
424   },
425 
426   { "Decode_gtxpgx",
427     {30, 23, 13, 4},
428     { {"0000", "Visit_prfw_i_p_bz_s_x32_scaled"},
429       {"0010", "Visit_prfd_i_p_bz_s_x32_scaled"},
430       {"010x", "Visit_ld1h_z_p_bz_s_x32_scaled"},
431       {"011x", "Visit_ldff1h_z_p_bz_s_x32_scaled"},
432       {"1000", "Visit_prfw_i_p_bz_d_x32_scaled"},
433       {"1010", "Visit_prfd_i_p_bz_d_x32_scaled"},
434       {"110x", "Visit_ld1h_z_p_bz_d_x32_scaled"},
435       {"111x", "Visit_ldff1h_z_p_bz_d_x32_scaled"},
436     },
437   },
438 
439   { "Decode_gvjgyp",
440     {23, 22, 13, 12, 11, 10},
441     { {"0001x0", "Visit_fmls_asimdelem_rh_h"},
442       {"0x0101", "Visit_shl_asimdshf_r"},
443       {"0x1101", "Visit_sqshl_asimdshf_r"},
444       {"1000x0", "Visit_fmlsl_asimdelem_lh"},
445       {"1x01x0", "Visit_fmls_asimdelem_r_sd"},
446       {"xx10x0", "Visit_smlsl_asimdelem_l"},
447       {"xx11x0", "Visit_sqdmlsl_asimdelem_l"},
448     },
449   },
450 
451   { "Decode_gvstrp",
452     {17},
453     { {"0", "Visit_ld2_asisdlsop_bx2_r2b"},
454       {"1", "Visit_ld2_asisdlsop_b2_i2b"},
455     },
456   },
457 
458   { "Decode_gvykrp",
459     {30, 23, 22, 13, 12, 11, 10},
460     { {"10001x0", "Visit_fmulx_asisdelem_rh_h"},
461       {"10x0001", "Visit_sqshrun_asisdshf_n"},
462       {"10x0011", "Visit_sqrshrun_asisdshf_n"},
463       {"10x0101", "Visit_uqshrn_asisdshf_n"},
464       {"10x0111", "Visit_uqrshrn_asisdshf_n"},
465       {"11x01x0", "Visit_fmulx_asisdelem_r_sd"},
466     },
467   },
468 
469   { "Decode_gxlvsg",
470     {13},
471     { {"0", "Decode_vpxvjs"},
472       {"1", "Decode_lpslrz"},
473     },
474   },
475 
476   { "Decode_gxmnkl",
477     {23, 22},
478     { {"10", "Visit_cdot_z_zzzi_s"},
479       {"11", "Visit_cdot_z_zzzi_d"},
480     },
481   },
482 
483   { "Decode_gxnlxg",
484     {20, 19, 18, 17, 16},
485     { {"00001", "Visit_uqxtn_asisdmisc_n"},
486     },
487   },
488 
489   { "Decode_gxslgq",
490     {23, 22, 20, 19, 17, 16},
491     { {"000010", "Visit_scvtf_s32_float2fix"},
492       {"000011", "Visit_ucvtf_s32_float2fix"},
493       {"001100", "Visit_fcvtzs_32s_float2fix"},
494       {"001101", "Visit_fcvtzu_32s_float2fix"},
495       {"010010", "Visit_scvtf_d32_float2fix"},
496       {"010011", "Visit_ucvtf_d32_float2fix"},
497       {"011100", "Visit_fcvtzs_32d_float2fix"},
498       {"011101", "Visit_fcvtzu_32d_float2fix"},
499       {"110010", "Visit_scvtf_h32_float2fix"},
500       {"110011", "Visit_ucvtf_h32_float2fix"},
501       {"111100", "Visit_fcvtzs_32h_float2fix"},
502       {"111101", "Visit_fcvtzu_32h_float2fix"},
503     },
504   },
505 
506   { "Decode_gygnsz",
507     {17},
508     { {"0", "Visit_ld2_asisdlsop_hx2_r2h"},
509       {"1", "Visit_ld2_asisdlsop_h2_i2h"},
510     },
511   },
512 
513   { "Decode_gymljg",
514     {23},
515     { {"0", "Visit_fmulx_asimdsame_only"},
516     },
517   },
518 
519   { "Decode_gyrjrm",
520     {20, 19, 18, 17, 16},
521     { {"00000", "Visit_cpy_z_p_v"},
522       {"00001", "Visit_compact_z_p_z"},
523       {"00010", "Visit_lasta_v_p_z"},
524       {"00011", "Visit_lastb_v_p_z"},
525       {"00100", "Visit_revb_z_z"},
526       {"00101", "Visit_revh_z_z"},
527       {"00110", "Visit_revw_z_z"},
528       {"00111", "Visit_rbit_z_p_z"},
529       {"01000", "Visit_clasta_z_p_zz"},
530       {"01001", "Visit_clastb_z_p_zz"},
531       {"01010", "Visit_clasta_v_p_z"},
532       {"01011", "Visit_clastb_v_p_z"},
533       {"01100", "Visit_splice_z_p_zz_des"},
534       {"01101", "Visit_splice_z_p_zz_con"},
535     },
536   },
537 
538   { "Decode_gznnvh",
539     {23, 22, 20, 19, 18, 17, 16},
540     { {"0111001", "Visit_frinta_asimdmiscfp16_r"},
541       {"0x00001", "Visit_frinta_asimdmisc_r"},
542       {"xx00000", "Visit_cmge_asimdmisc_z"},
543     },
544   },
545 
546   { "Decode_gzqvnk",
547     {23, 12, 4, 3, 2, 1, 0},
548     { {"1000000", "Visit_ctermeq_rr"},
549       {"1010000", "Visit_ctermne_rr"},
550       {"x10xxxx", "Visit_whilewr_p_rr"},
551       {"x11xxxx", "Visit_whilerw_p_rr"},
552     },
553   },
554 
555   { "Decode_gzvgmh",
556     {18, 17, 12},
557     { {"0x0", "Visit_ld4_asisdlsop_dx4_r4d"},
558       {"100", "Visit_ld4_asisdlsop_dx4_r4d"},
559       {"110", "Visit_ld4_asisdlsop_d4_i4d"},
560     },
561   },
562 
563   { "Decode_gzylzp",
564     {17},
565     { {"0", "Visit_st3_asisdlsop_hx3_r3h"},
566       {"1", "Visit_st3_asisdlsop_h3_i3h"},
567     },
568   },
569 
570   { "Decode_hggmnk",
571     {13, 12},
572     { {"10", "Visit_lslv_32_dp_2src"},
573     },
574   },
575 
576   { "Decode_hgxqpp",
577     {18, 17},
578     { {"00", "Visit_st3_asisdlso_s3_3s"},
579     },
580   },
581 
582   { "Decode_hgxtqy",
583     {30, 23, 22, 13},
584     { {"0001", "Visit_ldnt1w_z_p_ar_s_x32_unscaled"},
585       {"0010", "Visit_ld1rsh_z_p_bi_s64"},
586       {"0011", "Visit_ld1rsh_z_p_bi_s32"},
587       {"0110", "Visit_ld1rsb_z_p_bi_s64"},
588       {"0111", "Visit_ld1rsb_z_p_bi_s32"},
589       {"1000", "Visit_ldnt1sw_z_p_ar_d_64_unscaled"},
590       {"1010", "Visit_ld1sw_z_p_bz_d_64_unscaled"},
591       {"1011", "Visit_ldff1sw_z_p_bz_d_64_unscaled"},
592     },
593   },
594 
595   { "Decode_hhhqjk",
596     {4, 3, 2, 1, 0},
597     { {"11111", "Decode_pqpzkt"},
598     },
599   },
600 
601   { "Decode_hhkhkk",
602     {30, 23, 11, 10},
603     { {"1001", "Decode_lkvynm"},
604     },
605   },
606 
607   { "Decode_hhkqtn",
608     {20, 19, 18, 17, 16},
609     { {"00000", "Visit_lasta_r_p_z"},
610       {"00001", "Visit_lastb_r_p_z"},
611       {"01000", "Visit_cpy_z_p_r"},
612       {"10000", "Visit_clasta_r_p_z"},
613       {"10001", "Visit_clastb_r_p_z"},
614     },
615   },
616 
617   { "Decode_hhnjjk",
618     {9, 8, 7, 6, 5},
619     { {"11111", "Visit_pacdzb_64z_dp_1src"},
620     },
621   },
622 
623   { "Decode_hhymvj",
624     {20, 19, 18, 17, 16, 13, 12},
625     { {"0000011", "Visit_sqabs_asisdmisc_r"},
626       {"0000100", "Visit_sqxtn_asisdmisc_n"},
627     },
628   },
629 
630   { "Decode_hjgylh",
631     {30, 23, 22},
632     { {"000", "Visit_str_s_ldst_pos"},
633       {"001", "Visit_ldr_s_ldst_pos"},
634       {"100", "Visit_str_d_ldst_pos"},
635       {"101", "Visit_ldr_d_ldst_pos"},
636     },
637   },
638 
639   { "Decode_hjqtrt",
640     {12},
641     { {"0", "Visit_st1_asisdlsop_dx1_r1d"},
642     },
643   },
644 
645   { "Decode_hjtvvm",
646     {13, 12},
647     { {"00", "Visit_sdiv_64_dp_2src"},
648       {"10", "Visit_rorv_64_dp_2src"},
649     },
650   },
651 
652   { "Decode_hljrqn",
653     {22},
654     { {"0", "Visit_str_32_ldst_regoff"},
655       {"1", "Visit_ldr_32_ldst_regoff"},
656     },
657   },
658 
659   { "Decode_hlshjk",
660     {23, 22},
661     { {"00", "Visit_fmlal_asimdsame_f"},
662       {"10", "Visit_fmlsl_asimdsame_f"},
663     },
664   },
665 
666   { "Decode_hmsgpj",
667     {13, 12, 10},
668     { {"000", "Decode_hthxvr"},
669       {"100", "Visit_ptrue_p_s"},
670       {"101", "Decode_kkvrzq"},
671       {"110", "Decode_xxjrsy"},
672     },
673   },
674 
675   { "Decode_hmtmlq",
676     {4},
677     { {"0", "Visit_nor_p_p_pp_z"},
678       {"1", "Visit_nand_p_p_pp_z"},
679     },
680   },
681 
682   { "Decode_hmtxlh",
683     {9, 8, 7, 6, 5, 1, 0},
684     { {"1111111", "Visit_retaa_64e_branch_reg"},
685     },
686   },
687 
688   { "Decode_hmxlny",
689     {13, 12, 11, 10},
690     { {"0000", "Visit_addhn_asimddiff_n"},
691       {"0001", "Visit_sshl_asimdsame_only"},
692       {"0010", "Decode_lyghyg"},
693       {"0011", "Visit_sqshl_asimdsame_only"},
694       {"0100", "Visit_sabal_asimddiff_l"},
695       {"0101", "Visit_srshl_asimdsame_only"},
696       {"0110", "Decode_htgzzx"},
697       {"0111", "Visit_sqrshl_asimdsame_only"},
698       {"1000", "Visit_subhn_asimddiff_n"},
699       {"1001", "Visit_smax_asimdsame_only"},
700       {"1010", "Decode_sqpjtr"},
701       {"1011", "Visit_smin_asimdsame_only"},
702       {"1100", "Visit_sabdl_asimddiff_l"},
703       {"1101", "Visit_sabd_asimdsame_only"},
704       {"1110", "Decode_rnrzsj"},
705       {"1111", "Visit_saba_asimdsame_only"},
706     },
707   },
708 
709   { "Decode_hngpgx",
710     {23, 10, 4},
711     { {"000", "Decode_vxsjgg"},
712     },
713   },
714 
715   { "Decode_hngpxg",
716     {1, 0},
717     { {"00", "Visit_br_64_branch_reg"},
718     },
719   },
720 
721   { "Decode_hnjrmp",
722     {4},
723     { {"0", "Visit_cmplo_p_p_zi"},
724       {"1", "Visit_cmpls_p_p_zi"},
725     },
726   },
727 
728   { "Decode_hnzzkj",
729     {30, 18},
730     { {"00", "Decode_gxslgq"},
731     },
732   },
733 
734   { "Decode_hpgqlp",
735     {9, 8, 7, 6, 5},
736     { {"00000", "Visit_fmov_s_floatimm"},
737     },
738   },
739 
740   { "Decode_hqhzgj",
741     {17},
742     { {"0", "Visit_ld2_asisdlso_b2_2b"},
743     },
744   },
745 
746   { "Decode_hqlskj",
747     {18, 17},
748     { {"00", "Visit_ld1_asisdlse_r1_1v"},
749     },
750   },
751 
752   { "Decode_hqnxvt",
753     {13, 12, 11, 10},
754     { {"0000", "Visit_saddl_asimddiff_l"},
755       {"0001", "Visit_shadd_asimdsame_only"},
756       {"0010", "Decode_rykykh"},
757       {"0011", "Visit_sqadd_asimdsame_only"},
758       {"0100", "Visit_saddw_asimddiff_w"},
759       {"0101", "Visit_srhadd_asimdsame_only"},
760       {"0110", "Decode_glkzlv"},
761       {"0111", "Decode_rnktts"},
762       {"1000", "Visit_ssubl_asimddiff_l"},
763       {"1001", "Visit_shsub_asimdsame_only"},
764       {"1010", "Decode_rgztzl"},
765       {"1011", "Visit_sqsub_asimdsame_only"},
766       {"1100", "Visit_ssubw_asimddiff_w"},
767       {"1101", "Visit_cmgt_asimdsame_only"},
768       {"1110", "Decode_nyxxks"},
769       {"1111", "Visit_cmge_asimdsame_only"},
770     },
771   },
772 
773   { "Decode_hqsvmh",
774     {18, 17},
775     { {"00", "Visit_st4_asisdlso_s4_4s"},
776     },
777   },
778 
779   { "Decode_hrhzqy",
780     {17},
781     { {"0", "Visit_ld4_asisdlse_r4"},
782     },
783   },
784 
785   { "Decode_hrktgs",
786     {12},
787     { {"0", "Visit_st2_asisdlsop_dx2_r2d"},
788     },
789   },
790 
791   { "Decode_hrllsn",
792     {18, 17, 16},
793     { {"000", "Visit_fadd_z_p_zz"},
794       {"001", "Visit_fsub_z_p_zz"},
795       {"010", "Visit_fmul_z_p_zz"},
796       {"011", "Visit_fsubr_z_p_zz"},
797       {"100", "Visit_fmaxnm_z_p_zz"},
798       {"101", "Visit_fminnm_z_p_zz"},
799       {"110", "Visit_fmax_z_p_zz"},
800       {"111", "Visit_fmin_z_p_zz"},
801     },
802   },
803 
804   { "Decode_hrxyts",
805     {23, 22, 20, 19, 18, 13},
806     { {"00000x", "Visit_orr_z_zi"},
807       {"01000x", "Visit_eor_z_zi"},
808       {"10000x", "Visit_and_z_zi"},
809       {"11000x", "Visit_dupm_z_i"},
810       {"xx1xx0", "Visit_fcpy_z_p_i"},
811     },
812   },
813 
814   { "Decode_hsjynv",
815     {30},
816     { {"0", "Visit_bl_only_branch_imm"},
817     },
818   },
819 
820   { "Decode_hstvrp",
821     {20, 19, 18, 17, 16, 13},
822     { {"000000", "Visit_fmov_d_floatdp1"},
823       {"000010", "Visit_fneg_d_floatdp1"},
824       {"000100", "Visit_fcvt_sd_floatdp1"},
825       {"000110", "Visit_bfcvt_bs_floatdp1"},
826       {"001000", "Visit_frintn_d_floatdp1"},
827       {"001010", "Visit_frintm_d_floatdp1"},
828       {"001100", "Visit_frinta_d_floatdp1"},
829       {"001110", "Visit_frintx_d_floatdp1"},
830       {"010000", "Visit_frint32z_d_floatdp1"},
831       {"010010", "Visit_frint64z_d_floatdp1"},
832     },
833   },
834 
835   { "Decode_hsvgnt",
836     {23, 22, 4, 3, 2, 1, 0},
837     { {"0000001", "Visit_svc_ex_exception"},
838       {"0000010", "Visit_hvc_ex_exception"},
839       {"0000011", "Visit_smc_ex_exception"},
840       {"0100000", "Visit_hlt_ex_exception"},
841     },
842   },
843 
844   { "Decode_htgzzx",
845     {20, 18, 17, 16},
846     { {"0000", "Decode_mqgtsq"},
847     },
848   },
849 
850   { "Decode_hthxvr",
851     {23, 22, 9},
852     { {"010", "Visit_pfirst_p_p_p"},
853     },
854   },
855 
856   { "Decode_htmthz",
857     {22, 20, 19, 18, 17, 16, 13, 12},
858     { {"01111100", "Decode_msztzv"},
859     },
860   },
861 
862   { "Decode_htnmls",
863     {22, 13, 12},
864     { {"000", "Visit_ldapr_32l_memop"},
865     },
866   },
867 
868   { "Decode_htplsj",
869     {4},
870     { {"0", "Visit_cmpeq_p_p_zz"},
871       {"1", "Visit_cmpne_p_p_zz"},
872     },
873   },
874 
875   { "Decode_htppjj",
876     {30, 23, 22},
877     { {"000", "Visit_msub_64a_dp_3src"},
878     },
879   },
880 
881   { "Decode_htqpks",
882     {30, 20, 19, 18, 17, 16, 13},
883     { {"000000x", "Visit_add_z_zi"},
884       {"000001x", "Visit_sub_z_zi"},
885       {"000011x", "Visit_subr_z_zi"},
886       {"000100x", "Visit_sqadd_z_zi"},
887       {"000101x", "Visit_uqadd_z_zi"},
888       {"000110x", "Visit_sqsub_z_zi"},
889       {"000111x", "Visit_uqsub_z_zi"},
890       {"0010000", "Visit_smax_z_zi"},
891       {"0010010", "Visit_umax_z_zi"},
892       {"0010100", "Visit_smin_z_zi"},
893       {"0010110", "Visit_umin_z_zi"},
894       {"0100000", "Visit_mul_z_zi"},
895       {"011000x", "Visit_dup_z_i"},
896       {"0110010", "Visit_fdup_z_i"},
897       {"1xxxxx0", "Visit_fnmad_z_p_zzz"},
898       {"1xxxxx1", "Visit_fnmsb_z_p_zzz"},
899     },
900   },
901 
902   { "Decode_hvvyhl",
903     {23, 22, 20, 19, 18, 17, 16},
904     { {"0x00001", "Visit_frint32z_asimdmisc_r"},
905       {"1111000", "Visit_fcmlt_asimdmiscfp16_fz"},
906       {"1x00000", "Visit_fcmlt_asimdmisc_fz"},
907     },
908   },
909 
910   { "Decode_hvyjnk",
911     {11},
912     { {"0", "Visit_sqrdmulh_z_zzi_h"},
913     },
914   },
915 
916   { "Decode_hxglyp",
917     {17},
918     { {"0", "Visit_ld4_asisdlsep_r4_r"},
919       {"1", "Visit_ld4_asisdlsep_i4_i"},
920     },
921   },
922 
923   { "Decode_hxmjhn",
924     {30, 23, 22, 19, 16},
925     { {"10010", "Visit_aese_b_cryptoaes"},
926       {"xxx00", "Visit_cls_asimdmisc_r"},
927       {"xxx01", "Visit_sqxtn_asimdmisc_n"},
928     },
929   },
930 
931   { "Decode_hxnmsl",
932     {30, 23, 22, 20, 13},
933     { {"00001", "Visit_ld2w_z_p_bi_contiguous"},
934       {"000x0", "Visit_ld2w_z_p_br_contiguous"},
935       {"00101", "Visit_ld4w_z_p_bi_contiguous"},
936       {"001x0", "Visit_ld4w_z_p_br_contiguous"},
937       {"01001", "Visit_ld2d_z_p_bi_contiguous"},
938       {"010x0", "Visit_ld2d_z_p_br_contiguous"},
939       {"01101", "Visit_ld4d_z_p_bi_contiguous"},
940       {"011x0", "Visit_ld4d_z_p_br_contiguous"},
941       {"10011", "Visit_st2w_z_p_bi_contiguous"},
942       {"100x0", "Visit_st1w_z_p_bz_d_x32_scaled"},
943       {"10111", "Visit_st4w_z_p_bi_contiguous"},
944       {"101x0", "Visit_st1w_z_p_bz_s_x32_scaled"},
945       {"10x01", "Visit_st1w_z_p_bi"},
946       {"11011", "Visit_st2d_z_p_bi_contiguous"},
947       {"110x0", "Visit_st1d_z_p_bz_d_x32_scaled"},
948       {"11111", "Visit_st4d_z_p_bi_contiguous"},
949       {"11x01", "Visit_st1d_z_p_bi"},
950     },
951   },
952 
953   { "Decode_hxrtsq",
954     {23, 22, 12},
955     { {"000", "Decode_gxlvsg"},
956       {"001", "Decode_kxhjtk"},
957       {"010", "Decode_hyxhpl"},
958       {"011", "Decode_kvgjzh"},
959       {"110", "Decode_tpsylx"},
960       {"111", "Decode_zhpxqz"},
961     },
962   },
963 
964   { "Decode_hxzlmm",
965     {30, 23, 22},
966     { {"000", "Visit_stxp_sp32_ldstexcl"},
967       {"001", "Visit_ldxp_lp32_ldstexcl"},
968       {"100", "Visit_stxp_sp64_ldstexcl"},
969       {"101", "Visit_ldxp_lp64_ldstexcl"},
970     },
971   },
972 
973   { "Decode_hykhmt",
974     {20, 19, 18, 17, 16},
975     { {"00000", "Visit_saddv_r_p_z"},
976       {"00001", "Visit_uaddv_r_p_z"},
977       {"01000", "Visit_smaxv_r_p_z"},
978       {"01001", "Visit_umaxv_r_p_z"},
979       {"01010", "Visit_sminv_r_p_z"},
980       {"01011", "Visit_uminv_r_p_z"},
981       {"1000x", "Visit_movprfx_z_p_z"},
982       {"11000", "Visit_orv_r_p_z"},
983       {"11001", "Visit_eorv_r_p_z"},
984       {"11010", "Visit_andv_r_p_z"},
985     },
986   },
987 
988   { "Decode_hyxhpl",
989     {13},
990     { {"0", "Decode_yrrppk"},
991       {"1", "Decode_pnxggm"},
992     },
993   },
994 
995   { "Decode_hyymjs",
996     {18, 17, 12},
997     { {"0x0", "Visit_ld2_asisdlsop_dx2_r2d"},
998       {"100", "Visit_ld2_asisdlsop_dx2_r2d"},
999       {"110", "Visit_ld2_asisdlsop_d2_i2d"},
1000     },
1001   },
1002 
1003   { "Decode_hzkglv",
1004     {30, 23, 22, 13},
1005     { {"0000", "Visit_ld1b_z_p_br_u8"},
1006       {"0001", "Visit_ldff1b_z_p_br_u8"},
1007       {"0010", "Visit_ld1b_z_p_br_u32"},
1008       {"0011", "Visit_ldff1b_z_p_br_u32"},
1009       {"0100", "Visit_ld1sw_z_p_br_s64"},
1010       {"0101", "Visit_ldff1sw_z_p_br_s64"},
1011       {"0110", "Visit_ld1h_z_p_br_u32"},
1012       {"0111", "Visit_ldff1h_z_p_br_u32"},
1013       {"1001", "Visit_stnt1b_z_p_br_contiguous"},
1014       {"1011", "Visit_st3b_z_p_br_contiguous"},
1015       {"10x0", "Visit_st1b_z_p_br"},
1016       {"1101", "Visit_stnt1h_z_p_br_contiguous"},
1017       {"1111", "Visit_st3h_z_p_br_contiguous"},
1018       {"11x0", "Visit_st1h_z_p_br"},
1019     },
1020   },
1021 
1022   { "Decode_hzllgl",
1023     {17},
1024     { {"0", "Visit_st1_asisdlse_r4_4v"},
1025     },
1026   },
1027 
1028   { "Decode_hzmlps",
1029     {19},
1030     { {"0", "Decode_rpqgjl"},
1031       {"1", "Visit_sys_cr_systeminstrs"},
1032     },
1033   },
1034 
1035   { "Decode_hzxjsp",
1036     {23, 22, 20, 19, 16, 13, 10},
1037     { {"0000000", "Decode_shgkvq"},
1038       {"0000001", "Decode_vytxll"},
1039       {"0000010", "Decode_hqsvmh"},
1040       {"0000011", "Decode_gmvrxn"},
1041       {"0100000", "Decode_ygyxvx"},
1042       {"0100001", "Decode_tszvvk"},
1043       {"0100010", "Decode_tyjqvt"},
1044       {"0100011", "Decode_ylqnqt"},
1045       {"100xx00", "Visit_st2_asisdlsop_sx2_r2s"},
1046       {"100xx01", "Decode_hrktgs"},
1047       {"100xx10", "Visit_st4_asisdlsop_sx4_r4s"},
1048       {"100xx11", "Decode_mmrtvz"},
1049       {"1010x00", "Visit_st2_asisdlsop_sx2_r2s"},
1050       {"1010x01", "Decode_lmtnzv"},
1051       {"1010x10", "Visit_st4_asisdlsop_sx4_r4s"},
1052       {"1010x11", "Decode_qrykhm"},
1053       {"1011000", "Visit_st2_asisdlsop_sx2_r2s"},
1054       {"1011001", "Decode_nyssqn"},
1055       {"1011010", "Visit_st4_asisdlsop_sx4_r4s"},
1056       {"1011011", "Decode_kpqgsn"},
1057       {"1011100", "Decode_knpsmq"},
1058       {"1011101", "Decode_jzyzjh"},
1059       {"1011110", "Decode_vhhktl"},
1060       {"1011111", "Decode_yjxvkp"},
1061       {"110xx00", "Visit_ld2_asisdlsop_sx2_r2s"},
1062       {"110xx01", "Decode_zppjvk"},
1063       {"110xx10", "Visit_ld4_asisdlsop_sx4_r4s"},
1064       {"110xx11", "Decode_kqjmvy"},
1065       {"1110x00", "Visit_ld2_asisdlsop_sx2_r2s"},
1066       {"1110x01", "Decode_ptkrvg"},
1067       {"1110x10", "Visit_ld4_asisdlsop_sx4_r4s"},
1068       {"1110x11", "Decode_kjryvx"},
1069       {"1111000", "Visit_ld2_asisdlsop_sx2_r2s"},
1070       {"1111001", "Decode_mlvpxh"},
1071       {"1111010", "Visit_ld4_asisdlsop_sx4_r4s"},
1072       {"1111011", "Decode_xqjrgk"},
1073       {"1111100", "Decode_msgqps"},
1074       {"1111101", "Decode_hyymjs"},
1075       {"1111110", "Decode_qsnqpz"},
1076       {"1111111", "Decode_gzvgmh"},
1077     },
1078   },
1079 
1080   { "Decode_jggvph",
1081     {30},
1082     { {"0", "Visit_bic_64_log_shift"},
1083       {"1", "Visit_eon_64_log_shift"},
1084     },
1085   },
1086 
1087   { "Decode_jgmlpk",
1088     {4},
1089     { {"0", "Visit_match_p_p_zz"},
1090       {"1", "Visit_nmatch_p_p_zz"},
1091     },
1092   },
1093 
1094   { "Decode_jgyhrh",
1095     {4},
1096     { {"0", "Visit_cmplo_p_p_zi"},
1097       {"1", "Visit_cmpls_p_p_zi"},
1098     },
1099   },
1100 
1101   { "Decode_jhkglp",
1102     {30, 23, 22},
1103     { {"110", "Visit_xar_vvv2_crypto3_imm6"},
1104     },
1105   },
1106 
1107   { "Decode_jhllmn",
1108     {4},
1109     { {"0", "Visit_cmpge_p_p_zz"},
1110       {"1", "Visit_cmpgt_p_p_zz"},
1111     },
1112   },
1113 
1114   { "Decode_jhqlkv",
1115     {30, 23, 22},
1116     { {"000", "Visit_stxr_sr32_ldstexcl"},
1117       {"001", "Visit_ldxr_lr32_ldstexcl"},
1118       {"010", "Visit_stllr_sl32_ldstexcl"},
1119       {"011", "Visit_ldlar_lr32_ldstexcl"},
1120       {"100", "Visit_stxr_sr64_ldstexcl"},
1121       {"101", "Visit_ldxr_lr64_ldstexcl"},
1122       {"110", "Visit_stllr_sl64_ldstexcl"},
1123       {"111", "Visit_ldlar_lr64_ldstexcl"},
1124     },
1125   },
1126 
1127   { "Decode_jhytlg",
1128     {30, 23, 22, 13, 11, 10},
1129     { {"000010", "Visit_str_b_ldst_regoff"},
1130       {"000110", "Visit_str_bl_ldst_regoff"},
1131       {"001010", "Visit_ldr_b_ldst_regoff"},
1132       {"001110", "Visit_ldr_bl_ldst_regoff"},
1133       {"010x10", "Visit_str_q_ldst_regoff"},
1134       {"011x10", "Visit_ldr_q_ldst_regoff"},
1135       {"100x10", "Visit_str_h_ldst_regoff"},
1136       {"101x10", "Visit_ldr_h_ldst_regoff"},
1137     },
1138   },
1139 
1140   { "Decode_jkkqvy",
1141     {22, 20, 11},
1142     { {"100", "Visit_uqinch_z_zs"},
1143       {"101", "Visit_uqdech_z_zs"},
1144       {"110", "Visit_dech_z_zs"},
1145     },
1146   },
1147 
1148   { "Decode_jkpsxk",
1149     {20},
1150     { {"0", "Decode_kyygzs"},
1151       {"1", "Visit_msr_sr_systemmove"},
1152     },
1153   },
1154 
1155   { "Decode_jkqktg",
1156     {20, 19, 18, 17, 16},
1157     { {"00000", "Visit_sqneg_asimdmisc_r"},
1158     },
1159   },
1160 
1161   { "Decode_jkrlsg",
1162     {23, 22},
1163     { {"00", "Visit_fmsub_s_floatdp3"},
1164       {"01", "Visit_fmsub_d_floatdp3"},
1165       {"11", "Visit_fmsub_h_floatdp3"},
1166     },
1167   },
1168 
1169   { "Decode_jksztq",
1170     {22, 20, 19, 13, 12},
1171     { {"0x100", "Visit_sri_asisdshf_r"},
1172       {"0x101", "Visit_sli_asisdshf_r"},
1173       {"0x110", "Visit_sqshlu_asisdshf_r"},
1174       {"0x111", "Visit_uqshl_asisdshf_r"},
1175       {"10x00", "Visit_sri_asisdshf_r"},
1176       {"10x01", "Visit_sli_asisdshf_r"},
1177       {"10x10", "Visit_sqshlu_asisdshf_r"},
1178       {"10x11", "Visit_uqshl_asisdshf_r"},
1179       {"11100", "Visit_sri_asisdshf_r"},
1180       {"11101", "Visit_sli_asisdshf_r"},
1181       {"11110", "Visit_sqshlu_asisdshf_r"},
1182       {"11111", "Visit_uqshl_asisdshf_r"},
1183       {"x1000", "Visit_sri_asisdshf_r"},
1184       {"x1001", "Visit_sli_asisdshf_r"},
1185       {"x1010", "Visit_sqshlu_asisdshf_r"},
1186       {"x1011", "Visit_uqshl_asisdshf_r"},
1187     },
1188   },
1189 
1190   { "Decode_jkxlnq",
1191     {30},
1192     { {"0", "Visit_bl_only_branch_imm"},
1193       {"1", "Decode_nhzyvv"},
1194     },
1195   },
1196 
1197   { "Decode_jlqjzr",
1198     {30, 23},
1199     { {"00", "Visit_adds_64s_addsub_imm"},
1200       {"10", "Visit_subs_64s_addsub_imm"},
1201     },
1202   },
1203 
1204   { "Decode_jlqxvj",
1205     {23, 22},
1206     { {"01", "Decode_mplgqv"},
1207       {"10", "Visit_xar_vvv2_crypto3_imm6"},
1208       {"11", "Decode_ljhtkq"},
1209     },
1210   },
1211 
1212   { "Decode_jlrrlt",
1213     {11, 10, 4},
1214     { {"000", "Visit_whilege_p_p_rr"},
1215       {"001", "Visit_whilegt_p_p_rr"},
1216       {"010", "Visit_whilelt_p_p_rr"},
1217       {"011", "Visit_whilele_p_p_rr"},
1218       {"100", "Visit_whilehs_p_p_rr"},
1219       {"101", "Visit_whilehi_p_p_rr"},
1220       {"110", "Visit_whilelo_p_p_rr"},
1221       {"111", "Visit_whilels_p_p_rr"},
1222     },
1223   },
1224 
1225   { "Decode_jlrvpl",
1226     {17},
1227     { {"0", "Visit_st2_asisdlse_r2"},
1228     },
1229   },
1230 
1231   { "Decode_jmgkrl",
1232     {30},
1233     { {"0", "Visit_orn_32_log_shift"},
1234       {"1", "Visit_bics_32_log_shift"},
1235     },
1236   },
1237 
1238   { "Decode_jmvgsp",
1239     {22, 20, 11},
1240     { {"100", "Visit_sqinch_z_zs"},
1241       {"101", "Visit_sqdech_z_zs"},
1242       {"110", "Visit_inch_z_zs"},
1243     },
1244   },
1245 
1246   { "Decode_jmxstz",
1247     {13, 12, 11, 10},
1248     { {"0000", "Visit_sqdecp_z_p_z"},
1249       {"0010", "Visit_sqdecp_r_p_r_sx"},
1250       {"0011", "Visit_sqdecp_r_p_r_x"},
1251     },
1252   },
1253 
1254   { "Decode_jmyslr",
1255     {17},
1256     { {"0", "Visit_ld1_asisdlsep_r4_r4"},
1257       {"1", "Visit_ld1_asisdlsep_i4_i4"},
1258     },
1259   },
1260 
1261   { "Decode_jnjlsh",
1262     {12},
1263     { {"0", "Visit_st1_asisdlsop_dx1_r1d"},
1264     },
1265   },
1266 
1267   { "Decode_jnmgrh",
1268     {30, 19, 18, 17, 16},
1269     { {"11000", "Visit_ins_asimdins_iv_v"},
1270       {"1x100", "Visit_ins_asimdins_iv_v"},
1271       {"1xx10", "Visit_ins_asimdins_iv_v"},
1272       {"1xxx1", "Visit_ins_asimdins_iv_v"},
1273     },
1274   },
1275 
1276   { "Decode_jplmmr",
1277     {23, 22, 20, 19, 16, 13, 12},
1278     { {"0111100", "Visit_fcvtas_asisdmiscfp16_r"},
1279       {"0111101", "Visit_scvtf_asisdmiscfp16_r"},
1280       {"0x00100", "Visit_fcvtas_asisdmisc_r"},
1281       {"0x00101", "Visit_scvtf_asisdmisc_r"},
1282       {"0x10000", "Visit_fmaxnmp_asisdpair_only_h"},
1283       {"0x10001", "Visit_faddp_asisdpair_only_h"},
1284       {"0x10011", "Visit_fmaxp_asisdpair_only_h"},
1285       {"1111000", "Visit_fcmgt_asisdmiscfp16_fz"},
1286       {"1111001", "Visit_fcmeq_asisdmiscfp16_fz"},
1287       {"1111010", "Visit_fcmlt_asisdmiscfp16_fz"},
1288       {"1111101", "Visit_frecpe_asisdmiscfp16_r"},
1289       {"1111111", "Visit_frecpx_asisdmiscfp16_r"},
1290       {"1x00000", "Visit_fcmgt_asisdmisc_fz"},
1291       {"1x00001", "Visit_fcmeq_asisdmisc_fz"},
1292       {"1x00010", "Visit_fcmlt_asisdmisc_fz"},
1293       {"1x00101", "Visit_frecpe_asisdmisc_r"},
1294       {"1x00111", "Visit_frecpx_asisdmisc_r"},
1295       {"1x10000", "Visit_fminnmp_asisdpair_only_h"},
1296       {"1x10011", "Visit_fminp_asisdpair_only_h"},
1297     },
1298   },
1299 
1300   { "Decode_jpvljz",
1301     {23, 22},
1302     { {"01", "Visit_fcmeq_asimdsamefp16_only"},
1303     },
1304   },
1305 
1306   { "Decode_jpxgqh",
1307     {30, 23, 22},
1308     { {"000", "Visit_sbfm_32m_bitfield"},
1309       {"100", "Visit_ubfm_32m_bitfield"},
1310     },
1311   },
1312 
1313   { "Decode_jqjnrv",
1314     {18, 17},
1315     { {"00", "Visit_st1_asisdlso_s1_1s"},
1316     },
1317   },
1318 
1319   { "Decode_jqnglz",
1320     {23, 22, 20, 19, 11},
1321     { {"00010", "Visit_ucvtf_asisdshf_c"},
1322       {"001x0", "Visit_ucvtf_asisdshf_c"},
1323       {"01xx0", "Visit_ucvtf_asisdshf_c"},
1324     },
1325   },
1326 
1327   { "Decode_jqnhrj",
1328     {12, 10},
1329     { {"00", "Decode_mzynlp"},
1330       {"01", "Decode_mvglql"},
1331       {"10", "Decode_tylqpt"},
1332       {"11", "Decode_lrjyhr"},
1333     },
1334   },
1335 
1336   { "Decode_jqplxx",
1337     {20, 19, 18, 17, 16, 13, 12},
1338     { {"1111100", "Decode_xpvpqq"},
1339     },
1340   },
1341 
1342   { "Decode_jqtltz",
1343     {13},
1344     { {"0", "Visit_mul_asimdelem_r"},
1345       {"1", "Visit_smull_asimdelem_l"},
1346     },
1347   },
1348 
1349   { "Decode_jqxqql",
1350     {22, 20, 11},
1351     { {"000", "Visit_uqincw_z_zs"},
1352       {"001", "Visit_uqdecw_z_zs"},
1353       {"010", "Visit_decw_z_zs"},
1354       {"100", "Visit_uqincd_z_zs"},
1355       {"101", "Visit_uqdecd_z_zs"},
1356       {"110", "Visit_decd_z_zs"},
1357     },
1358   },
1359 
1360   { "Decode_jrgzxt",
1361     {18, 17},
1362     { {"00", "Visit_ld3_asisdlse_r3"},
1363     },
1364   },
1365 
1366   { "Decode_jrlynj",
1367     {11, 10},
1368     { {"00", "Decode_gzqvnk"},
1369     },
1370   },
1371 
1372   { "Decode_jrnlzs",
1373     {13, 12, 11},
1374     { {"000", "Visit_fminnmp_asimdsamefp16_only"},
1375       {"010", "Visit_fabd_asimdsamefp16_only"},
1376       {"100", "Visit_fcmgt_asimdsamefp16_only"},
1377       {"101", "Visit_facgt_asimdsamefp16_only"},
1378       {"110", "Visit_fminp_asimdsamefp16_only"},
1379     },
1380   },
1381 
1382   { "Decode_jrnxzh",
1383     {12},
1384     { {"0", "Visit_cmla_z_zzz"},
1385       {"1", "Visit_sqrdcmlah_z_zzz"},
1386     },
1387   },
1388 
1389   { "Decode_jrsptt",
1390     {13, 12},
1391     { {"00", "Visit_sqadd_asisdsame_only"},
1392       {"10", "Visit_sqsub_asisdsame_only"},
1393       {"11", "Visit_cmge_asisdsame_only"},
1394     },
1395   },
1396 
1397   { "Decode_jryylt",
1398     {30, 23, 22, 19, 18, 17, 16},
1399     { {"00000x1", "Visit_smov_asimdins_w_w"},
1400       {"0000x10", "Visit_smov_asimdins_w_w"},
1401       {"00010xx", "Visit_smov_asimdins_w_w"},
1402       {"0001110", "Visit_smov_asimdins_w_w"},
1403       {"000x10x", "Visit_smov_asimdins_w_w"},
1404       {"000x111", "Visit_smov_asimdins_w_w"},
1405       {"10000x1", "Visit_smov_asimdins_x_x"},
1406       {"1000x10", "Visit_smov_asimdins_x_x"},
1407       {"10010xx", "Visit_smov_asimdins_x_x"},
1408       {"1001110", "Visit_smov_asimdins_x_x"},
1409       {"100x10x", "Visit_smov_asimdins_x_x"},
1410       {"100x111", "Visit_smov_asimdins_x_x"},
1411     },
1412   },
1413 
1414   { "Decode_jsygzs",
1415     {30, 23, 22, 12, 11, 10},
1416     { {"0000xx", "Visit_add_64_addsub_ext"},
1417       {"000100", "Visit_add_64_addsub_ext"},
1418       {"1000xx", "Visit_sub_64_addsub_ext"},
1419       {"100100", "Visit_sub_64_addsub_ext"},
1420     },
1421   },
1422 
1423   { "Decode_jtqlhs",
1424     {22},
1425     { {"0", "Visit_str_64_ldst_regoff"},
1426       {"1", "Visit_ldr_64_ldst_regoff"},
1427     },
1428   },
1429 
1430   { "Decode_jvhnxl",
1431     {23},
1432     { {"0", "Visit_fcmge_asimdsame_only"},
1433       {"1", "Visit_fcmgt_asimdsame_only"},
1434     },
1435   },
1436 
1437   { "Decode_jvpqrp",
1438     {23, 22},
1439     { {"00", "Visit_fmla_asisdelem_rh_h"},
1440       {"1x", "Visit_fmla_asisdelem_r_sd"},
1441     },
1442   },
1443 
1444   { "Decode_jvvzjq",
1445     {23, 22},
1446     { {"00", "Visit_fcsel_s_floatsel"},
1447       {"01", "Visit_fcsel_d_floatsel"},
1448       {"11", "Visit_fcsel_h_floatsel"},
1449     },
1450   },
1451 
1452   { "Decode_jxrlyh",
1453     {12},
1454     { {"0", "Decode_mtgksl"},
1455     },
1456   },
1457 
1458   { "Decode_jxszhy",
1459     {23, 22, 11},
1460     { {"000", "Decode_rqhryp"},
1461     },
1462   },
1463 
1464   { "Decode_jxtgtx",
1465     {30, 23, 22},
1466     { {"000", "Visit_str_b_ldst_pos"},
1467       {"001", "Visit_ldr_b_ldst_pos"},
1468       {"010", "Visit_str_q_ldst_pos"},
1469       {"011", "Visit_ldr_q_ldst_pos"},
1470       {"100", "Visit_str_h_ldst_pos"},
1471       {"101", "Visit_ldr_h_ldst_pos"},
1472     },
1473   },
1474 
1475   { "Decode_jxyskn",
1476     {13, 12, 11, 10},
1477     { {"0000", "Visit_uqincp_z_p_z"},
1478       {"0010", "Visit_uqincp_r_p_r_uw"},
1479       {"0011", "Visit_uqincp_r_p_r_x"},
1480     },
1481   },
1482 
1483   { "Decode_jxzrxm",
1484     {20, 19, 18, 17, 16},
1485     { {"00000", "Visit_usqadd_asisdmisc_r"},
1486     },
1487   },
1488 
1489   { "Decode_jymnkk",
1490     {23, 22, 12, 11, 10},
1491     { {"01000", "Visit_bfdot_z_zzzi"},
1492       {"100x0", "Visit_fmlalb_z_zzzi_s"},
1493       {"100x1", "Visit_fmlalt_z_zzzi_s"},
1494       {"110x0", "Visit_bfmlalb_z_zzzi"},
1495       {"110x1", "Visit_bfmlalt_z_zzzi"},
1496     },
1497   },
1498 
1499   { "Decode_jyxszq",
1500     {30, 4},
1501     { {"0x", "Visit_b_only_branch_imm"},
1502       {"10", "Visit_b_only_condbranch"},
1503     },
1504   },
1505 
1506   { "Decode_jzjvtv",
1507     {19, 18, 17, 16, 4},
1508     { {"00000", "Visit_brkbs_p_p_p_z"},
1509     },
1510   },
1511 
1512   { "Decode_jzkqhn",
1513     {23, 22, 12, 11, 10},
1514     { {"10000", "Visit_fmlslb_z_zzz"},
1515       {"10001", "Visit_fmlslt_z_zzz"},
1516     },
1517   },
1518 
1519   { "Decode_jzyzjh",
1520     {18, 17, 12},
1521     { {"0x0", "Visit_st2_asisdlsop_dx2_r2d"},
1522       {"100", "Visit_st2_asisdlsop_dx2_r2d"},
1523       {"110", "Visit_st2_asisdlsop_d2_i2d"},
1524     },
1525   },
1526 
1527   { "Decode_kgmqkh",
1528     {30, 23, 22, 13},
1529     { {"0000", "Visit_ld1w_z_p_ai_s"},
1530       {"0001", "Visit_ldff1w_z_p_ai_s"},
1531       {"0010", "Visit_ld1rw_z_p_bi_u32"},
1532       {"0011", "Visit_ld1rw_z_p_bi_u64"},
1533       {"0110", "Visit_ld1rsb_z_p_bi_s16"},
1534       {"0111", "Visit_ld1rd_z_p_bi_u64"},
1535       {"1000", "Visit_ld1w_z_p_ai_d"},
1536       {"1001", "Visit_ldff1w_z_p_ai_d"},
1537       {"1010", "Visit_ld1w_z_p_bz_d_64_scaled"},
1538       {"1011", "Visit_ldff1w_z_p_bz_d_64_scaled"},
1539       {"1100", "Visit_ld1d_z_p_ai_d"},
1540       {"1101", "Visit_ldff1d_z_p_ai_d"},
1541       {"1110", "Visit_ld1d_z_p_bz_d_64_scaled"},
1542       {"1111", "Visit_ldff1d_z_p_bz_d_64_scaled"},
1543     },
1544   },
1545 
1546   { "Decode_kgpgly",
1547     {23, 22, 10},
1548     { {"100", "Visit_smlslb_z_zzzi_s"},
1549       {"101", "Visit_smlslt_z_zzzi_s"},
1550       {"110", "Visit_smlslb_z_zzzi_d"},
1551       {"111", "Visit_smlslt_z_zzzi_d"},
1552     },
1553   },
1554 
1555   { "Decode_khjvqq",
1556     {22, 11},
1557     { {"00", "Visit_sqrdmulh_z_zzi_s"},
1558       {"10", "Visit_sqrdmulh_z_zzi_d"},
1559     },
1560   },
1561 
1562   { "Decode_kjghlk",
1563     {23, 22, 20, 19, 13, 11},
1564     { {"0000x0", "Visit_orr_asimdimm_l_sl"},
1565       {"00x100", "Visit_ssra_asimdshf_r"},
1566       {"00x110", "Visit_srsra_asimdshf_r"},
1567       {"010x00", "Visit_ssra_asimdshf_r"},
1568       {"010x10", "Visit_srsra_asimdshf_r"},
1569       {"011100", "Visit_ssra_asimdshf_r"},
1570       {"011110", "Visit_srsra_asimdshf_r"},
1571       {"0x1000", "Visit_ssra_asimdshf_r"},
1572       {"0x1010", "Visit_srsra_asimdshf_r"},
1573     },
1574   },
1575 
1576   { "Decode_kjngjl",
1577     {23, 22},
1578     { {"00", "Visit_tbx_asimdtbl_l1_1"},
1579     },
1580   },
1581 
1582   { "Decode_kjpxvh",
1583     {20, 19, 18},
1584     { {"000", "Decode_yyrkmn"},
1585     },
1586   },
1587 
1588   { "Decode_kjqynn",
1589     {4},
1590     { {"0", "Visit_cmphs_p_p_zi"},
1591       {"1", "Visit_cmphi_p_p_zi"},
1592     },
1593   },
1594 
1595   { "Decode_kjrxpx",
1596     {23, 22, 20, 19, 18, 17, 16},
1597     { {"0111001", "Visit_ucvtf_asimdmiscfp16_r"},
1598       {"0x00001", "Visit_ucvtf_asimdmisc_r"},
1599       {"1111000", "Visit_fcmle_asimdmiscfp16_fz"},
1600       {"1111001", "Visit_frsqrte_asimdmiscfp16_r"},
1601       {"1x00000", "Visit_fcmle_asimdmisc_fz"},
1602       {"1x00001", "Visit_frsqrte_asimdmisc_r"},
1603     },
1604   },
1605 
1606   { "Decode_kjryvx",
1607     {12},
1608     { {"0", "Visit_ld4_asisdlsop_dx4_r4d"},
1609     },
1610   },
1611 
1612   { "Decode_kjyphv",
1613     {20, 19, 18, 17, 16},
1614     { {"10000", "Visit_fmaxp_asisdpair_only_sd"},
1615     },
1616   },
1617 
1618   { "Decode_kkgpjl",
1619     {20, 19, 18, 17},
1620     { {"0000", "Decode_msqkyy"},
1621     },
1622   },
1623 
1624   { "Decode_kkgzst",
1625     {23, 22, 13, 12, 11, 10},
1626     { {"0001x0", "Visit_fmla_asimdelem_rh_h"},
1627       {"0x0001", "Visit_sshr_asimdshf_r"},
1628       {"0x0101", "Visit_ssra_asimdshf_r"},
1629       {"0x1001", "Visit_srshr_asimdshf_r"},
1630       {"0x1101", "Visit_srsra_asimdshf_r"},
1631       {"1000x0", "Visit_fmlal_asimdelem_lh"},
1632       {"1x01x0", "Visit_fmla_asimdelem_r_sd"},
1633       {"xx10x0", "Visit_smlal_asimdelem_l"},
1634       {"xx11x0", "Visit_sqdmlal_asimdelem_l"},
1635     },
1636   },
1637 
1638   { "Decode_kkmjyr",
1639     {0},
1640     { {"1", "Visit_blrabz_64_branch_reg"},
1641     },
1642   },
1643 
1644   { "Decode_kkmxxx",
1645     {30},
1646     { {"0", "Visit_bl_only_branch_imm"},
1647       {"1", "Decode_jqplxx"},
1648     },
1649   },
1650 
1651   { "Decode_kknjng",
1652     {23, 22, 20, 19, 11},
1653     { {"00010", "Visit_ssra_asisdshf_r"},
1654       {"001x0", "Visit_ssra_asisdshf_r"},
1655       {"01xx0", "Visit_ssra_asisdshf_r"},
1656     },
1657   },
1658 
1659   { "Decode_kktglv",
1660     {30, 13, 12},
1661     { {"000", "Decode_njvkjq"},
1662       {"001", "Decode_rpzykx"},
1663       {"010", "Decode_zzvxvh"},
1664       {"011", "Decode_yqxnzl"},
1665       {"100", "Decode_gxmnkl"},
1666       {"110", "Decode_lkxgjy"},
1667       {"111", "Decode_vjmklj"},
1668     },
1669   },
1670 
1671   { "Decode_kkvrzq",
1672     {23, 22, 9, 8, 7, 6, 5},
1673     { {"0000000", "Visit_pfalse_p"},
1674     },
1675   },
1676 
1677   { "Decode_klkgqk",
1678     {23, 22, 20, 19, 18, 17, 16},
1679     { {"0111001", "Visit_fcvtms_asimdmiscfp16_r"},
1680       {"0x00001", "Visit_fcvtms_asimdmisc_r"},
1681       {"1111001", "Visit_fcvtzs_asimdmiscfp16_r"},
1682       {"1x00001", "Visit_fcvtzs_asimdmisc_r"},
1683       {"xx00000", "Visit_abs_asimdmisc_r"},
1684       {"xx10001", "Visit_addv_asimdall_only"},
1685     },
1686   },
1687 
1688   { "Decode_klnhpj",
1689     {9, 8, 7, 6, 5, 1, 0},
1690     { {"1111111", "Visit_eretab_64e_branch_reg"},
1691     },
1692   },
1693 
1694   { "Decode_klthpn",
1695     {30, 23, 22, 11, 10},
1696     { {"01000", "Visit_csel_64_condsel"},
1697       {"01001", "Visit_csinc_64_condsel"},
1698       {"11000", "Visit_csinv_64_condsel"},
1699       {"11001", "Visit_csneg_64_condsel"},
1700     },
1701   },
1702 
1703   { "Decode_kmhtqp",
1704     {30},
1705     { {"0", "Visit_bl_only_branch_imm"},
1706     },
1707   },
1708 
1709   { "Decode_kmkpnj",
1710     {17},
1711     { {"0", "Visit_ld3_asisdlso_h3_3h"},
1712     },
1713   },
1714 
1715   { "Decode_knkjnz",
1716     {30, 23, 22, 20, 13},
1717     { {"00001", "Visit_ld1sh_z_p_bi_s32"},
1718       {"00011", "Visit_ldnf1sh_z_p_bi_s32"},
1719       {"00101", "Visit_ld1w_z_p_bi_u64"},
1720       {"00111", "Visit_ldnf1w_z_p_bi_u64"},
1721       {"01001", "Visit_ld1sb_z_p_bi_s32"},
1722       {"01011", "Visit_ldnf1sb_z_p_bi_s32"},
1723       {"01101", "Visit_ld1d_z_p_bi_u64"},
1724       {"01111", "Visit_ldnf1d_z_p_bi_u64"},
1725       {"100x0", "Visit_st1w_z_p_bz_d_x32_scaled"},
1726       {"100x1", "Visit_st1w_z_p_bz_d_64_scaled"},
1727       {"101x0", "Visit_st1w_z_p_bz_s_x32_scaled"},
1728       {"101x1", "Visit_st1w_z_p_ai_s"},
1729       {"110x0", "Visit_st1d_z_p_bz_d_x32_scaled"},
1730       {"110x1", "Visit_st1d_z_p_bz_d_64_scaled"},
1731     },
1732   },
1733 
1734   { "Decode_knpsmq",
1735     {18, 17},
1736     { {"0x", "Visit_st2_asisdlsop_sx2_r2s"},
1737       {"10", "Visit_st2_asisdlsop_sx2_r2s"},
1738       {"11", "Visit_st2_asisdlsop_s2_i2s"},
1739     },
1740   },
1741 
1742   { "Decode_kpmvkn",
1743     {30, 23, 22, 11, 10},
1744     { {"00000", "Visit_stur_b_ldst_unscaled"},
1745       {"00001", "Visit_str_b_ldst_immpost"},
1746       {"00011", "Visit_str_b_ldst_immpre"},
1747       {"00100", "Visit_ldur_b_ldst_unscaled"},
1748       {"00101", "Visit_ldr_b_ldst_immpost"},
1749       {"00111", "Visit_ldr_b_ldst_immpre"},
1750       {"01000", "Visit_stur_q_ldst_unscaled"},
1751       {"01001", "Visit_str_q_ldst_immpost"},
1752       {"01011", "Visit_str_q_ldst_immpre"},
1753       {"01100", "Visit_ldur_q_ldst_unscaled"},
1754       {"01101", "Visit_ldr_q_ldst_immpost"},
1755       {"01111", "Visit_ldr_q_ldst_immpre"},
1756       {"10000", "Visit_stur_h_ldst_unscaled"},
1757       {"10001", "Visit_str_h_ldst_immpost"},
1758       {"10011", "Visit_str_h_ldst_immpre"},
1759       {"10100", "Visit_ldur_h_ldst_unscaled"},
1760       {"10101", "Visit_ldr_h_ldst_immpost"},
1761       {"10111", "Visit_ldr_h_ldst_immpre"},
1762     },
1763   },
1764 
1765   { "Decode_kpqgsn",
1766     {12},
1767     { {"0", "Visit_st4_asisdlsop_dx4_r4d"},
1768     },
1769   },
1770 
1771   { "Decode_kpxtsp",
1772     {6, 5},
1773     { {"00", "Visit_cfinv_m_pstate"},
1774       {"01", "Visit_xaflag_m_pstate"},
1775       {"10", "Visit_axflag_m_pstate"},
1776     },
1777   },
1778 
1779   { "Decode_kpyqyv",
1780     {12},
1781     { {"0", "Decode_vjxqhp"},
1782     },
1783   },
1784 
1785   { "Decode_kqjmvy",
1786     {12},
1787     { {"0", "Visit_ld4_asisdlsop_dx4_r4d"},
1788     },
1789   },
1790 
1791   { "Decode_kqkhtz",
1792     {9, 8, 7, 6, 5},
1793     { {"11111", "Visit_autiza_64z_dp_1src"},
1794     },
1795   },
1796 
1797   { "Decode_kqvljp",
1798     {18, 17, 16},
1799     { {"000", "Visit_fabd_z_p_zz"},
1800       {"001", "Visit_fscale_z_p_zz"},
1801       {"010", "Visit_fmulx_z_p_zz"},
1802       {"100", "Visit_fdivr_z_p_zz"},
1803       {"101", "Visit_fdiv_z_p_zz"},
1804     },
1805   },
1806 
1807   { "Decode_kqxhzx",
1808     {20, 19, 18, 16, 12, 11, 10},
1809     { {"0000xxx", "Decode_zmzxjm"},
1810       {"0010xxx", "Decode_tmshps"},
1811       {"0011xxx", "Decode_tsksxr"},
1812       {"0110100", "Decode_pnzphx"},
1813       {"0111100", "Decode_xpkkpn"},
1814       {"1000xxx", "Decode_psqpkp"},
1815       {"1001xxx", "Decode_phxkzh"},
1816       {"1100xxx", "Decode_vsvrgt"},
1817     },
1818   },
1819 
1820   { "Decode_kqzmtr",
1821     {30, 23, 22, 20, 13},
1822     { {"00001", "Visit_ld1b_z_p_bi_u16"},
1823       {"00011", "Visit_ldnf1b_z_p_bi_u16"},
1824       {"00101", "Visit_ld1b_z_p_bi_u64"},
1825       {"00111", "Visit_ldnf1b_z_p_bi_u64"},
1826       {"01001", "Visit_ld1h_z_p_bi_u16"},
1827       {"01011", "Visit_ldnf1h_z_p_bi_u16"},
1828       {"01101", "Visit_ld1h_z_p_bi_u64"},
1829       {"01111", "Visit_ldnf1h_z_p_bi_u64"},
1830       {"101x1", "Visit_st1b_z_p_ai_s"},
1831       {"110x0", "Visit_st1h_z_p_bz_d_x32_scaled"},
1832       {"110x1", "Visit_st1h_z_p_bz_d_64_scaled"},
1833       {"111x0", "Visit_st1h_z_p_bz_s_x32_scaled"},
1834       {"111x1", "Visit_st1h_z_p_ai_s"},
1835     },
1836   },
1837 
1838   { "Decode_krhrrr",
1839     {12, 10},
1840     { {"00", "Decode_xyzpvp"},
1841       {"01", "Decode_nlyntn"},
1842       {"10", "Decode_zhkjzg"},
1843       {"11", "Decode_zmpzkg"},
1844     },
1845   },
1846 
1847   { "Decode_krlpjl",
1848     {23, 22, 20, 19, 17, 16},
1849     { {"000010", "Visit_scvtf_s64_float2fix"},
1850       {"000011", "Visit_ucvtf_s64_float2fix"},
1851       {"001100", "Visit_fcvtzs_64s_float2fix"},
1852       {"001101", "Visit_fcvtzu_64s_float2fix"},
1853       {"010010", "Visit_scvtf_d64_float2fix"},
1854       {"010011", "Visit_ucvtf_d64_float2fix"},
1855       {"011100", "Visit_fcvtzs_64d_float2fix"},
1856       {"011101", "Visit_fcvtzu_64d_float2fix"},
1857       {"110010", "Visit_scvtf_h64_float2fix"},
1858       {"110011", "Visit_ucvtf_h64_float2fix"},
1859       {"111100", "Visit_fcvtzs_64h_float2fix"},
1860       {"111101", "Visit_fcvtzu_64h_float2fix"},
1861     },
1862   },
1863 
1864   { "Decode_kstltt",
1865     {18, 17, 12},
1866     { {"0x0", "Visit_ld3_asisdlsop_dx3_r3d"},
1867       {"100", "Visit_ld3_asisdlsop_dx3_r3d"},
1868       {"110", "Visit_ld3_asisdlsop_d3_i3d"},
1869     },
1870   },
1871 
1872   { "Decode_ksvxxm",
1873     {9, 8, 7, 6, 5},
1874     { {"11111", "Visit_pacizb_64z_dp_1src"},
1875     },
1876   },
1877 
1878   { "Decode_ktnjrx",
1879     {30, 23, 22, 13, 12, 11, 10},
1880     { {"000xxxx", "Visit_fnmadd_s_floatdp3"},
1881       {"001xxxx", "Visit_fnmadd_d_floatdp3"},
1882       {"011xxxx", "Visit_fnmadd_h_floatdp3"},
1883       {"10001x0", "Visit_fmls_asisdelem_rh_h"},
1884       {"10x0101", "Visit_shl_asisdshf_r"},
1885       {"10x1101", "Visit_sqshl_asisdshf_r"},
1886       {"11x01x0", "Visit_fmls_asisdelem_r_sd"},
1887       {"1xx11x0", "Visit_sqdmlsl_asisdelem_l"},
1888     },
1889   },
1890 
1891   { "Decode_ktrkrp",
1892     {17},
1893     { {"0", "Visit_st3_asisdlso_h3_3h"},
1894     },
1895   },
1896 
1897   { "Decode_ktyppm",
1898     {11, 10},
1899     { {"00", "Visit_asr_z_zw"},
1900       {"01", "Visit_lsr_z_zw"},
1901       {"11", "Visit_lsl_z_zw"},
1902     },
1903   },
1904 
1905   { "Decode_kvgjzh",
1906     {9, 8, 7, 6, 5},
1907     { {"00000", "Visit_fmov_d_floatimm"},
1908     },
1909   },
1910 
1911   { "Decode_kvmrng",
1912     {23, 22},
1913     { {"00", "Visit_tbl_asimdtbl_l1_1"},
1914     },
1915   },
1916 
1917   { "Decode_kvnqhn",
1918     {22, 20, 11},
1919     { {"000", "Visit_sqincw_r_rs_sx"},
1920       {"001", "Visit_sqdecw_r_rs_sx"},
1921       {"010", "Visit_sqincw_r_rs_x"},
1922       {"011", "Visit_sqdecw_r_rs_x"},
1923       {"100", "Visit_sqincd_r_rs_sx"},
1924       {"101", "Visit_sqdecd_r_rs_sx"},
1925       {"110", "Visit_sqincd_r_rs_x"},
1926       {"111", "Visit_sqdecd_r_rs_x"},
1927     },
1928   },
1929 
1930   { "Decode_kvyysq",
1931     {12, 9, 8, 7, 6, 5},
1932     { {"100000", "Decode_sjrqth"},
1933     },
1934   },
1935 
1936   { "Decode_kxhjtk",
1937     {9, 8, 7, 6, 5},
1938     { {"00000", "Visit_fmov_s_floatimm"},
1939     },
1940   },
1941 
1942   { "Decode_kxjgsz",
1943     {23, 22, 20, 19, 11},
1944     { {"00000", "Visit_movi_asimdimm_m_sm"},
1945     },
1946   },
1947 
1948   { "Decode_kxkyqr",
1949     {17},
1950     { {"0", "Visit_ld4_asisdlsop_hx4_r4h"},
1951       {"1", "Visit_ld4_asisdlsop_h4_i4h"},
1952     },
1953   },
1954 
1955   { "Decode_kxprqm",
1956     {13, 12, 11, 10},
1957     { {"0000", "Visit_raddhn_asimddiff_n"},
1958       {"0001", "Visit_ushl_asimdsame_only"},
1959       {"0010", "Decode_mmknzp"},
1960       {"0011", "Visit_uqshl_asimdsame_only"},
1961       {"0100", "Visit_uabal_asimddiff_l"},
1962       {"0101", "Visit_urshl_asimdsame_only"},
1963       {"0110", "Decode_glgrjy"},
1964       {"0111", "Visit_uqrshl_asimdsame_only"},
1965       {"1000", "Visit_rsubhn_asimddiff_n"},
1966       {"1001", "Visit_umax_asimdsame_only"},
1967       {"1010", "Decode_pxlnhs"},
1968       {"1011", "Visit_umin_asimdsame_only"},
1969       {"1100", "Visit_uabdl_asimddiff_l"},
1970       {"1101", "Visit_uabd_asimdsame_only"},
1971       {"1110", "Decode_jkqktg"},
1972       {"1111", "Visit_uaba_asimdsame_only"},
1973     },
1974   },
1975 
1976   { "Decode_kxsysq",
1977     {30},
1978     { {"0", "Visit_tbnz_only_testbranch"},
1979     },
1980   },
1981 
1982   { "Decode_kxvvkq",
1983     {30, 23, 13},
1984     { {"000", "Visit_ld1b_z_p_bz_s_x32_unscaled"},
1985       {"001", "Visit_ldff1b_z_p_bz_s_x32_unscaled"},
1986       {"010", "Visit_ld1h_z_p_bz_s_x32_unscaled"},
1987       {"011", "Visit_ldff1h_z_p_bz_s_x32_unscaled"},
1988       {"100", "Visit_ld1b_z_p_bz_d_x32_unscaled"},
1989       {"101", "Visit_ldff1b_z_p_bz_d_x32_unscaled"},
1990       {"110", "Visit_ld1h_z_p_bz_d_x32_unscaled"},
1991       {"111", "Visit_ldff1h_z_p_bz_d_x32_unscaled"},
1992     },
1993   },
1994 
1995   { "Decode_kyjxrr",
1996     {30, 13},
1997     { {"00", "Decode_qtxpky"},
1998       {"01", "Decode_hnjrmp"},
1999       {"11", "Decode_vzjvtv"},
2000     },
2001   },
2002 
2003   { "Decode_kykymg",
2004     {30},
2005     { {"1", "Decode_rsyhtj"},
2006     },
2007   },
2008 
2009   { "Decode_kypqpy",
2010     {30, 23, 22, 13, 12, 11, 10},
2011     { {"1010000", "Visit_sm3partw1_vvv4_cryptosha512_3"},
2012       {"1010001", "Visit_sm3partw2_vvv4_cryptosha512_3"},
2013       {"1010010", "Visit_sm4ekey_vvv4_cryptosha512_3"},
2014     },
2015   },
2016 
2017   { "Decode_kyspnn",
2018     {22},
2019     { {"0", "Visit_sqdmullb_z_zzi_s"},
2020       {"1", "Visit_sqdmullb_z_zzi_d"},
2021     },
2022   },
2023 
2024   { "Decode_kyxqgg",
2025     {20, 19, 18, 17, 16, 13, 12},
2026     { {"0000000", "Visit_stgm_64bulk_ldsttags"},
2027     },
2028   },
2029 
2030   { "Decode_kyxrqg",
2031     {10},
2032     { {"0", "Visit_uabalb_z_zzz"},
2033       {"1", "Visit_uabalt_z_zzz"},
2034     },
2035   },
2036 
2037   { "Decode_kyygzs",
2038     {19},
2039     { {"0", "Decode_nnkyzr"},
2040       {"1", "Visit_sys_cr_systeminstrs"},
2041     },
2042   },
2043 
2044   { "Decode_kyyzks",
2045     {13, 12},
2046     { {"00", "Visit_sdiv_32_dp_2src"},
2047       {"10", "Visit_rorv_32_dp_2src"},
2048     },
2049   },
2050 
2051   { "Decode_kzmvpk",
2052     {23, 22, 10},
2053     { {"100", "Visit_smlalb_z_zzzi_s"},
2054       {"101", "Visit_smlalt_z_zzzi_s"},
2055       {"110", "Visit_smlalb_z_zzzi_d"},
2056       {"111", "Visit_smlalt_z_zzzi_d"},
2057     },
2058   },
2059 
2060   { "Decode_kzrklp",
2061     {17},
2062     { {"0", "Visit_ld4_asisdlso_b4_4b"},
2063     },
2064   },
2065 
2066   { "Decode_lgglzy",
2067     {30, 23, 22, 19, 16},
2068     { {"10010", "Visit_aesimc_b_cryptoaes"},
2069       {"x0x01", "Visit_fcvtl_asimdmisc_l"},
2070       {"xxx00", "Visit_sqabs_asimdmisc_r"},
2071     },
2072   },
2073 
2074   { "Decode_lhmlrj",
2075     {30, 23, 22, 20, 19},
2076     { {"0xxxx", "Visit_bl_only_branch_imm"},
2077       {"10001", "Visit_sysl_rc_systeminstrs"},
2078       {"1001x", "Visit_mrs_rs_systemmove"},
2079     },
2080   },
2081 
2082   { "Decode_lhpgsn",
2083     {13, 12, 10},
2084     { {"000", "Visit_sqdmulh_asisdelem_r"},
2085       {"010", "Visit_sqrdmulh_asisdelem_r"},
2086       {"101", "Decode_mxkgnq"},
2087       {"111", "Decode_sgnknz"},
2088     },
2089   },
2090 
2091   { "Decode_lhtyjq",
2092     {23, 22, 20, 19, 18, 16, 13},
2093     { {"0000000", "Decode_gskkxk"},
2094       {"0000001", "Decode_ktrkrp"},
2095       {"0100000", "Decode_nmtkjv"},
2096       {"0100001", "Decode_kmkpnj"},
2097       {"100xxx0", "Visit_st1_asisdlsop_hx1_r1h"},
2098       {"100xxx1", "Visit_st3_asisdlsop_hx3_r3h"},
2099       {"1010xx0", "Visit_st1_asisdlsop_hx1_r1h"},
2100       {"1010xx1", "Visit_st3_asisdlsop_hx3_r3h"},
2101       {"10110x0", "Visit_st1_asisdlsop_hx1_r1h"},
2102       {"10110x1", "Visit_st3_asisdlsop_hx3_r3h"},
2103       {"1011100", "Visit_st1_asisdlsop_hx1_r1h"},
2104       {"1011101", "Visit_st3_asisdlsop_hx3_r3h"},
2105       {"1011110", "Decode_mgmgqh"},
2106       {"1011111", "Decode_gzylzp"},
2107       {"110xxx0", "Visit_ld1_asisdlsop_hx1_r1h"},
2108       {"110xxx1", "Visit_ld3_asisdlsop_hx3_r3h"},
2109       {"1110xx0", "Visit_ld1_asisdlsop_hx1_r1h"},
2110       {"1110xx1", "Visit_ld3_asisdlsop_hx3_r3h"},
2111       {"11110x0", "Visit_ld1_asisdlsop_hx1_r1h"},
2112       {"11110x1", "Visit_ld3_asisdlsop_hx3_r3h"},
2113       {"1111100", "Visit_ld1_asisdlsop_hx1_r1h"},
2114       {"1111101", "Visit_ld3_asisdlsop_hx3_r3h"},
2115       {"1111110", "Decode_mrkkps"},
2116       {"1111111", "Decode_xygxsv"},
2117     },
2118   },
2119 
2120   { "Decode_lhvtrp",
2121     {23, 22, 20, 19, 13, 11},
2122     { {"0000x0", "Visit_orr_asimdimm_l_hl"},
2123       {"00x100", "Visit_sqshrn_asimdshf_n"},
2124       {"00x101", "Visit_sqrshrn_asimdshf_n"},
2125       {"010x00", "Visit_sqshrn_asimdshf_n"},
2126       {"010x01", "Visit_sqrshrn_asimdshf_n"},
2127       {"011100", "Visit_sqshrn_asimdshf_n"},
2128       {"011101", "Visit_sqrshrn_asimdshf_n"},
2129       {"0x1000", "Visit_sqshrn_asimdshf_n"},
2130       {"0x1001", "Visit_sqrshrn_asimdshf_n"},
2131     },
2132   },
2133 
2134   { "Decode_ljhtkq",
2135     {20, 19, 18, 17, 16, 13, 12, 11},
2136     { {"00000000", "Decode_yvyxkx"},
2137     },
2138   },
2139 
2140   { "Decode_ljljkv",
2141     {30, 23, 22, 13, 12, 11, 10},
2142     { {"0001100", "Visit_and_z_zz"},
2143       {"0001110", "Visit_eor3_z_zzz"},
2144       {"0001111", "Visit_bsl_z_zzz"},
2145       {"0011100", "Visit_orr_z_zz"},
2146       {"0011110", "Visit_bcax_z_zzz"},
2147       {"0011111", "Visit_bsl1n_z_zzz"},
2148       {"0101100", "Visit_eor_z_zz"},
2149       {"0101111", "Visit_bsl2n_z_zzz"},
2150       {"0111100", "Visit_bic_z_zz"},
2151       {"0111111", "Visit_nbsl_z_zzz"},
2152       {"0xx0000", "Visit_add_z_zz"},
2153       {"0xx0001", "Visit_sub_z_zz"},
2154       {"0xx0100", "Visit_sqadd_z_zz"},
2155       {"0xx0101", "Visit_uqadd_z_zz"},
2156       {"0xx0110", "Visit_sqsub_z_zz"},
2157       {"0xx0111", "Visit_uqsub_z_zz"},
2158       {"0xx1101", "Visit_xar_z_zzi"},
2159       {"10x0010", "Visit_mla_z_zzzi_h"},
2160       {"10x0011", "Visit_mls_z_zzzi_h"},
2161       {"10x0100", "Visit_sqrdmlah_z_zzzi_h"},
2162       {"10x0101", "Visit_sqrdmlsh_z_zzzi_h"},
2163       {"1100000", "Visit_sdot_z_zzzi_s"},
2164       {"1100001", "Visit_udot_z_zzzi_s"},
2165       {"1100010", "Visit_mla_z_zzzi_s"},
2166       {"1100011", "Visit_mls_z_zzzi_s"},
2167       {"1100100", "Visit_sqrdmlah_z_zzzi_s"},
2168       {"1100101", "Visit_sqrdmlsh_z_zzzi_s"},
2169       {"1100110", "Visit_usdot_z_zzzi_s"},
2170       {"1100111", "Visit_sudot_z_zzzi_s"},
2171       {"11010x0", "Visit_sqdmlalb_z_zzzi_s"},
2172       {"11010x1", "Visit_sqdmlalt_z_zzzi_s"},
2173       {"11011x0", "Visit_sqdmlslb_z_zzzi_s"},
2174       {"11011x1", "Visit_sqdmlslt_z_zzzi_s"},
2175       {"1110000", "Visit_sdot_z_zzzi_d"},
2176       {"1110001", "Visit_udot_z_zzzi_d"},
2177       {"1110010", "Visit_mla_z_zzzi_d"},
2178       {"1110011", "Visit_mls_z_zzzi_d"},
2179       {"1110100", "Visit_sqrdmlah_z_zzzi_d"},
2180       {"1110101", "Visit_sqrdmlsh_z_zzzi_d"},
2181       {"11110x0", "Visit_sqdmlalb_z_zzzi_d"},
2182       {"11110x1", "Visit_sqdmlalt_z_zzzi_d"},
2183       {"11111x0", "Visit_sqdmlslb_z_zzzi_d"},
2184       {"11111x1", "Visit_sqdmlslt_z_zzzi_d"},
2185     },
2186   },
2187 
2188   { "Decode_ljxhnq",
2189     {12},
2190     { {"0", "Visit_ld1_asisdlsop_dx1_r1d"},
2191     },
2192   },
2193 
2194   { "Decode_lkttgy",
2195     {10},
2196     { {"0", "Visit_saba_z_zzz"},
2197       {"1", "Visit_uaba_z_zzz"},
2198     },
2199   },
2200 
2201   { "Decode_lkvynm",
2202     {22, 20, 19, 13, 12},
2203     { {"0x100", "Visit_ushr_asisdshf_r"},
2204       {"0x101", "Visit_usra_asisdshf_r"},
2205       {"0x110", "Visit_urshr_asisdshf_r"},
2206       {"0x111", "Visit_ursra_asisdshf_r"},
2207       {"10x00", "Visit_ushr_asisdshf_r"},
2208       {"10x01", "Visit_usra_asisdshf_r"},
2209       {"10x10", "Visit_urshr_asisdshf_r"},
2210       {"10x11", "Visit_ursra_asisdshf_r"},
2211       {"11100", "Visit_ushr_asisdshf_r"},
2212       {"11101", "Visit_usra_asisdshf_r"},
2213       {"11110", "Visit_urshr_asisdshf_r"},
2214       {"11111", "Visit_ursra_asisdshf_r"},
2215       {"x1000", "Visit_ushr_asisdshf_r"},
2216       {"x1001", "Visit_usra_asisdshf_r"},
2217       {"x1010", "Visit_urshr_asisdshf_r"},
2218       {"x1011", "Visit_ursra_asisdshf_r"},
2219     },
2220   },
2221 
2222   { "Decode_lkxgjy",
2223     {23, 22},
2224     { {"10", "Visit_cmla_z_zzzi_h"},
2225       {"11", "Visit_cmla_z_zzzi_s"},
2226     },
2227   },
2228 
2229   { "Decode_llnzlv",
2230     {20, 19, 18, 17, 16},
2231     { {"00000", "Visit_sqneg_asisdmisc_r"},
2232     },
2233   },
2234 
2235   { "Decode_llpsqq",
2236     {13, 12, 10},
2237     { {"001", "Decode_zjjxjl"},
2238       {"100", "Visit_ptrues_p_s"},
2239       {"110", "Decode_njngkk"},
2240     },
2241   },
2242 
2243   { "Decode_llqjlh",
2244     {10},
2245     { {"0", "Decode_lhtyjq"},
2246     },
2247   },
2248 
2249   { "Decode_llvrrk",
2250     {23, 18, 17, 16},
2251     { {"0000", "Visit_sqxtnb_z_zz"},
2252     },
2253   },
2254 
2255   { "Decode_llxlqz",
2256     {20, 19, 18, 17, 16},
2257     { {"00000", "Visit_cmge_asisdmisc_z"},
2258     },
2259   },
2260 
2261   { "Decode_lmtnzv",
2262     {12},
2263     { {"0", "Visit_st2_asisdlsop_dx2_r2d"},
2264     },
2265   },
2266 
2267   { "Decode_lmyxhr",
2268     {9, 4},
2269     { {"00", "Decode_gnqhsl"},
2270     },
2271   },
2272 
2273   { "Decode_lnjpjs",
2274     {18, 17},
2275     { {"0x", "Visit_ld3_asisdlsop_sx3_r3s"},
2276       {"10", "Visit_ld3_asisdlsop_sx3_r3s"},
2277       {"11", "Visit_ld3_asisdlsop_s3_i3s"},
2278     },
2279   },
2280 
2281   { "Decode_lnkqjp",
2282     {18, 17, 12},
2283     { {"000", "Visit_ld3_asisdlso_d3_3d"},
2284     },
2285   },
2286 
2287   { "Decode_lnnyzt",
2288     {23, 22},
2289     { {"01", "Visit_fmax_asimdsamefp16_only"},
2290       {"11", "Visit_fmin_asimdsamefp16_only"},
2291     },
2292   },
2293 
2294   { "Decode_lnpvky",
2295     {23, 22, 19, 13, 12},
2296     { {"00100", "Visit_sha1h_ss_cryptosha2"},
2297       {"00101", "Visit_sha1su1_vv_cryptosha2"},
2298       {"00110", "Visit_sha256su0_vv_cryptosha2"},
2299       {"xx011", "Visit_suqadd_asisdmisc_r"},
2300     },
2301   },
2302 
2303   { "Decode_lpkqzl",
2304     {30, 23, 22, 12, 11, 10},
2305     { {"0000xx", "Visit_adds_64s_addsub_ext"},
2306       {"000100", "Visit_adds_64s_addsub_ext"},
2307       {"1000xx", "Visit_subs_64s_addsub_ext"},
2308       {"100100", "Visit_subs_64s_addsub_ext"},
2309     },
2310   },
2311 
2312   { "Decode_lpslrz",
2313     {4, 3, 2, 1, 0},
2314     { {"00000", "Visit_fcmp_s_floatcmp"},
2315       {"01000", "Visit_fcmp_sz_floatcmp"},
2316       {"10000", "Visit_fcmpe_s_floatcmp"},
2317       {"11000", "Visit_fcmpe_sz_floatcmp"},
2318     },
2319   },
2320 
2321   { "Decode_lpsvyy",
2322     {30, 13},
2323     { {"00", "Decode_jlrrlt"},
2324       {"01", "Decode_jrlynj"},
2325       {"10", "Visit_fmla_z_p_zzz"},
2326       {"11", "Visit_fmls_z_p_zzz"},
2327     },
2328   },
2329 
2330   { "Decode_lpsxhz",
2331     {22, 20, 19, 18, 17, 16, 13, 12},
2332     { {"01111101", "Visit_ld64b_64l_memop"},
2333     },
2334   },
2335 
2336   { "Decode_lqmksm",
2337     {30, 23, 22, 20, 13, 4},
2338     { {"00001x", "Visit_ld1row_z_p_bi_u32"},
2339       {"000x0x", "Visit_ld1row_z_p_br_contiguous"},
2340       {"01001x", "Visit_ld1rod_z_p_bi_u64"},
2341       {"010x0x", "Visit_ld1rod_z_p_br_contiguous"},
2342       {"110x00", "Visit_str_p_bi"},
2343     },
2344   },
2345 
2346   { "Decode_lqnvvj",
2347     {22, 13, 12},
2348     { {"000", "Visit_swp_32_memop"},
2349       {"100", "Visit_swpl_32_memop"},
2350     },
2351   },
2352 
2353   { "Decode_lrjyhr",
2354     {23, 22, 20, 19, 13, 11},
2355     { {"0000x0", "Visit_bic_asimdimm_l_hl"},
2356       {"00x100", "Visit_uqshrn_asimdshf_n"},
2357       {"00x101", "Visit_uqrshrn_asimdshf_n"},
2358       {"010x00", "Visit_uqshrn_asimdshf_n"},
2359       {"010x01", "Visit_uqrshrn_asimdshf_n"},
2360       {"011100", "Visit_uqshrn_asimdshf_n"},
2361       {"011101", "Visit_uqrshrn_asimdshf_n"},
2362       {"0x1000", "Visit_uqshrn_asimdshf_n"},
2363       {"0x1001", "Visit_uqrshrn_asimdshf_n"},
2364     },
2365   },
2366 
2367   { "Decode_lrntmz",
2368     {13, 12, 11, 10},
2369     { {"0000", "Visit_saddlb_z_zz"},
2370       {"0001", "Visit_saddlt_z_zz"},
2371       {"0010", "Visit_uaddlb_z_zz"},
2372       {"0011", "Visit_uaddlt_z_zz"},
2373       {"0100", "Visit_ssublb_z_zz"},
2374       {"0101", "Visit_ssublt_z_zz"},
2375       {"0110", "Visit_usublb_z_zz"},
2376       {"0111", "Visit_usublt_z_zz"},
2377       {"1100", "Visit_sabdlb_z_zz"},
2378       {"1101", "Visit_sabdlt_z_zz"},
2379       {"1110", "Visit_uabdlb_z_zz"},
2380       {"1111", "Visit_uabdlt_z_zz"},
2381     },
2382   },
2383 
2384   { "Decode_lrqkvp",
2385     {30, 23, 22, 13, 12, 11, 10},
2386     { {"0000000", "Visit_ldadd_32_memop"},
2387       {"0000100", "Visit_ldclr_32_memop"},
2388       {"0001000", "Visit_ldeor_32_memop"},
2389       {"0001100", "Visit_ldset_32_memop"},
2390       {"000xx10", "Visit_str_32_ldst_regoff"},
2391       {"0010000", "Visit_ldaddl_32_memop"},
2392       {"0010100", "Visit_ldclrl_32_memop"},
2393       {"0011000", "Visit_ldeorl_32_memop"},
2394       {"0011100", "Visit_ldsetl_32_memop"},
2395       {"001xx10", "Visit_ldr_32_ldst_regoff"},
2396       {"0100000", "Visit_ldadda_32_memop"},
2397       {"0100100", "Visit_ldclra_32_memop"},
2398       {"0101000", "Visit_ldeora_32_memop"},
2399       {"0101100", "Visit_ldseta_32_memop"},
2400       {"010xx10", "Visit_ldrsw_64_ldst_regoff"},
2401       {"0110000", "Visit_ldaddal_32_memop"},
2402       {"0110100", "Visit_ldclral_32_memop"},
2403       {"0111000", "Visit_ldeoral_32_memop"},
2404       {"0111100", "Visit_ldsetal_32_memop"},
2405       {"1000000", "Visit_ldadd_64_memop"},
2406       {"1000100", "Visit_ldclr_64_memop"},
2407       {"1001000", "Visit_ldeor_64_memop"},
2408       {"1001100", "Visit_ldset_64_memop"},
2409       {"100xx10", "Visit_str_64_ldst_regoff"},
2410       {"1010000", "Visit_ldaddl_64_memop"},
2411       {"1010100", "Visit_ldclrl_64_memop"},
2412       {"1011000", "Visit_ldeorl_64_memop"},
2413       {"1011100", "Visit_ldsetl_64_memop"},
2414       {"101xx10", "Visit_ldr_64_ldst_regoff"},
2415       {"10xxx01", "Visit_ldraa_64_ldst_pac"},
2416       {"10xxx11", "Visit_ldraa_64w_ldst_pac"},
2417       {"1100000", "Visit_ldadda_64_memop"},
2418       {"1100100", "Visit_ldclra_64_memop"},
2419       {"1101000", "Visit_ldeora_64_memop"},
2420       {"1101100", "Visit_ldseta_64_memop"},
2421       {"110xx10", "Visit_prfm_p_ldst_regoff"},
2422       {"1110000", "Visit_ldaddal_64_memop"},
2423       {"1110100", "Visit_ldclral_64_memop"},
2424       {"1111000", "Visit_ldeoral_64_memop"},
2425       {"1111100", "Visit_ldsetal_64_memop"},
2426       {"11xxx01", "Visit_ldrab_64_ldst_pac"},
2427       {"11xxx11", "Visit_ldrab_64w_ldst_pac"},
2428     },
2429   },
2430 
2431   { "Decode_lspzrv",
2432     {30, 23, 13},
2433     { {"000", "Visit_ld1sb_z_p_bz_s_x32_unscaled"},
2434       {"001", "Visit_ldff1sb_z_p_bz_s_x32_unscaled"},
2435       {"010", "Visit_ld1sh_z_p_bz_s_x32_unscaled"},
2436       {"011", "Visit_ldff1sh_z_p_bz_s_x32_unscaled"},
2437       {"100", "Visit_ld1sb_z_p_bz_d_x32_unscaled"},
2438       {"101", "Visit_ldff1sb_z_p_bz_d_x32_unscaled"},
2439       {"110", "Visit_ld1sh_z_p_bz_d_x32_unscaled"},
2440       {"111", "Visit_ldff1sh_z_p_bz_d_x32_unscaled"},
2441     },
2442   },
2443 
2444   { "Decode_ltvrrg",
2445     {30},
2446     { {"0", "Visit_bl_only_branch_imm"},
2447       {"1", "Decode_htmthz"},
2448     },
2449   },
2450 
2451   { "Decode_lvshqt",
2452     {23, 22},
2453     { {"00", "Decode_qtkpxg"},
2454     },
2455   },
2456 
2457   { "Decode_lxgltj",
2458     {30, 23, 22},
2459     { {"000", "Visit_stlxr_sr32_ldstexcl"},
2460       {"001", "Visit_ldaxr_lr32_ldstexcl"},
2461       {"010", "Visit_stlr_sl32_ldstexcl"},
2462       {"011", "Visit_ldar_lr32_ldstexcl"},
2463       {"100", "Visit_stlxr_sr64_ldstexcl"},
2464       {"101", "Visit_ldaxr_lr64_ldstexcl"},
2465       {"110", "Visit_stlr_sl64_ldstexcl"},
2466       {"111", "Visit_ldar_lr64_ldstexcl"},
2467     },
2468   },
2469 
2470   { "Decode_lxhlkx",
2471     {12, 11, 10},
2472     { {"000", "Visit_ftmad_z_zzi"},
2473     },
2474   },
2475 
2476   { "Decode_lxmyjh",
2477     {30, 23, 11, 10},
2478     { {"0000", "Decode_lqnvvj"},
2479       {"0010", "Decode_tmthqm"},
2480       {"0100", "Decode_rxjrmn"},
2481       {"0110", "Decode_ypqgyp"},
2482       {"1000", "Decode_zpsymj"},
2483       {"1001", "Visit_ldraa_64_ldst_pac"},
2484       {"1010", "Decode_rsyzrs"},
2485       {"1011", "Visit_ldraa_64w_ldst_pac"},
2486       {"1100", "Decode_nrrmtx"},
2487       {"1101", "Visit_ldrab_64_ldst_pac"},
2488       {"1110", "Decode_tgqsyg"},
2489       {"1111", "Visit_ldrab_64w_ldst_pac"},
2490     },
2491   },
2492 
2493   { "Decode_lxqynh",
2494     {23, 22, 19, 18, 17, 16},
2495     { {"0000x1", "Visit_dup_asimdins_dr_r"},
2496       {"000x10", "Visit_dup_asimdins_dr_r"},
2497       {"0010xx", "Visit_dup_asimdins_dr_r"},
2498       {"001110", "Visit_dup_asimdins_dr_r"},
2499       {"00x10x", "Visit_dup_asimdins_dr_r"},
2500       {"00x111", "Visit_dup_asimdins_dr_r"},
2501       {"01xxxx", "Visit_fmla_asimdsamefp16_only"},
2502       {"11xxxx", "Visit_fmls_asimdsamefp16_only"},
2503     },
2504   },
2505 
2506   { "Decode_lxvnxm",
2507     {23, 22, 12},
2508     { {"100", "Visit_fmlsl2_asimdelem_lh"},
2509       {"xx1", "Visit_sqrdmlah_asimdelem_r"},
2510     },
2511   },
2512 
2513   { "Decode_lyghyg",
2514     {20, 18, 17},
2515     { {"000", "Decode_hxmjhn"},
2516     },
2517   },
2518 
2519   { "Decode_lylpyx",
2520     {10},
2521     { {"0", "Visit_sabalb_z_zzz"},
2522       {"1", "Visit_sabalt_z_zzz"},
2523     },
2524   },
2525 
2526   { "Decode_lynsgm",
2527     {13},
2528     { {"0", "Decode_ttplgp"},
2529     },
2530   },
2531 
2532   { "Decode_lytkrx",
2533     {12, 11, 10},
2534     { {"000", "Visit_dup_z_zi"},
2535       {"010", "Visit_tbl_z_zz_2"},
2536       {"011", "Visit_tbx_z_zz"},
2537       {"100", "Visit_tbl_z_zz_1"},
2538       {"110", "Decode_ylnsvy"},
2539     },
2540   },
2541 
2542   { "Decode_lyzxhr",
2543     {23, 22, 20, 19, 18, 17, 16, 13, 12, 11},
2544     { {"0011111001", "Decode_smplhv"},
2545     },
2546   },
2547 
2548   { "Decode_lzpykk",
2549     {30, 23, 22},
2550     { {"000", "Visit_bfm_32m_bitfield"},
2551     },
2552   },
2553 
2554   { "Decode_mgmgqh",
2555     {17},
2556     { {"0", "Visit_st1_asisdlsop_hx1_r1h"},
2557       {"1", "Visit_st1_asisdlsop_h1_i1h"},
2558     },
2559   },
2560 
2561   { "Decode_mgmkyq",
2562     {23},
2563     { {"0", "Visit_fmaxp_asimdsame_only"},
2564       {"1", "Visit_fminp_asimdsame_only"},
2565     },
2566   },
2567 
2568   { "Decode_mgqvvn",
2569     {9, 8, 7, 6, 5},
2570     { {"11111", "Visit_pacdza_64z_dp_1src"},
2571     },
2572   },
2573 
2574   { "Decode_mgsvlj",
2575     {13, 12},
2576     { {"00", "Visit_udiv_32_dp_2src"},
2577       {"10", "Visit_asrv_32_dp_2src"},
2578     },
2579   },
2580 
2581   { "Decode_mhrjvp",
2582     {30, 13},
2583     { {"00", "Decode_vxhgzz"},
2584       {"01", "Decode_lytkrx"},
2585       {"10", "Decode_rlyvpn"},
2586       {"11", "Decode_yvptvx"},
2587     },
2588   },
2589 
2590   { "Decode_mjqvxq",
2591     {23, 22, 13, 12, 11, 10},
2592     { {"0001x0", "Visit_fmul_asimdelem_rh_h"},
2593       {"0x0001", "Visit_shrn_asimdshf_n"},
2594       {"0x0011", "Visit_rshrn_asimdshf_n"},
2595       {"0x0101", "Visit_sqshrn_asimdshf_n"},
2596       {"0x0111", "Visit_sqrshrn_asimdshf_n"},
2597       {"0x1001", "Visit_sshll_asimdshf_l"},
2598       {"1x01x0", "Visit_fmul_asimdelem_r_sd"},
2599       {"xx00x0", "Visit_mul_asimdelem_r"},
2600       {"xx10x0", "Visit_smull_asimdelem_l"},
2601       {"xx11x0", "Visit_sqdmull_asimdelem_l"},
2602     },
2603   },
2604 
2605   { "Decode_mjxzks",
2606     {4},
2607     { {"0", "Visit_ccmp_64_condcmp_reg"},
2608     },
2609   },
2610 
2611   { "Decode_mkgsly",
2612     {19, 18, 17, 16, 4},
2613     { {"00000", "Visit_brkas_p_p_p_z"},
2614       {"10000", "Visit_brkns_p_p_pp"},
2615     },
2616   },
2617 
2618   { "Decode_mkklrm",
2619     {18, 17},
2620     { {"00", "Visit_ld3_asisdlso_s3_3s"},
2621     },
2622   },
2623 
2624   { "Decode_mkskxj",
2625     {30, 23, 22, 13},
2626     { {"0000", "Visit_ld1sh_z_p_br_s32"},
2627       {"0001", "Visit_ldff1sh_z_p_br_s32"},
2628       {"0010", "Visit_ld1w_z_p_br_u64"},
2629       {"0011", "Visit_ldff1w_z_p_br_u64"},
2630       {"0100", "Visit_ld1sb_z_p_br_s32"},
2631       {"0101", "Visit_ldff1sb_z_p_br_s32"},
2632       {"0110", "Visit_ld1d_z_p_br_u64"},
2633       {"0111", "Visit_ldff1d_z_p_br_u64"},
2634       {"1001", "Visit_st2w_z_p_br_contiguous"},
2635       {"1011", "Visit_st4w_z_p_br_contiguous"},
2636       {"10x0", "Visit_st1w_z_p_br"},
2637       {"1100", "Visit_str_z_bi"},
2638       {"1101", "Visit_st2d_z_p_br_contiguous"},
2639       {"1110", "Visit_st1d_z_p_br"},
2640       {"1111", "Visit_st4d_z_p_br_contiguous"},
2641     },
2642   },
2643 
2644   { "Decode_mlnqrm",
2645     {30},
2646     { {"0", "Decode_nhzrqr"},
2647       {"1", "Decode_zpmkvt"},
2648     },
2649   },
2650 
2651   { "Decode_mlvpxh",
2652     {12},
2653     { {"0", "Visit_ld2_asisdlsop_dx2_r2d"},
2654     },
2655   },
2656 
2657   { "Decode_mlxtxs",
2658     {10},
2659     { {"0", "Visit_ssra_z_zi"},
2660       {"1", "Visit_usra_z_zi"},
2661     },
2662   },
2663 
2664   { "Decode_mlyynz",
2665     {12},
2666     { {"0", "Visit_st3_asisdlsop_dx3_r3d"},
2667     },
2668   },
2669 
2670   { "Decode_mmhkmp",
2671     {18, 17},
2672     { {"0x", "Visit_ld1_asisdlsop_sx1_r1s"},
2673       {"10", "Visit_ld1_asisdlsop_sx1_r1s"},
2674       {"11", "Visit_ld1_asisdlsop_s1_i1s"},
2675     },
2676   },
2677 
2678   { "Decode_mmknzp",
2679     {20, 19, 18, 17, 16},
2680     { {"00000", "Visit_clz_asimdmisc_r"},
2681       {"00001", "Visit_uqxtn_asimdmisc_n"},
2682     },
2683   },
2684 
2685   { "Decode_mmmjkx",
2686     {20, 19, 18, 17, 16, 13, 12},
2687     { {"0000000", "Visit_rev_32_dp_1src"},
2688     },
2689   },
2690 
2691   { "Decode_mmrtvz",
2692     {12},
2693     { {"0", "Visit_st4_asisdlsop_dx4_r4d"},
2694     },
2695   },
2696 
2697   { "Decode_mnmtql",
2698     {10},
2699     { {"0", "Visit_srsra_z_zi"},
2700       {"1", "Visit_ursra_z_zi"},
2701     },
2702   },
2703 
2704   { "Decode_mnxmst",
2705     {23, 22, 20, 19, 18, 17, 16},
2706     { {"0111001", "Visit_fcvtns_asimdmiscfp16_r"},
2707       {"0x00001", "Visit_fcvtns_asimdmisc_r"},
2708       {"1111001", "Visit_fcvtps_asimdmiscfp16_r"},
2709       {"1x00001", "Visit_fcvtps_asimdmisc_r"},
2710       {"xx00000", "Visit_cmlt_asimdmisc_z"},
2711       {"xx10000", "Visit_smaxv_asimdall_only"},
2712       {"xx10001", "Visit_sminv_asimdall_only"},
2713     },
2714   },
2715 
2716   { "Decode_mpgrgp",
2717     {30, 22, 13, 12, 11, 10},
2718     { {"000001", "Visit_rmif_only_rmif"},
2719       {"01xx00", "Visit_ccmn_64_condcmp_reg"},
2720       {"01xx10", "Visit_ccmn_64_condcmp_imm"},
2721       {"11xx00", "Visit_ccmp_64_condcmp_reg"},
2722       {"11xx10", "Visit_ccmp_64_condcmp_imm"},
2723     },
2724   },
2725 
2726   { "Decode_mplgqv",
2727     {11, 10},
2728     { {"00", "Visit_sm3tt1a_vvv4_crypto3_imm2"},
2729       {"01", "Visit_sm3tt1b_vvv4_crypto3_imm2"},
2730       {"10", "Visit_sm3tt2a_vvv4_crypto3_imm2"},
2731       {"11", "Visit_sm3tt2b_vvv_crypto3_imm2"},
2732     },
2733   },
2734 
2735   { "Decode_mplskr",
2736     {13, 12},
2737     { {"00", "Visit_add_asisdsame_only"},
2738       {"11", "Visit_sqdmulh_asisdsame_only"},
2739     },
2740   },
2741 
2742   { "Decode_mpstrr",
2743     {23, 22, 8, 7, 6, 5, 4, 3, 2, 1, 0},
2744     { {"00000000000", "Visit_setffr_f"},
2745     },
2746   },
2747 
2748   { "Decode_mpvsng",
2749     {30},
2750     { {"0", "Decode_vvtnrv"},
2751       {"1", "Decode_yykhjv"},
2752     },
2753   },
2754 
2755   { "Decode_mpyhkm",
2756     {30, 23, 22, 13, 12, 11, 10},
2757     { {"000xxxx", "Visit_fnmsub_s_floatdp3"},
2758       {"001xxxx", "Visit_fnmsub_d_floatdp3"},
2759       {"011xxxx", "Visit_fnmsub_h_floatdp3"},
2760       {"10x1001", "Visit_scvtf_asisdshf_c"},
2761       {"10x1111", "Visit_fcvtzs_asisdshf_c"},
2762       {"1xx00x0", "Visit_sqdmulh_asisdelem_r"},
2763       {"1xx01x0", "Visit_sqrdmulh_asisdelem_r"},
2764     },
2765   },
2766 
2767   { "Decode_mpyklp",
2768     {23, 22, 20, 19, 16, 13, 10},
2769     { {"0000000", "Decode_jqjnrv"},
2770       {"0000001", "Decode_yqmqzp"},
2771       {"0000010", "Decode_hgxqpp"},
2772       {"0000011", "Decode_rvzhhx"},
2773       {"0100000", "Decode_nnllqy"},
2774       {"0100001", "Decode_vhmsgj"},
2775       {"0100010", "Decode_mkklrm"},
2776       {"0100011", "Decode_lnkqjp"},
2777       {"100xx00", "Visit_st1_asisdlsop_sx1_r1s"},
2778       {"100xx01", "Decode_yxmkzr"},
2779       {"100xx10", "Visit_st3_asisdlsop_sx3_r3s"},
2780       {"100xx11", "Decode_mlyynz"},
2781       {"1010x00", "Visit_st1_asisdlsop_sx1_r1s"},
2782       {"1010x01", "Decode_jnjlsh"},
2783       {"1010x10", "Visit_st3_asisdlsop_sx3_r3s"},
2784       {"1010x11", "Decode_svrnxq"},
2785       {"1011000", "Visit_st1_asisdlsop_sx1_r1s"},
2786       {"1011001", "Decode_hjqtrt"},
2787       {"1011010", "Visit_st3_asisdlsop_sx3_r3s"},
2788       {"1011011", "Decode_vqlytp"},
2789       {"1011100", "Decode_qqpqnm"},
2790       {"1011101", "Decode_thvvzp"},
2791       {"1011110", "Decode_srglgl"},
2792       {"1011111", "Decode_qzrjss"},
2793       {"110xx00", "Visit_ld1_asisdlsop_sx1_r1s"},
2794       {"110xx01", "Decode_ljxhnq"},
2795       {"110xx10", "Visit_ld3_asisdlsop_sx3_r3s"},
2796       {"110xx11", "Decode_nkrqgn"},
2797       {"1110x00", "Visit_ld1_asisdlsop_sx1_r1s"},
2798       {"1110x01", "Decode_vmplgv"},
2799       {"1110x10", "Visit_ld3_asisdlsop_sx3_r3s"},
2800       {"1110x11", "Decode_gsttpm"},
2801       {"1111000", "Visit_ld1_asisdlsop_sx1_r1s"},
2802       {"1111001", "Decode_xmqvpl"},
2803       {"1111010", "Visit_ld3_asisdlsop_sx3_r3s"},
2804       {"1111011", "Decode_stqmps"},
2805       {"1111100", "Decode_mmhkmp"},
2806       {"1111101", "Decode_srvnql"},
2807       {"1111110", "Decode_lnjpjs"},
2808       {"1111111", "Decode_kstltt"},
2809     },
2810   },
2811 
2812   { "Decode_mpzqxm",
2813     {23, 22, 20, 19, 18, 16, 13},
2814     { {"0000000", "Decode_vpkhvh"},
2815       {"0000001", "Decode_gttglx"},
2816       {"0100000", "Decode_gsgzpg"},
2817       {"0100001", "Decode_ynqsgl"},
2818       {"100xxx0", "Visit_st2_asisdlsop_hx2_r2h"},
2819       {"100xxx1", "Visit_st4_asisdlsop_hx4_r4h"},
2820       {"1010xx0", "Visit_st2_asisdlsop_hx2_r2h"},
2821       {"1010xx1", "Visit_st4_asisdlsop_hx4_r4h"},
2822       {"10110x0", "Visit_st2_asisdlsop_hx2_r2h"},
2823       {"10110x1", "Visit_st4_asisdlsop_hx4_r4h"},
2824       {"1011100", "Visit_st2_asisdlsop_hx2_r2h"},
2825       {"1011101", "Visit_st4_asisdlsop_hx4_r4h"},
2826       {"1011110", "Decode_sjsltg"},
2827       {"1011111", "Decode_xrpmzt"},
2828       {"110xxx0", "Visit_ld2_asisdlsop_hx2_r2h"},
2829       {"110xxx1", "Visit_ld4_asisdlsop_hx4_r4h"},
2830       {"1110xx0", "Visit_ld2_asisdlsop_hx2_r2h"},
2831       {"1110xx1", "Visit_ld4_asisdlsop_hx4_r4h"},
2832       {"11110x0", "Visit_ld2_asisdlsop_hx2_r2h"},
2833       {"11110x1", "Visit_ld4_asisdlsop_hx4_r4h"},
2834       {"1111100", "Visit_ld2_asisdlsop_hx2_r2h"},
2835       {"1111101", "Visit_ld4_asisdlsop_hx4_r4h"},
2836       {"1111110", "Decode_gygnsz"},
2837       {"1111111", "Decode_kxkyqr"},
2838     },
2839   },
2840 
2841   { "Decode_mqgtsq",
2842     {30, 23, 22, 19},
2843     { {"1001", "Visit_aesd_b_cryptoaes"},
2844       {"xxx0", "Visit_cnt_asimdmisc_r"},
2845     },
2846   },
2847 
2848   { "Decode_mqkjxj",
2849     {30},
2850     { {"0", "Visit_bl_only_branch_imm"},
2851       {"1", "Decode_lyzxhr"},
2852     },
2853   },
2854 
2855   { "Decode_mqrzzk",
2856     {22, 20, 11},
2857     { {"000", "Visit_sqincw_z_zs"},
2858       {"001", "Visit_sqdecw_z_zs"},
2859       {"010", "Visit_incw_z_zs"},
2860       {"100", "Visit_sqincd_z_zs"},
2861       {"101", "Visit_sqdecd_z_zs"},
2862       {"110", "Visit_incd_z_zs"},
2863     },
2864   },
2865 
2866   { "Decode_mrhtxt",
2867     {23, 22, 20, 9},
2868     { {"0000", "Visit_brkpb_p_p_pp"},
2869       {"0100", "Visit_brkpbs_p_p_pp"},
2870     },
2871   },
2872 
2873   { "Decode_mrkkps",
2874     {17},
2875     { {"0", "Visit_ld1_asisdlsop_hx1_r1h"},
2876       {"1", "Visit_ld1_asisdlsop_h1_i1h"},
2877     },
2878   },
2879 
2880   { "Decode_mrmpgh",
2881     {30, 23, 22, 13, 12, 11, 10},
2882     { {"000xxxx", "Visit_stlxp_sp32_ldstexcl"},
2883       {"001xxxx", "Visit_ldaxp_lp32_ldstexcl"},
2884       {"0101111", "Visit_casl_c32_ldstexcl"},
2885       {"0111111", "Visit_casal_c32_ldstexcl"},
2886       {"100xxxx", "Visit_stlxp_sp64_ldstexcl"},
2887       {"101xxxx", "Visit_ldaxp_lp64_ldstexcl"},
2888       {"1101111", "Visit_casl_c64_ldstexcl"},
2889       {"1111111", "Visit_casal_c64_ldstexcl"},
2890     },
2891   },
2892 
2893   { "Decode_mrqqlp",
2894     {30, 11, 10},
2895     { {"000", "Decode_gqykqv"},
2896       {"001", "Decode_xgvgmk"},
2897       {"010", "Decode_tjpjng"},
2898       {"011", "Decode_pjkylt"},
2899       {"101", "Decode_yrgnqz"},
2900       {"110", "Decode_hhymvj"},
2901       {"111", "Decode_xpmvjv"},
2902     },
2903   },
2904 
2905   { "Decode_msgqps",
2906     {18, 17},
2907     { {"0x", "Visit_ld2_asisdlsop_sx2_r2s"},
2908       {"10", "Visit_ld2_asisdlsop_sx2_r2s"},
2909       {"11", "Visit_ld2_asisdlsop_s2_i2s"},
2910     },
2911   },
2912 
2913   { "Decode_msnsjp",
2914     {23, 20, 19, 18, 17, 16},
2915     { {"000001", "Visit_fcvtxn_asisdmisc_n"},
2916     },
2917   },
2918 
2919   { "Decode_msqkyy",
2920     {16, 13, 12},
2921     { {"000", "Visit_rbit_64_dp_1src"},
2922       {"001", "Visit_clz_64_dp_1src"},
2923       {"100", "Visit_pacia_64p_dp_1src"},
2924       {"101", "Visit_autia_64p_dp_1src"},
2925       {"110", "Decode_sqgxzn"},
2926       {"111", "Decode_kqkhtz"},
2927     },
2928   },
2929 
2930   { "Decode_mstthg",
2931     {13, 12, 11, 10},
2932     { {"0000", "Visit_umull_asimddiff_l"},
2933       {"0001", "Decode_qptvrm"},
2934       {"0010", "Decode_qqzrhz"},
2935       {"0011", "Decode_yxhrpk"},
2936       {"0101", "Decode_vsqpzr"},
2937       {"0110", "Decode_kjrxpx"},
2938       {"0111", "Decode_qnvgmh"},
2939       {"1001", "Decode_jvhnxl"},
2940       {"1010", "Decode_zyzzhm"},
2941       {"1011", "Decode_slhpgp"},
2942       {"1101", "Decode_mgmkyq"},
2943       {"1110", "Decode_qvlytr"},
2944       {"1111", "Decode_qtmjkr"},
2945     },
2946   },
2947 
2948   { "Decode_msztzv",
2949     {23, 11, 10, 4, 3, 2, 1},
2950     { {"0000000", "Decode_vvprhx"},
2951       {"0101111", "Decode_nqysxy"},
2952       {"0111111", "Decode_kkmjyr"},
2953       {"1000000", "Decode_ypjyqh"},
2954     },
2955   },
2956 
2957   { "Decode_mtgksl",
2958     {23, 22, 20, 19, 18, 16, 13},
2959     { {"0000000", "Decode_vnrnmg"},
2960       {"0000001", "Decode_hzllgl"},
2961       {"0100000", "Decode_hrhzqy"},
2962       {"0100001", "Decode_qtjzhs"},
2963       {"100xxx0", "Visit_st4_asisdlsep_r4_r"},
2964       {"100xxx1", "Visit_st1_asisdlsep_r4_r4"},
2965       {"1010xx0", "Visit_st4_asisdlsep_r4_r"},
2966       {"1010xx1", "Visit_st1_asisdlsep_r4_r4"},
2967       {"10110x0", "Visit_st4_asisdlsep_r4_r"},
2968       {"10110x1", "Visit_st1_asisdlsep_r4_r4"},
2969       {"1011100", "Visit_st4_asisdlsep_r4_r"},
2970       {"1011101", "Visit_st1_asisdlsep_r4_r4"},
2971       {"1011110", "Decode_nzkhrj"},
2972       {"1011111", "Decode_gmjhll"},
2973       {"110xxx0", "Visit_ld4_asisdlsep_r4_r"},
2974       {"110xxx1", "Visit_ld1_asisdlsep_r4_r4"},
2975       {"1110xx0", "Visit_ld4_asisdlsep_r4_r"},
2976       {"1110xx1", "Visit_ld1_asisdlsep_r4_r4"},
2977       {"11110x0", "Visit_ld4_asisdlsep_r4_r"},
2978       {"11110x1", "Visit_ld1_asisdlsep_r4_r4"},
2979       {"1111100", "Visit_ld4_asisdlsep_r4_r"},
2980       {"1111101", "Visit_ld1_asisdlsep_r4_r4"},
2981       {"1111110", "Decode_hxglyp"},
2982       {"1111111", "Decode_jmyslr"},
2983     },
2984   },
2985 
2986   { "Decode_mthzvm",
2987     {30, 23, 13, 12, 11, 10},
2988     { {"100001", "Visit_ushr_asisdshf_r"},
2989       {"100101", "Visit_usra_asisdshf_r"},
2990       {"101001", "Visit_urshr_asisdshf_r"},
2991       {"101101", "Visit_ursra_asisdshf_r"},
2992     },
2993   },
2994 
2995   { "Decode_mtjrtt",
2996     {13, 12},
2997     { {"00", "Visit_subps_64s_dp_2src"},
2998     },
2999   },
3000 
3001   { "Decode_mtlhnl",
3002     {23, 22, 20, 19, 13, 11},
3003     { {"0000x0", "Visit_movi_asimdimm_l_sl"},
3004       {"00x100", "Visit_sshr_asimdshf_r"},
3005       {"00x110", "Visit_srshr_asimdshf_r"},
3006       {"010x00", "Visit_sshr_asimdshf_r"},
3007       {"010x10", "Visit_srshr_asimdshf_r"},
3008       {"011100", "Visit_sshr_asimdshf_r"},
3009       {"011110", "Visit_srshr_asimdshf_r"},
3010       {"0x1000", "Visit_sshr_asimdshf_r"},
3011       {"0x1010", "Visit_srshr_asimdshf_r"},
3012     },
3013   },
3014 
3015   { "Decode_mtnpmr",
3016     {13, 12, 11, 10},
3017     { {"0000", "Visit_smull_asimddiff_l"},
3018       {"0001", "Decode_ypznsm"},
3019       {"0010", "Decode_sgztlj"},
3020       {"0011", "Decode_nsnyxt"},
3021       {"0100", "Visit_sqdmull_asimddiff_l"},
3022       {"0101", "Decode_plltlx"},
3023       {"0110", "Decode_qtystr"},
3024       {"0111", "Decode_gymljg"},
3025       {"1000", "Visit_pmull_asimddiff_l"},
3026       {"1001", "Decode_rpmrkq"},
3027       {"1010", "Decode_hvvyhl"},
3028       {"1011", "Decode_hlshjk"},
3029       {"1101", "Decode_gmvjgn"},
3030       {"1110", "Decode_rsyjqj"},
3031       {"1111", "Decode_yvlhjg"},
3032     },
3033   },
3034 
3035   { "Decode_mtzgpn",
3036     {30},
3037     { {"0", "Visit_cbz_32_compbranch"},
3038     },
3039   },
3040 
3041   { "Decode_mvglql",
3042     {23, 22, 20, 19, 13, 11},
3043     { {"0000x0", "Visit_mvni_asimdimm_l_hl"},
3044       {"00x100", "Visit_sqshrun_asimdshf_n"},
3045       {"00x101", "Visit_sqrshrun_asimdshf_n"},
3046       {"00x110", "Visit_ushll_asimdshf_l"},
3047       {"010x00", "Visit_sqshrun_asimdshf_n"},
3048       {"010x01", "Visit_sqrshrun_asimdshf_n"},
3049       {"010x10", "Visit_ushll_asimdshf_l"},
3050       {"011100", "Visit_sqshrun_asimdshf_n"},
3051       {"011101", "Visit_sqrshrun_asimdshf_n"},
3052       {"011110", "Visit_ushll_asimdshf_l"},
3053       {"0x1000", "Visit_sqshrun_asimdshf_n"},
3054       {"0x1001", "Visit_sqrshrun_asimdshf_n"},
3055       {"0x1010", "Visit_ushll_asimdshf_l"},
3056     },
3057   },
3058 
3059   { "Decode_mvgsjr",
3060     {20, 19, 18, 17, 16},
3061     { {"00000", "Visit_usqadd_asimdmisc_r"},
3062       {"00001", "Visit_shll_asimdmisc_s"},
3063       {"10000", "Visit_uaddlv_asimdall_only"},
3064     },
3065   },
3066 
3067   { "Decode_mvzvpk",
3068     {30},
3069     { {"0", "Visit_orn_64_log_shift"},
3070       {"1", "Visit_bics_64_log_shift"},
3071     },
3072   },
3073 
3074   { "Decode_mxgykv",
3075     {19, 18, 17, 16},
3076     { {"0000", "Visit_cntp_r_p_p"},
3077       {"1000", "Decode_lynsgm"},
3078       {"1001", "Decode_jxyskn"},
3079       {"1010", "Decode_jmxstz"},
3080       {"1011", "Decode_yjzknm"},
3081       {"1100", "Decode_zmtkvx"},
3082       {"1101", "Decode_yhmlxk"},
3083     },
3084   },
3085 
3086   { "Decode_mxkgnq",
3087     {23, 22, 20, 19, 11},
3088     { {"00010", "Visit_scvtf_asisdshf_c"},
3089       {"001x0", "Visit_scvtf_asisdshf_c"},
3090       {"01xx0", "Visit_scvtf_asisdshf_c"},
3091     },
3092   },
3093 
3094   { "Decode_mxnzyr",
3095     {19, 16},
3096     { {"00", "Decode_nhxxmh"},
3097       {"10", "Decode_qgymsy"},
3098       {"11", "Decode_gjprmg"},
3099     },
3100   },
3101 
3102   { "Decode_mxtskk",
3103     {20, 19, 18, 17, 16, 13},
3104     { {"000000", "Visit_fmov_h_floatdp1"},
3105       {"000010", "Visit_fneg_h_floatdp1"},
3106       {"000100", "Visit_fcvt_sh_floatdp1"},
3107       {"001000", "Visit_frintn_h_floatdp1"},
3108       {"001010", "Visit_frintm_h_floatdp1"},
3109       {"001100", "Visit_frinta_h_floatdp1"},
3110       {"001110", "Visit_frintx_h_floatdp1"},
3111     },
3112   },
3113 
3114   { "Decode_mxvjxx",
3115     {20, 19, 18, 16},
3116     { {"0000", "Decode_nshjhk"},
3117     },
3118   },
3119 
3120   { "Decode_myjqrl",
3121     {22, 20, 19, 18, 17, 16},
3122     { {"111000", "Visit_fcmge_asisdmiscfp16_fz"},
3123       {"x00000", "Visit_fcmge_asisdmisc_fz"},
3124       {"x10000", "Visit_fminnmp_asisdpair_only_sd"},
3125     },
3126   },
3127 
3128   { "Decode_mykjss",
3129     {17},
3130     { {"0", "Visit_st2_asisdlsop_bx2_r2b"},
3131       {"1", "Visit_st2_asisdlsop_b2_i2b"},
3132     },
3133   },
3134 
3135   { "Decode_mylphg",
3136     {30, 13, 4},
3137     { {"000", "Visit_cmpge_p_p_zw"},
3138       {"001", "Visit_cmpgt_p_p_zw"},
3139       {"010", "Visit_cmplt_p_p_zw"},
3140       {"011", "Visit_cmple_p_p_zw"},
3141       {"1xx", "Visit_fcmla_z_p_zzz"},
3142     },
3143   },
3144 
3145   { "Decode_myrshl",
3146     {4},
3147     { {"0", "Visit_ccmn_32_condcmp_imm"},
3148     },
3149   },
3150 
3151   { "Decode_myxhpq",
3152     {12},
3153     { {"0", "Visit_udot_asimdelem_d"},
3154       {"1", "Visit_sqrdmlsh_asimdelem_r"},
3155     },
3156   },
3157 
3158   { "Decode_mzhsrq",
3159     {4},
3160     { {"0", "Visit_cmplt_p_p_zi"},
3161       {"1", "Visit_cmple_p_p_zi"},
3162     },
3163   },
3164 
3165   { "Decode_mzqzhq",
3166     {23, 22, 20, 19, 11},
3167     { {"00000", "Visit_mvni_asimdimm_m_sm"},
3168     },
3169   },
3170 
3171   { "Decode_mzynlp",
3172     {23, 22, 13},
3173     { {"100", "Visit_fmlal2_asimdelem_lh"},
3174       {"xx1", "Visit_umull_asimdelem_l"},
3175     },
3176   },
3177 
3178   { "Decode_ngttyj",
3179     {30, 23, 22, 13},
3180     { {"0000", "Visit_ld1b_z_p_br_u16"},
3181       {"0001", "Visit_ldff1b_z_p_br_u16"},
3182       {"0010", "Visit_ld1b_z_p_br_u64"},
3183       {"0011", "Visit_ldff1b_z_p_br_u64"},
3184       {"0100", "Visit_ld1h_z_p_br_u16"},
3185       {"0101", "Visit_ldff1h_z_p_br_u16"},
3186       {"0110", "Visit_ld1h_z_p_br_u64"},
3187       {"0111", "Visit_ldff1h_z_p_br_u64"},
3188       {"1001", "Visit_st2b_z_p_br_contiguous"},
3189       {"1011", "Visit_st4b_z_p_br_contiguous"},
3190       {"10x0", "Visit_st1b_z_p_br"},
3191       {"1101", "Visit_st2h_z_p_br_contiguous"},
3192       {"1111", "Visit_st4h_z_p_br_contiguous"},
3193       {"11x0", "Visit_st1h_z_p_br"},
3194     },
3195   },
3196 
3197   { "Decode_ngxkmp",
3198     {18, 17},
3199     { {"0x", "Visit_st3_asisdlsep_r3_r"},
3200       {"10", "Visit_st3_asisdlsep_r3_r"},
3201       {"11", "Visit_st3_asisdlsep_i3_i"},
3202     },
3203   },
3204 
3205   { "Decode_ngzyqj",
3206     {11, 10},
3207     { {"00", "Visit_asr_z_zi"},
3208       {"01", "Visit_lsr_z_zi"},
3209       {"11", "Visit_lsl_z_zi"},
3210     },
3211   },
3212 
3213   { "Decode_nhhpqz",
3214     {23, 22, 13, 12},
3215     { {"0000", "Visit_fmul_s_floatdp2"},
3216       {"0001", "Visit_fdiv_s_floatdp2"},
3217       {"0010", "Visit_fadd_s_floatdp2"},
3218       {"0011", "Visit_fsub_s_floatdp2"},
3219       {"0100", "Visit_fmul_d_floatdp2"},
3220       {"0101", "Visit_fdiv_d_floatdp2"},
3221       {"0110", "Visit_fadd_d_floatdp2"},
3222       {"0111", "Visit_fsub_d_floatdp2"},
3223       {"1100", "Visit_fmul_h_floatdp2"},
3224       {"1101", "Visit_fdiv_h_floatdp2"},
3225       {"1110", "Visit_fadd_h_floatdp2"},
3226       {"1111", "Visit_fsub_h_floatdp2"},
3227     },
3228   },
3229 
3230   { "Decode_nhkstj",
3231     {30, 23, 22},
3232     { {"00x", "Visit_add_64_addsub_shift"},
3233       {"010", "Visit_add_64_addsub_shift"},
3234       {"10x", "Visit_sub_64_addsub_shift"},
3235       {"110", "Visit_sub_64_addsub_shift"},
3236     },
3237   },
3238 
3239   { "Decode_nhxxmh",
3240     {23, 22, 9, 3, 2, 1, 0},
3241     { {"0100000", "Visit_ptest_p_p"},
3242     },
3243   },
3244 
3245   { "Decode_nhzrqr",
3246     {23, 22},
3247     { {"00", "Visit_fmadd_s_floatdp3"},
3248       {"01", "Visit_fmadd_d_floatdp3"},
3249       {"11", "Visit_fmadd_h_floatdp3"},
3250     },
3251   },
3252 
3253   { "Decode_nhzyvv",
3254     {23, 22, 4, 3, 2, 1, 0},
3255     { {"0000000", "Visit_brk_ex_exception"},
3256       {"0100000", "Visit_tcancel_ex_exception"},
3257       {"1000001", "Visit_dcps1_dc_exception"},
3258       {"1000010", "Visit_dcps2_dc_exception"},
3259       {"1000011", "Visit_dcps3_dc_exception"},
3260     },
3261   },
3262 
3263   { "Decode_njgmvx",
3264     {18, 17},
3265     { {"00", "Decode_rzqzlq"},
3266     },
3267   },
3268 
3269   { "Decode_njgxlz",
3270     {30},
3271     { {"0", "Decode_txzxzs"},
3272       {"1", "Decode_vprkpq"},
3273     },
3274   },
3275 
3276   { "Decode_njngkk",
3277     {23, 22, 9, 8, 7, 6, 5},
3278     { {"0000000", "Visit_rdffr_p_f"},
3279     },
3280   },
3281 
3282   { "Decode_njtngm",
3283     {13, 12, 10},
3284     { {"001", "Decode_qkzlkj"},
3285       {"010", "Decode_jvpqrp"},
3286       {"011", "Decode_kknjng"},
3287       {"101", "Decode_xmtlmj"},
3288       {"110", "Visit_sqdmlal_asisdelem_l"},
3289       {"111", "Decode_zgjpym"},
3290     },
3291   },
3292 
3293   { "Decode_njvkjq",
3294     {11, 10},
3295     { {"00", "Visit_index_z_ii"},
3296       {"01", "Visit_index_z_ri"},
3297       {"10", "Visit_index_z_ir"},
3298       {"11", "Visit_index_z_rr"},
3299     },
3300   },
3301 
3302   { "Decode_njxtpv",
3303     {30, 23, 22, 11, 10, 4},
3304     { {"001000", "Visit_ccmn_32_condcmp_reg"},
3305       {"001100", "Visit_ccmn_32_condcmp_imm"},
3306       {"101000", "Visit_ccmp_32_condcmp_reg"},
3307       {"101100", "Visit_ccmp_32_condcmp_imm"},
3308     },
3309   },
3310 
3311   { "Decode_nkjgpq",
3312     {23, 20, 19, 18, 17, 16, 13},
3313     { {"0000000", "Visit_ld1r_asisdlso_r1"},
3314       {"0000001", "Visit_ld3r_asisdlso_r3"},
3315       {"10xxxx0", "Visit_ld1r_asisdlsop_rx1_r"},
3316       {"10xxxx1", "Visit_ld3r_asisdlsop_rx3_r"},
3317       {"110xxx0", "Visit_ld1r_asisdlsop_rx1_r"},
3318       {"110xxx1", "Visit_ld3r_asisdlsop_rx3_r"},
3319       {"1110xx0", "Visit_ld1r_asisdlsop_rx1_r"},
3320       {"1110xx1", "Visit_ld3r_asisdlsop_rx3_r"},
3321       {"11110x0", "Visit_ld1r_asisdlsop_rx1_r"},
3322       {"11110x1", "Visit_ld3r_asisdlsop_rx3_r"},
3323       {"1111100", "Visit_ld1r_asisdlsop_rx1_r"},
3324       {"1111101", "Visit_ld3r_asisdlsop_rx3_r"},
3325       {"1111110", "Visit_ld1r_asisdlsop_r1_i"},
3326       {"1111111", "Visit_ld3r_asisdlsop_r3_i"},
3327     },
3328   },
3329 
3330   { "Decode_nkrqgn",
3331     {12},
3332     { {"0", "Visit_ld3_asisdlsop_dx3_r3d"},
3333     },
3334   },
3335 
3336   { "Decode_nkxhsy",
3337     {22, 20, 11},
3338     { {"000", "Visit_cntb_r_s"},
3339       {"010", "Visit_incb_r_rs"},
3340       {"100", "Visit_cnth_r_s"},
3341       {"110", "Visit_inch_r_rs"},
3342     },
3343   },
3344 
3345   { "Decode_nlgqsk",
3346     {30, 23, 13, 12, 11, 10},
3347     { {"100001", "Visit_sri_asisdshf_r"},
3348       {"100101", "Visit_sli_asisdshf_r"},
3349       {"101001", "Visit_sqshlu_asisdshf_r"},
3350       {"101101", "Visit_uqshl_asisdshf_r"},
3351     },
3352   },
3353 
3354   { "Decode_nlkkyx",
3355     {23, 13, 12},
3356     { {"001", "Visit_fmulx_asisdsame_only"},
3357       {"011", "Visit_frecps_asisdsame_only"},
3358       {"111", "Visit_frsqrts_asisdsame_only"},
3359     },
3360   },
3361 
3362   { "Decode_nllnsg",
3363     {30, 23, 22, 19, 16},
3364     { {"10010", "Visit_aesmc_b_cryptoaes"},
3365       {"x0x01", "Visit_fcvtn_asimdmisc_n"},
3366       {"x1001", "Visit_bfcvtn_asimdmisc_4s"},
3367       {"xxx00", "Visit_sadalp_asimdmisc_p"},
3368     },
3369   },
3370 
3371   { "Decode_nlpmvl",
3372     {30, 13},
3373     { {"00", "Visit_mad_z_p_zzz"},
3374       {"01", "Visit_msb_z_p_zzz"},
3375     },
3376   },
3377 
3378   { "Decode_nlqglq",
3379     {13, 10},
3380     { {"00", "Decode_lxvnxm"},
3381       {"01", "Decode_mzqzhq"},
3382       {"10", "Decode_myxhpq"},
3383       {"11", "Decode_pslllp"},
3384     },
3385   },
3386 
3387   { "Decode_nlyntn",
3388     {23, 22, 20, 19, 11},
3389     { {"00000", "Visit_movi_asimdimm_l_sl"},
3390     },
3391   },
3392 
3393   { "Decode_nmkqzt",
3394     {20, 19, 18, 17},
3395     { {"0000", "Decode_nvqlyn"},
3396     },
3397   },
3398 
3399   { "Decode_nmtkjv",
3400     {17},
3401     { {"0", "Visit_ld1_asisdlso_h1_1h"},
3402     },
3403   },
3404 
3405   { "Decode_nmzyvt",
3406     {30, 23, 22, 13, 12, 11, 10},
3407     { {"0000000", "Visit_ldsmaxb_32_memop"},
3408       {"0000100", "Visit_ldsminb_32_memop"},
3409       {"0000x10", "Visit_strb_32b_ldst_regoff"},
3410       {"0001000", "Visit_ldumaxb_32_memop"},
3411       {"0001100", "Visit_lduminb_32_memop"},
3412       {"0001x10", "Visit_strb_32bl_ldst_regoff"},
3413       {"0010000", "Visit_ldsmaxlb_32_memop"},
3414       {"0010100", "Visit_ldsminlb_32_memop"},
3415       {"0010x10", "Visit_ldrb_32b_ldst_regoff"},
3416       {"0011000", "Visit_ldumaxlb_32_memop"},
3417       {"0011100", "Visit_lduminlb_32_memop"},
3418       {"0011x10", "Visit_ldrb_32bl_ldst_regoff"},
3419       {"0100000", "Visit_ldsmaxab_32_memop"},
3420       {"0100100", "Visit_ldsminab_32_memop"},
3421       {"0100x10", "Visit_ldrsb_64b_ldst_regoff"},
3422       {"0101000", "Visit_ldumaxab_32_memop"},
3423       {"0101100", "Visit_lduminab_32_memop"},
3424       {"0101x10", "Visit_ldrsb_64bl_ldst_regoff"},
3425       {"0110000", "Visit_ldsmaxalb_32_memop"},
3426       {"0110100", "Visit_ldsminalb_32_memop"},
3427       {"0110x10", "Visit_ldrsb_32b_ldst_regoff"},
3428       {"0111000", "Visit_ldumaxalb_32_memop"},
3429       {"0111100", "Visit_lduminalb_32_memop"},
3430       {"0111x10", "Visit_ldrsb_32bl_ldst_regoff"},
3431       {"1000000", "Visit_ldsmaxh_32_memop"},
3432       {"1000100", "Visit_ldsminh_32_memop"},
3433       {"1001000", "Visit_ldumaxh_32_memop"},
3434       {"1001100", "Visit_lduminh_32_memop"},
3435       {"100xx10", "Visit_strh_32_ldst_regoff"},
3436       {"1010000", "Visit_ldsmaxlh_32_memop"},
3437       {"1010100", "Visit_ldsminlh_32_memop"},
3438       {"1011000", "Visit_ldumaxlh_32_memop"},
3439       {"1011100", "Visit_lduminlh_32_memop"},
3440       {"101xx10", "Visit_ldrh_32_ldst_regoff"},
3441       {"1100000", "Visit_ldsmaxah_32_memop"},
3442       {"1100100", "Visit_ldsminah_32_memop"},
3443       {"1101000", "Visit_ldumaxah_32_memop"},
3444       {"1101100", "Visit_lduminah_32_memop"},
3445       {"110xx10", "Visit_ldrsh_64_ldst_regoff"},
3446       {"1110000", "Visit_ldsmaxalh_32_memop"},
3447       {"1110100", "Visit_ldsminalh_32_memop"},
3448       {"1111000", "Visit_ldumaxalh_32_memop"},
3449       {"1111100", "Visit_lduminalh_32_memop"},
3450       {"111xx10", "Visit_ldrsh_32_ldst_regoff"},
3451     },
3452   },
3453 
3454   { "Decode_nnhprs",
3455     {1, 0},
3456     { {"00", "Visit_ret_64r_branch_reg"},
3457     },
3458   },
3459 
3460   { "Decode_nnkxgr",
3461     {11, 10},
3462     { {"00", "Visit_ftssel_z_zz"},
3463       {"10", "Decode_yhlntp"},
3464       {"11", "Decode_rsqmgk"},
3465     },
3466   },
3467 
3468   { "Decode_nnkyzr",
3469     {18, 17, 16},
3470     { {"011", "Decode_yvgqjx"},
3471     },
3472   },
3473 
3474   { "Decode_nnllqy",
3475     {18, 17},
3476     { {"00", "Visit_ld1_asisdlso_s1_1s"},
3477     },
3478   },
3479 
3480   { "Decode_nnlvqz",
3481     {9, 8, 7, 6, 5},
3482     { {"00000", "Visit_fmov_d_floatimm"},
3483     },
3484   },
3485 
3486   { "Decode_nnzhgm",
3487     {19, 18, 17, 16, 4},
3488     { {"0000x", "Visit_brka_p_p_p"},
3489       {"10000", "Visit_brkn_p_p_pp"},
3490     },
3491   },
3492 
3493   { "Decode_nqgqjh",
3494     {30, 23, 22, 20, 19},
3495     { {"0xxxx", "Visit_bl_only_branch_imm"},
3496       {"10001", "Visit_sys_cr_systeminstrs"},
3497       {"1001x", "Visit_msr_sr_systemmove"},
3498     },
3499   },
3500 
3501   { "Decode_nqkhrv",
3502     {30, 13},
3503     { {"10", "Visit_fnmla_z_p_zzz"},
3504       {"11", "Visit_fnmls_z_p_zzz"},
3505     },
3506   },
3507 
3508   { "Decode_nqlgtn",
3509     {23, 20, 19, 18, 17, 16, 13},
3510     { {"0000000", "Visit_ld2r_asisdlso_r2"},
3511       {"0000001", "Visit_ld4r_asisdlso_r4"},
3512       {"10xxxx0", "Visit_ld2r_asisdlsop_rx2_r"},
3513       {"10xxxx1", "Visit_ld4r_asisdlsop_rx4_r"},
3514       {"110xxx0", "Visit_ld2r_asisdlsop_rx2_r"},
3515       {"110xxx1", "Visit_ld4r_asisdlsop_rx4_r"},
3516       {"1110xx0", "Visit_ld2r_asisdlsop_rx2_r"},
3517       {"1110xx1", "Visit_ld4r_asisdlsop_rx4_r"},
3518       {"11110x0", "Visit_ld2r_asisdlsop_rx2_r"},
3519       {"11110x1", "Visit_ld4r_asisdlsop_rx4_r"},
3520       {"1111100", "Visit_ld2r_asisdlsop_rx2_r"},
3521       {"1111101", "Visit_ld4r_asisdlsop_rx4_r"},
3522       {"1111110", "Visit_ld2r_asisdlsop_r2_i"},
3523       {"1111111", "Visit_ld4r_asisdlsop_r4_i"},
3524     },
3525   },
3526 
3527   { "Decode_nqysxy",
3528     {0},
3529     { {"1", "Visit_blraaz_64_branch_reg"},
3530     },
3531   },
3532 
3533   { "Decode_nrrmtx",
3534     {22, 13, 12},
3535     { {"000", "Visit_swpa_64_memop"},
3536       {"100", "Visit_swpal_64_memop"},
3537     },
3538   },
3539 
3540   { "Decode_nrssjz",
3541     {17},
3542     { {"0", "Visit_ld3_asisdlso_b3_3b"},
3543     },
3544   },
3545 
3546   { "Decode_nshjhk",
3547     {17, 9, 8, 7, 6, 5},
3548     { {"000000", "Visit_aesimc_z_z"},
3549       {"1xxxxx", "Visit_aesd_z_zz"},
3550     },
3551   },
3552 
3553   { "Decode_nsjhhg",
3554     {30, 13},
3555     { {"00", "Decode_jhllmn"},
3556       {"01", "Decode_htplsj"},
3557       {"10", "Decode_rztvnl"},
3558       {"11", "Decode_vgtnjh"},
3559     },
3560   },
3561 
3562   { "Decode_nsnyxt",
3563     {23},
3564     { {"0", "Visit_fmla_asimdsame_only"},
3565       {"1", "Visit_fmls_asimdsame_only"},
3566     },
3567   },
3568 
3569   { "Decode_nssrnm",
3570     {20, 18, 17, 16},
3571     { {"0000", "Decode_lnpvky"},
3572     },
3573   },
3574 
3575   { "Decode_nszhhy",
3576     {17},
3577     { {"0", "Visit_ld2_asisdlsep_r2_r"},
3578       {"1", "Visit_ld2_asisdlsep_i2_i"},
3579     },
3580   },
3581 
3582   { "Decode_nthvqx",
3583     {23, 22},
3584     { {"00", "Visit_eor_asimdsame_only"},
3585       {"01", "Visit_bsl_asimdsame_only"},
3586       {"10", "Visit_bit_asimdsame_only"},
3587       {"11", "Visit_bif_asimdsame_only"},
3588     },
3589   },
3590 
3591   { "Decode_ntjpsx",
3592     {22, 20, 11},
3593     { {"000", "Visit_uqincb_r_rs_uw"},
3594       {"001", "Visit_uqdecb_r_rs_uw"},
3595       {"010", "Visit_uqincb_r_rs_x"},
3596       {"011", "Visit_uqdecb_r_rs_x"},
3597       {"100", "Visit_uqinch_r_rs_uw"},
3598       {"101", "Visit_uqdech_r_rs_uw"},
3599       {"110", "Visit_uqinch_r_rs_x"},
3600       {"111", "Visit_uqdech_r_rs_x"},
3601     },
3602   },
3603 
3604   { "Decode_ntkhsm",
3605     {13, 12},
3606     { {"00", "Visit_cmtst_asisdsame_only"},
3607     },
3608   },
3609 
3610   { "Decode_ntkqhk",
3611     {11, 10, 9, 8, 7, 6},
3612     { {"000000", "Visit_yield_hi_hints"},
3613       {"000001", "Visit_wfi_hi_hints"},
3614       {"000010", "Visit_sevl_hi_hints"},
3615       {"000011", "Visit_xpaclri_hi_hints"},
3616       {"001000", "Visit_psb_hc_hints"},
3617       {"0010x1", "Visit_hint_hm_hints"},
3618       {"001100", "Visit_paciasp_hi_hints"},
3619       {"001101", "Visit_pacibsp_hi_hints"},
3620       {"001110", "Visit_autiasp_hi_hints"},
3621       {"001111", "Visit_autibsp_hi_hints"},
3622       {"0x01xx", "Visit_hint_hm_hints"},
3623       {"0x1010", "Visit_hint_hm_hints"},
3624       {"10x0xx", "Visit_hint_hm_hints"},
3625       {"10x1xx", "Visit_hint_hm_hints"},
3626       {"1101xx", "Visit_hint_hm_hints"},
3627       {"111010", "Visit_hint_hm_hints"},
3628       {"x100xx", "Visit_hint_hm_hints"},
3629       {"x1100x", "Visit_hint_hm_hints"},
3630       {"x11011", "Visit_hint_hm_hints"},
3631       {"x111xx", "Visit_hint_hm_hints"},
3632     },
3633   },
3634 
3635   { "Decode_nvkthr",
3636     {30, 13},
3637     { {"00", "Decode_kjqynn"},
3638       {"01", "Decode_jgyhrh"},
3639       {"10", "Decode_jymnkk"},
3640       {"11", "Decode_pqjjsh"},
3641     },
3642   },
3643 
3644   { "Decode_nvqlyn",
3645     {16, 13, 12},
3646     { {"000", "Visit_rev_64_dp_1src"},
3647       {"100", "Visit_pacdb_64p_dp_1src"},
3648       {"101", "Visit_autdb_64p_dp_1src"},
3649       {"110", "Decode_hhnjjk"},
3650       {"111", "Decode_yvnjkr"},
3651     },
3652   },
3653 
3654   { "Decode_nvthzh",
3655     {20, 19, 18, 17, 16, 13, 12, 9, 8, 7, 6, 5},
3656     { {"000010011111", "Visit_xpacd_64z_dp_1src"},
3657     },
3658   },
3659 
3660   { "Decode_nvyxmh",
3661     {20, 19, 18, 17, 16},
3662     { {"00000", "Visit_add_z_p_zz"},
3663       {"00001", "Visit_sub_z_p_zz"},
3664       {"00011", "Visit_subr_z_p_zz"},
3665       {"01000", "Visit_smax_z_p_zz"},
3666       {"01001", "Visit_umax_z_p_zz"},
3667       {"01010", "Visit_smin_z_p_zz"},
3668       {"01011", "Visit_umin_z_p_zz"},
3669       {"01100", "Visit_sabd_z_p_zz"},
3670       {"01101", "Visit_uabd_z_p_zz"},
3671       {"10000", "Visit_mul_z_p_zz"},
3672       {"10010", "Visit_smulh_z_p_zz"},
3673       {"10011", "Visit_umulh_z_p_zz"},
3674       {"10100", "Visit_sdiv_z_p_zz"},
3675       {"10101", "Visit_udiv_z_p_zz"},
3676       {"10110", "Visit_sdivr_z_p_zz"},
3677       {"10111", "Visit_udivr_z_p_zz"},
3678       {"11000", "Visit_orr_z_p_zz"},
3679       {"11001", "Visit_eor_z_p_zz"},
3680       {"11010", "Visit_and_z_p_zz"},
3681       {"11011", "Visit_bic_z_p_zz"},
3682     },
3683   },
3684 
3685   { "Decode_nxjgmm",
3686     {17},
3687     { {"0", "Visit_st3_asisdlsop_bx3_r3b"},
3688       {"1", "Visit_st3_asisdlsop_b3_i3b"},
3689     },
3690   },
3691 
3692   { "Decode_nxjkqs",
3693     {23, 22, 12, 11, 10},
3694     { {"0x000", "Visit_fmla_z_zzzi_h"},
3695       {"0x001", "Visit_fmls_z_zzzi_h"},
3696       {"10000", "Visit_fmla_z_zzzi_s"},
3697       {"10001", "Visit_fmls_z_zzzi_s"},
3698       {"101xx", "Visit_fcmla_z_zzzi_h"},
3699       {"11000", "Visit_fmla_z_zzzi_d"},
3700       {"11001", "Visit_fmls_z_zzzi_d"},
3701       {"111xx", "Visit_fcmla_z_zzzi_s"},
3702     },
3703   },
3704 
3705   { "Decode_nxmjvy",
3706     {30, 23, 11, 10},
3707     { {"1001", "Decode_jksztq"},
3708     },
3709   },
3710 
3711   { "Decode_nxqygl",
3712     {13},
3713     { {"0", "Visit_mla_asimdelem_r"},
3714       {"1", "Visit_umlal_asimdelem_l"},
3715     },
3716   },
3717 
3718   { "Decode_nxyhyv",
3719     {30, 11, 10},
3720     { {"000", "Decode_kvyysq"},
3721       {"001", "Decode_rvjzgt"},
3722       {"010", "Decode_vjlnqj"},
3723       {"011", "Decode_jvvzjq"},
3724       {"100", "Decode_tzzhsk"},
3725       {"101", "Decode_mplskr"},
3726       {"110", "Decode_njgmvx"},
3727       {"111", "Decode_ntkhsm"},
3728     },
3729   },
3730 
3731   { "Decode_nykvly",
3732     {16, 13, 12},
3733     { {"000", "Visit_rev32_64_dp_1src"},
3734       {"100", "Visit_pacda_64p_dp_1src"},
3735       {"101", "Visit_autda_64p_dp_1src"},
3736       {"110", "Decode_mgqvvn"},
3737       {"111", "Decode_xvlnmy"},
3738     },
3739   },
3740 
3741   { "Decode_nyssqn",
3742     {12},
3743     { {"0", "Visit_st2_asisdlsop_dx2_r2d"},
3744     },
3745   },
3746 
3747   { "Decode_nyxxks",
3748     {20, 19, 18, 17, 16},
3749     { {"00000", "Visit_suqadd_asimdmisc_r"},
3750       {"10000", "Visit_saddlv_asimdall_only"},
3751     },
3752   },
3753 
3754   { "Decode_nzkhrj",
3755     {17},
3756     { {"0", "Visit_st4_asisdlsep_r4_r"},
3757       {"1", "Visit_st4_asisdlsep_i4_i"},
3758     },
3759   },
3760 
3761   { "Decode_nzqkky",
3762     {20, 19, 18, 17, 16},
3763     { {"00000", "Visit_rev32_asimdmisc_r"},
3764     },
3765   },
3766 
3767   { "Decode_pgjjsz",
3768     {30, 13, 12, 11, 10},
3769     { {"00000", "Decode_lmyxhr"},
3770       {"00001", "Decode_tmhlvh"},
3771       {"00010", "Decode_qvtxpr"},
3772       {"00011", "Decode_ymkthj"},
3773       {"00100", "Decode_rhmxyp"},
3774       {"00101", "Decode_zryvjk"},
3775       {"01000", "Visit_zip1_z_zz"},
3776       {"01001", "Visit_zip2_z_zz"},
3777       {"01010", "Visit_uzp1_z_zz"},
3778       {"01011", "Visit_uzp2_z_zz"},
3779       {"01100", "Visit_trn1_z_zz"},
3780       {"01101", "Visit_trn2_z_zz"},
3781       {"10000", "Decode_llvrrk"},
3782       {"10001", "Decode_qyjvqr"},
3783       {"10010", "Decode_tmtnkq"},
3784       {"10011", "Decode_gpxltv"},
3785       {"10100", "Decode_pnlnzt"},
3786       {"10101", "Decode_pygvrr"},
3787       {"11000", "Visit_addhnb_z_zz"},
3788       {"11001", "Visit_addhnt_z_zz"},
3789       {"11010", "Visit_raddhnb_z_zz"},
3790       {"11011", "Visit_raddhnt_z_zz"},
3791       {"11100", "Visit_subhnb_z_zz"},
3792       {"11101", "Visit_subhnt_z_zz"},
3793       {"11110", "Visit_rsubhnb_z_zz"},
3794       {"11111", "Visit_rsubhnt_z_zz"},
3795     },
3796   },
3797 
3798   { "Decode_phthqj",
3799     {30, 13},
3800     { {"00", "Decode_sntyqy"},
3801       {"01", "Decode_xhlhmh"},
3802       {"10", "Decode_rtrlts"},
3803       {"11", "Decode_jzkqhn"},
3804     },
3805   },
3806 
3807   { "Decode_phtnny",
3808     {18, 17},
3809     { {"0x", "Visit_ld1_asisdlsep_r3_r3"},
3810       {"10", "Visit_ld1_asisdlsep_r3_r3"},
3811       {"11", "Visit_ld1_asisdlsep_i3_i3"},
3812     },
3813   },
3814 
3815   { "Decode_phvnqh",
3816     {30},
3817     { {"0", "Visit_bic_32_log_shift"},
3818       {"1", "Visit_eon_32_log_shift"},
3819     },
3820   },
3821 
3822   { "Decode_phxkzh",
3823     {17, 4},
3824     { {"00", "Visit_fcmlt_p_p_z0"},
3825       {"01", "Visit_fcmle_p_p_z0"},
3826       {"10", "Visit_fcmne_p_p_z0"},
3827     },
3828   },
3829 
3830   { "Decode_pjgkjs",
3831     {18, 17},
3832     { {"00", "Decode_mxnzyr"},
3833     },
3834   },
3835 
3836   { "Decode_pjkylt",
3837     {23, 22},
3838     { {"00", "Visit_fcsel_s_floatsel"},
3839       {"01", "Visit_fcsel_d_floatsel"},
3840       {"11", "Visit_fcsel_h_floatsel"},
3841     },
3842   },
3843 
3844   { "Decode_plktrh",
3845     {30, 23},
3846     { {"00", "Visit_adds_32s_addsub_imm"},
3847       {"10", "Visit_subs_32s_addsub_imm"},
3848     },
3849   },
3850 
3851   { "Decode_plltlx",
3852     {23},
3853     { {"0", "Visit_fadd_asimdsame_only"},
3854       {"1", "Visit_fsub_asimdsame_only"},
3855     },
3856   },
3857 
3858   { "Decode_pmkxlj",
3859     {17},
3860     { {"0", "Visit_st1_asisdlse_r2_2v"},
3861     },
3862   },
3863 
3864   { "Decode_pmrngh",
3865     {30},
3866     { {"0", "Visit_bl_only_branch_imm"},
3867       {"1", "Decode_snkqvp"},
3868     },
3869   },
3870 
3871   { "Decode_pnlnzt",
3872     {23, 18, 17, 16},
3873     { {"0000", "Visit_sqxtunb_z_zz"},
3874     },
3875   },
3876 
3877   { "Decode_pnqxjg",
3878     {4},
3879     { {"0", "Visit_ccmn_32_condcmp_reg"},
3880     },
3881   },
3882 
3883   { "Decode_pnxggm",
3884     {4, 3, 2, 1, 0},
3885     { {"00000", "Visit_fcmp_d_floatcmp"},
3886       {"01000", "Visit_fcmp_dz_floatcmp"},
3887       {"10000", "Visit_fcmpe_d_floatcmp"},
3888       {"11000", "Visit_fcmpe_dz_floatcmp"},
3889     },
3890   },
3891 
3892   { "Decode_pnxgrg",
3893     {30, 23, 22},
3894     { {"000", "Visit_madd_32a_dp_3src"},
3895     },
3896   },
3897 
3898   { "Decode_pnzphx",
3899     {17},
3900     { {"1", "Visit_frecpe_z_z"},
3901     },
3902   },
3903 
3904   { "Decode_pphhym",
3905     {30, 23, 22},
3906     { {"00x", "Visit_add_32_addsub_shift"},
3907       {"010", "Visit_add_32_addsub_shift"},
3908       {"10x", "Visit_sub_32_addsub_shift"},
3909       {"110", "Visit_sub_32_addsub_shift"},
3910     },
3911   },
3912 
3913   { "Decode_ppllxt",
3914     {18, 17},
3915     { {"00", "Visit_ld1_asisdlse_r3_3v"},
3916     },
3917   },
3918 
3919   { "Decode_ppnssm",
3920     {30, 13, 12},
3921     { {"000", "Decode_ktyppm"},
3922       {"001", "Decode_ngzyqj"},
3923       {"010", "Decode_yxnslx"},
3924       {"011", "Decode_nnkxgr"},
3925       {"100", "Decode_kzmvpk"},
3926       {"101", "Decode_thrxph"},
3927       {"110", "Decode_kgpgly"},
3928       {"111", "Decode_yppszx"},
3929     },
3930   },
3931 
3932   { "Decode_pppsmg",
3933     {30},
3934     { {"0", "Decode_xyhmgh"},
3935       {"1", "Decode_rlrjxp"},
3936     },
3937   },
3938 
3939   { "Decode_ppqkym",
3940     {30, 23, 22, 11, 10},
3941     { {"10001", "Visit_stg_64spost_ldsttags"},
3942       {"10010", "Visit_stg_64soffset_ldsttags"},
3943       {"10011", "Visit_stg_64spre_ldsttags"},
3944       {"10100", "Visit_ldg_64loffset_ldsttags"},
3945       {"10101", "Visit_stzg_64spost_ldsttags"},
3946       {"10110", "Visit_stzg_64soffset_ldsttags"},
3947       {"10111", "Visit_stzg_64spre_ldsttags"},
3948       {"11001", "Visit_st2g_64spost_ldsttags"},
3949       {"11010", "Visit_st2g_64soffset_ldsttags"},
3950       {"11011", "Visit_st2g_64spre_ldsttags"},
3951       {"11101", "Visit_stz2g_64spost_ldsttags"},
3952       {"11110", "Visit_stz2g_64soffset_ldsttags"},
3953       {"11111", "Visit_stz2g_64spre_ldsttags"},
3954     },
3955   },
3956 
3957   { "Decode_pqjjsh",
3958     {23, 22, 12, 10},
3959     { {"1000", "Visit_fmlslb_z_zzzi_s"},
3960       {"1001", "Visit_fmlslt_z_zzzi_s"},
3961     },
3962   },
3963 
3964   { "Decode_pqpzkt",
3965     {11, 10, 9, 8, 7, 6},
3966     { {"000000", "Visit_nop_hi_hints"},
3967       {"000001", "Visit_wfe_hi_hints"},
3968       {"000010", "Visit_sev_hi_hints"},
3969       {"000011", "Visit_dgh_hi_hints"},
3970       {"000100", "Visit_pacia1716_hi_hints"},
3971       {"000101", "Visit_pacib1716_hi_hints"},
3972       {"000110", "Visit_autia1716_hi_hints"},
3973       {"000111", "Visit_autib1716_hi_hints"},
3974       {"001000", "Visit_esb_hi_hints"},
3975       {"001001", "Visit_tsb_hc_hints"},
3976       {"001010", "Visit_csdb_hi_hints"},
3977       {"001100", "Visit_paciaz_hi_hints"},
3978       {"001101", "Visit_pacibz_hi_hints"},
3979       {"001110", "Visit_autiaz_hi_hints"},
3980       {"001111", "Visit_autibz_hi_hints"},
3981       {"0100xx", "Visit_bti_hb_hints"},
3982       {"0x1011", "Visit_hint_hm_hints"},
3983       {"10x0xx", "Visit_hint_hm_hints"},
3984       {"10x1xx", "Visit_hint_hm_hints"},
3985       {"1100xx", "Visit_hint_hm_hints"},
3986       {"111011", "Visit_hint_hm_hints"},
3987       {"x1100x", "Visit_hint_hm_hints"},
3988       {"x11010", "Visit_hint_hm_hints"},
3989       {"x1x1xx", "Visit_hint_hm_hints"},
3990     },
3991   },
3992 
3993   { "Decode_pqtjgx",
3994     {23, 22, 13, 12, 11, 10},
3995     { {"01x1x0", "Visit_fcmla_asimdelem_c_h"},
3996       {"0x0001", "Visit_sri_asimdshf_r"},
3997       {"0x0101", "Visit_sli_asimdshf_r"},
3998       {"0x1001", "Visit_sqshlu_asimdshf_r"},
3999       {"0x1101", "Visit_uqshl_asimdshf_r"},
4000       {"10x1x0", "Visit_fcmla_asimdelem_c_s"},
4001       {"xx00x0", "Visit_mls_asimdelem_r"},
4002       {"xx10x0", "Visit_umlsl_asimdelem_l"},
4003     },
4004   },
4005 
4006   { "Decode_prkmty",
4007     {23, 22, 9},
4008     { {"000", "Visit_brkpa_p_p_pp"},
4009       {"010", "Visit_brkpas_p_p_pp"},
4010     },
4011   },
4012 
4013   { "Decode_pslllp",
4014     {30, 23, 22, 20, 19, 12, 11},
4015     { {"0000000", "Visit_movi_asimdimm_d_ds"},
4016       {"1000000", "Visit_movi_asimdimm_d2_d"},
4017       {"1000010", "Visit_fmov_asimdimm_d2_d"},
4018       {"x00x100", "Visit_ucvtf_asimdshf_c"},
4019       {"x00x111", "Visit_fcvtzu_asimdshf_c"},
4020       {"x010x00", "Visit_ucvtf_asimdshf_c"},
4021       {"x010x11", "Visit_fcvtzu_asimdshf_c"},
4022       {"x011100", "Visit_ucvtf_asimdshf_c"},
4023       {"x011111", "Visit_fcvtzu_asimdshf_c"},
4024       {"x0x1000", "Visit_ucvtf_asimdshf_c"},
4025       {"x0x1011", "Visit_fcvtzu_asimdshf_c"},
4026     },
4027   },
4028 
4029   { "Decode_psqpkp",
4030     {17, 4},
4031     { {"00", "Visit_fcmge_p_p_z0"},
4032       {"01", "Visit_fcmgt_p_p_z0"},
4033       {"10", "Visit_fcmeq_p_p_z0"},
4034     },
4035   },
4036 
4037   { "Decode_ptjyqx",
4038     {13},
4039     { {"0", "Visit_fcmuo_p_p_zz"},
4040     },
4041   },
4042 
4043   { "Decode_ptkrvg",
4044     {12},
4045     { {"0", "Visit_ld2_asisdlsop_dx2_r2d"},
4046     },
4047   },
4048 
4049   { "Decode_ptsjnr",
4050     {30, 20, 19, 18, 17, 16, 13},
4051     { {"0000000", "Visit_asr_z_p_zi"},
4052       {"0000010", "Visit_lsr_z_p_zi"},
4053       {"0000110", "Visit_lsl_z_p_zi"},
4054       {"0001000", "Visit_asrd_z_p_zi"},
4055       {"0001100", "Visit_sqshl_z_p_zi"},
4056       {"0001110", "Visit_uqshl_z_p_zi"},
4057       {"0011000", "Visit_srshr_z_p_zi"},
4058       {"0011010", "Visit_urshr_z_p_zi"},
4059       {"0011110", "Visit_sqshlu_z_p_zi"},
4060       {"0100000", "Visit_asr_z_p_zz"},
4061       {"0100001", "Visit_sxtb_z_p_z"},
4062       {"0100010", "Visit_lsr_z_p_zz"},
4063       {"0100011", "Visit_uxtb_z_p_z"},
4064       {"0100101", "Visit_sxth_z_p_z"},
4065       {"0100110", "Visit_lsl_z_p_zz"},
4066       {"0100111", "Visit_uxth_z_p_z"},
4067       {"0101000", "Visit_asrr_z_p_zz"},
4068       {"0101001", "Visit_sxtw_z_p_z"},
4069       {"0101010", "Visit_lsrr_z_p_zz"},
4070       {"0101011", "Visit_uxtw_z_p_z"},
4071       {"0101101", "Visit_abs_z_p_z"},
4072       {"0101110", "Visit_lslr_z_p_zz"},
4073       {"0101111", "Visit_neg_z_p_z"},
4074       {"0110000", "Visit_asr_z_p_zw"},
4075       {"0110001", "Visit_cls_z_p_z"},
4076       {"0110010", "Visit_lsr_z_p_zw"},
4077       {"0110011", "Visit_clz_z_p_z"},
4078       {"0110101", "Visit_cnt_z_p_z"},
4079       {"0110110", "Visit_lsl_z_p_zw"},
4080       {"0110111", "Visit_cnot_z_p_z"},
4081       {"0111001", "Visit_fabs_z_p_z"},
4082       {"0111011", "Visit_fneg_z_p_z"},
4083       {"0111101", "Visit_not_z_p_z"},
4084       {"1000001", "Visit_urecpe_z_p_z"},
4085       {"1000011", "Visit_ursqrte_z_p_z"},
4086       {"1000100", "Visit_srshl_z_p_zz"},
4087       {"1000110", "Visit_urshl_z_p_zz"},
4088       {"1001001", "Visit_sadalp_z_p_z"},
4089       {"1001011", "Visit_uadalp_z_p_z"},
4090       {"1001100", "Visit_srshlr_z_p_zz"},
4091       {"1001110", "Visit_urshlr_z_p_zz"},
4092       {"1010000", "Visit_sqshl_z_p_zz"},
4093       {"1010001", "Visit_sqabs_z_p_z"},
4094       {"1010010", "Visit_uqshl_z_p_zz"},
4095       {"1010011", "Visit_sqneg_z_p_z"},
4096       {"1010100", "Visit_sqrshl_z_p_zz"},
4097       {"1010110", "Visit_uqrshl_z_p_zz"},
4098       {"1011000", "Visit_sqshlr_z_p_zz"},
4099       {"1011010", "Visit_uqshlr_z_p_zz"},
4100       {"1011100", "Visit_sqrshlr_z_p_zz"},
4101       {"1011110", "Visit_uqrshlr_z_p_zz"},
4102       {"1100000", "Visit_shadd_z_p_zz"},
4103       {"1100010", "Visit_uhadd_z_p_zz"},
4104       {"1100011", "Visit_addp_z_p_zz"},
4105       {"1100100", "Visit_shsub_z_p_zz"},
4106       {"1100110", "Visit_uhsub_z_p_zz"},
4107       {"1101000", "Visit_srhadd_z_p_zz"},
4108       {"1101001", "Visit_smaxp_z_p_zz"},
4109       {"1101010", "Visit_urhadd_z_p_zz"},
4110       {"1101011", "Visit_umaxp_z_p_zz"},
4111       {"1101100", "Visit_shsubr_z_p_zz"},
4112       {"1101101", "Visit_sminp_z_p_zz"},
4113       {"1101110", "Visit_uhsubr_z_p_zz"},
4114       {"1101111", "Visit_uminp_z_p_zz"},
4115       {"1110000", "Visit_sqadd_z_p_zz"},
4116       {"1110010", "Visit_uqadd_z_p_zz"},
4117       {"1110100", "Visit_sqsub_z_p_zz"},
4118       {"1110110", "Visit_uqsub_z_p_zz"},
4119       {"1111000", "Visit_suqadd_z_p_zz"},
4120       {"1111010", "Visit_usqadd_z_p_zz"},
4121       {"1111100", "Visit_sqsubr_z_p_zz"},
4122       {"1111110", "Visit_uqsubr_z_p_zz"},
4123     },
4124   },
4125 
4126   { "Decode_ptslzg",
4127     {30, 23, 22, 13, 4},
4128     { {"01000", "Visit_ldr_p_bi"},
4129       {"01100", "Visit_prfb_i_p_bi_s"},
4130       {"01110", "Visit_prfh_i_p_bi_s"},
4131       {"10x0x", "Visit_ld1sw_z_p_bz_d_x32_scaled"},
4132       {"10x1x", "Visit_ldff1sw_z_p_bz_d_x32_scaled"},
4133     },
4134   },
4135 
4136   { "Decode_pvkmmv",
4137     {30, 23, 22, 13, 12, 11, 10},
4138     { {"0000000", "Visit_ldsmax_32_memop"},
4139       {"0000100", "Visit_ldsmin_32_memop"},
4140       {"0001000", "Visit_ldumax_32_memop"},
4141       {"0001100", "Visit_ldumin_32_memop"},
4142       {"000xx10", "Visit_str_32_ldst_regoff"},
4143       {"0010000", "Visit_ldsmaxl_32_memop"},
4144       {"0010100", "Visit_ldsminl_32_memop"},
4145       {"0011000", "Visit_ldumaxl_32_memop"},
4146       {"0011100", "Visit_lduminl_32_memop"},
4147       {"001xx10", "Visit_ldr_32_ldst_regoff"},
4148       {"0100000", "Visit_ldsmaxa_32_memop"},
4149       {"0100100", "Visit_ldsmina_32_memop"},
4150       {"0101000", "Visit_ldumaxa_32_memop"},
4151       {"0101100", "Visit_ldumina_32_memop"},
4152       {"010xx10", "Visit_ldrsw_64_ldst_regoff"},
4153       {"0110000", "Visit_ldsmaxal_32_memop"},
4154       {"0110100", "Visit_ldsminal_32_memop"},
4155       {"0111000", "Visit_ldumaxal_32_memop"},
4156       {"0111100", "Visit_lduminal_32_memop"},
4157       {"1000000", "Visit_ldsmax_64_memop"},
4158       {"1000100", "Visit_ldsmin_64_memop"},
4159       {"1001000", "Visit_ldumax_64_memop"},
4160       {"1001100", "Visit_ldumin_64_memop"},
4161       {"100xx10", "Visit_str_64_ldst_regoff"},
4162       {"1010000", "Visit_ldsmaxl_64_memop"},
4163       {"1010100", "Visit_ldsminl_64_memop"},
4164       {"1011000", "Visit_ldumaxl_64_memop"},
4165       {"1011100", "Visit_lduminl_64_memop"},
4166       {"101xx10", "Visit_ldr_64_ldst_regoff"},
4167       {"10xxx01", "Visit_ldraa_64_ldst_pac"},
4168       {"10xxx11", "Visit_ldraa_64w_ldst_pac"},
4169       {"1100000", "Visit_ldsmaxa_64_memop"},
4170       {"1100100", "Visit_ldsmina_64_memop"},
4171       {"1101000", "Visit_ldumaxa_64_memop"},
4172       {"1101100", "Visit_ldumina_64_memop"},
4173       {"110xx10", "Visit_prfm_p_ldst_regoff"},
4174       {"1110000", "Visit_ldsmaxal_64_memop"},
4175       {"1110100", "Visit_ldsminal_64_memop"},
4176       {"1111000", "Visit_ldumaxal_64_memop"},
4177       {"1111100", "Visit_lduminal_64_memop"},
4178       {"11xxx01", "Visit_ldrab_64_ldst_pac"},
4179       {"11xxx11", "Visit_ldrab_64w_ldst_pac"},
4180     },
4181   },
4182 
4183   { "Decode_pvrylp",
4184     {13, 12},
4185     { {"00", "Visit_sbc_64_addsub_carry"},
4186     },
4187   },
4188 
4189   { "Decode_pxgztg",
4190     {23, 22, 20, 19, 13, 11},
4191     { {"0000x0", "Visit_bic_asimdimm_l_sl"},
4192       {"00x100", "Visit_sli_asimdshf_r"},
4193       {"00x110", "Visit_uqshl_asimdshf_r"},
4194       {"010x00", "Visit_sli_asimdshf_r"},
4195       {"010x10", "Visit_uqshl_asimdshf_r"},
4196       {"011100", "Visit_sli_asimdshf_r"},
4197       {"011110", "Visit_uqshl_asimdshf_r"},
4198       {"0x1000", "Visit_sli_asimdshf_r"},
4199       {"0x1010", "Visit_uqshl_asimdshf_r"},
4200     },
4201   },
4202 
4203   { "Decode_pxkqxn",
4204     {20, 19, 18, 17, 16},
4205     { {"00000", "Visit_cmle_asisdmisc_z"},
4206     },
4207   },
4208 
4209   { "Decode_pxlnhs",
4210     {23, 20, 19, 18, 17, 16},
4211     { {"000001", "Visit_fcvtxn_asimdmisc_n"},
4212       {"x00000", "Visit_uadalp_asimdmisc_p"},
4213     },
4214   },
4215 
4216   { "Decode_pxnnrz",
4217     {20, 19, 18, 17, 16, 13, 12, 3, 2, 1, 0},
4218     { {"00000001101", "Visit_setf16_only_setf"},
4219     },
4220   },
4221 
4222   { "Decode_pxtsvn",
4223     {20, 19, 18, 17, 16},
4224     { {"10000", "Visit_fminp_asisdpair_only_sd"},
4225     },
4226   },
4227 
4228   { "Decode_pxyrpm",
4229     {22, 11},
4230     { {"00", "Visit_sqdmulh_z_zzi_s"},
4231       {"01", "Visit_mul_z_zzi_s"},
4232       {"10", "Visit_sqdmulh_z_zzi_d"},
4233       {"11", "Visit_mul_z_zzi_d"},
4234     },
4235   },
4236 
4237   { "Decode_pxzkjy",
4238     {30},
4239     { {"1", "Decode_yplktv"},
4240     },
4241   },
4242 
4243   { "Decode_pygvrr",
4244     {23, 18, 17, 16},
4245     { {"0000", "Visit_sqxtunt_z_zz"},
4246     },
4247   },
4248 
4249   { "Decode_qghmks",
4250     {13, 12},
4251     { {"00", "Visit_subp_64s_dp_2src"},
4252       {"01", "Visit_irg_64i_dp_2src"},
4253       {"10", "Visit_lslv_64_dp_2src"},
4254       {"11", "Visit_pacga_64p_dp_2src"},
4255     },
4256   },
4257 
4258   { "Decode_qgmngg",
4259     {30, 23},
4260     { {"00", "Visit_orr_64_log_imm"},
4261       {"10", "Visit_ands_64s_log_imm"},
4262       {"11", "Visit_movk_64_movewide"},
4263     },
4264   },
4265 
4266   { "Decode_qgryzh",
4267     {18, 17},
4268     { {"0x", "Visit_st1_asisdlsep_r3_r3"},
4269       {"10", "Visit_st1_asisdlsep_r3_r3"},
4270       {"11", "Visit_st1_asisdlsep_i3_i3"},
4271     },
4272   },
4273 
4274   { "Decode_qgymsy",
4275     {11},
4276     { {"0", "Decode_hmsgpj"},
4277     },
4278   },
4279 
4280   { "Decode_qhgtvk",
4281     {30, 23, 22},
4282     { {"00x", "Visit_adds_32_addsub_shift"},
4283       {"010", "Visit_adds_32_addsub_shift"},
4284       {"10x", "Visit_subs_32_addsub_shift"},
4285       {"110", "Visit_subs_32_addsub_shift"},
4286     },
4287   },
4288 
4289   { "Decode_qhsplz",
4290     {23, 22, 20, 19, 18, 17, 16},
4291     { {"0111001", "Visit_frintn_asimdmiscfp16_r"},
4292       {"0x00001", "Visit_frintn_asimdmisc_r"},
4293       {"1111001", "Visit_frintp_asimdmiscfp16_r"},
4294       {"1x00001", "Visit_frintp_asimdmisc_r"},
4295       {"xx00000", "Visit_cmgt_asimdmisc_z"},
4296     },
4297   },
4298 
4299   { "Decode_qhtqrj",
4300     {30, 23, 22},
4301     { {"000", "Visit_stnp_s_ldstnapair_offs"},
4302       {"001", "Visit_ldnp_s_ldstnapair_offs"},
4303       {"010", "Visit_stp_s_ldstpair_post"},
4304       {"011", "Visit_ldp_s_ldstpair_post"},
4305       {"100", "Visit_stnp_d_ldstnapair_offs"},
4306       {"101", "Visit_ldnp_d_ldstnapair_offs"},
4307       {"110", "Visit_stp_d_ldstpair_post"},
4308       {"111", "Visit_ldp_d_ldstpair_post"},
4309     },
4310   },
4311 
4312   { "Decode_qhtrnn",
4313     {30, 23, 22, 11, 10},
4314     { {"00000", "Visit_stur_32_ldst_unscaled"},
4315       {"00001", "Visit_str_32_ldst_immpost"},
4316       {"00010", "Visit_sttr_32_ldst_unpriv"},
4317       {"00011", "Visit_str_32_ldst_immpre"},
4318       {"00100", "Visit_ldur_32_ldst_unscaled"},
4319       {"00101", "Visit_ldr_32_ldst_immpost"},
4320       {"00110", "Visit_ldtr_32_ldst_unpriv"},
4321       {"00111", "Visit_ldr_32_ldst_immpre"},
4322       {"01000", "Visit_ldursw_64_ldst_unscaled"},
4323       {"01001", "Visit_ldrsw_64_ldst_immpost"},
4324       {"01010", "Visit_ldtrsw_64_ldst_unpriv"},
4325       {"01011", "Visit_ldrsw_64_ldst_immpre"},
4326       {"10000", "Visit_stur_64_ldst_unscaled"},
4327       {"10001", "Visit_str_64_ldst_immpost"},
4328       {"10010", "Visit_sttr_64_ldst_unpriv"},
4329       {"10011", "Visit_str_64_ldst_immpre"},
4330       {"10100", "Visit_ldur_64_ldst_unscaled"},
4331       {"10101", "Visit_ldr_64_ldst_immpost"},
4332       {"10110", "Visit_ldtr_64_ldst_unpriv"},
4333       {"10111", "Visit_ldr_64_ldst_immpre"},
4334       {"11000", "Visit_prfum_p_ldst_unscaled"},
4335     },
4336   },
4337 
4338   { "Decode_qhxzxl",
4339     {17},
4340     { {"0", "Visit_ld1_asisdlse_r2_2v"},
4341     },
4342   },
4343 
4344   { "Decode_qjyvln",
4345     {20, 19, 18, 17, 16, 13, 12, 9, 8, 7, 6, 5},
4346     { {"000010011111", "Visit_xpaci_64z_dp_1src"},
4347     },
4348   },
4349 
4350   { "Decode_qkyjhg",
4351     {30},
4352     { {"0", "Visit_ldr_32_loadlit"},
4353       {"1", "Visit_ldr_64_loadlit"},
4354     },
4355   },
4356 
4357   { "Decode_qkzlkj",
4358     {23, 22, 20, 19, 11},
4359     { {"00010", "Visit_sshr_asisdshf_r"},
4360       {"001x0", "Visit_sshr_asisdshf_r"},
4361       {"01xx0", "Visit_sshr_asisdshf_r"},
4362     },
4363   },
4364 
4365   { "Decode_qljhnp",
4366     {22},
4367     { {"0", "Visit_sqdmullt_z_zzi_s"},
4368       {"1", "Visit_sqdmullt_z_zzi_d"},
4369     },
4370   },
4371 
4372   { "Decode_qlqhzg",
4373     {20},
4374     { {"0", "Decode_hzmlps"},
4375       {"1", "Visit_msr_sr_systemmove"},
4376     },
4377   },
4378 
4379   { "Decode_qlxksl",
4380     {30},
4381     { {"0", "Decode_hrxyts"},
4382       {"1", "Decode_tytvjk"},
4383     },
4384   },
4385 
4386   { "Decode_qmgtyq",
4387     {17},
4388     { {"0", "Visit_ld2_asisdlse_r2"},
4389     },
4390   },
4391 
4392   { "Decode_qmjqhq",
4393     {9, 8, 7, 6, 5},
4394     { {"00000", "Visit_fmov_h_floatimm"},
4395     },
4396   },
4397 
4398   { "Decode_qmqmpj",
4399     {12, 10},
4400     { {"00", "Decode_nxqygl"},
4401       {"01", "Decode_skglrt"},
4402       {"10", "Decode_sjlpxn"},
4403       {"11", "Decode_qzxvsk"},
4404     },
4405   },
4406 
4407   { "Decode_qmrgkn",
4408     {30},
4409     { {"0", "Visit_bl_only_branch_imm"},
4410       {"1", "Decode_hsvgnt"},
4411     },
4412   },
4413 
4414   { "Decode_qmzqsy",
4415     {20, 19, 18, 17},
4416     { {"0000", "Decode_nykvly"},
4417     },
4418   },
4419 
4420   { "Decode_qnprqt",
4421     {4},
4422     { {"0", "Visit_eor_p_p_pp_z"},
4423       {"1", "Visit_sel_p_p_pp"},
4424     },
4425   },
4426 
4427   { "Decode_qnsxkj",
4428     {20, 19, 18, 17, 16, 13},
4429     { {"000000", "Visit_fabs_d_floatdp1"},
4430       {"000010", "Visit_fsqrt_d_floatdp1"},
4431       {"000110", "Visit_fcvt_hd_floatdp1"},
4432       {"001000", "Visit_frintp_d_floatdp1"},
4433       {"001010", "Visit_frintz_d_floatdp1"},
4434       {"001110", "Visit_frinti_d_floatdp1"},
4435       {"010000", "Visit_frint32x_d_floatdp1"},
4436       {"010010", "Visit_frint64x_d_floatdp1"},
4437     },
4438   },
4439 
4440   { "Decode_qntssm",
4441     {30, 11, 10},
4442     { {"000", "Decode_hxrtsq"},
4443       {"001", "Decode_ygxhyg"},
4444       {"010", "Decode_nhhpqz"},
4445       {"011", "Decode_vjymzn"},
4446       {"101", "Decode_gszxkp"},
4447       {"110", "Decode_nssrnm"},
4448       {"111", "Decode_jrsptt"},
4449     },
4450   },
4451 
4452   { "Decode_qntygx",
4453     {13, 12, 11, 10},
4454     { {"0000", "Visit_uaddl_asimddiff_l"},
4455       {"0001", "Visit_uhadd_asimdsame_only"},
4456       {"0010", "Decode_nzqkky"},
4457       {"0011", "Visit_uqadd_asimdsame_only"},
4458       {"0100", "Visit_uaddw_asimddiff_w"},
4459       {"0101", "Visit_urhadd_asimdsame_only"},
4460       {"0111", "Decode_nthvqx"},
4461       {"1000", "Visit_usubl_asimddiff_l"},
4462       {"1001", "Visit_uhsub_asimdsame_only"},
4463       {"1010", "Decode_srmhlk"},
4464       {"1011", "Visit_uqsub_asimdsame_only"},
4465       {"1100", "Visit_usubw_asimddiff_w"},
4466       {"1101", "Visit_cmhi_asimdsame_only"},
4467       {"1110", "Decode_mvgsjr"},
4468       {"1111", "Visit_cmhs_asimdsame_only"},
4469     },
4470   },
4471 
4472   { "Decode_qnvgmh",
4473     {23},
4474     { {"0", "Visit_fmul_asimdsame_only"},
4475     },
4476   },
4477 
4478   { "Decode_qptvrm",
4479     {23},
4480     { {"0", "Visit_fmaxnmp_asimdsame_only"},
4481       {"1", "Visit_fminnmp_asimdsame_only"},
4482     },
4483   },
4484 
4485   { "Decode_qpvgnh",
4486     {30, 23, 22, 20, 13},
4487     { {"00001", "Visit_ld2b_z_p_bi_contiguous"},
4488       {"000x0", "Visit_ld2b_z_p_br_contiguous"},
4489       {"00101", "Visit_ld4b_z_p_bi_contiguous"},
4490       {"001x0", "Visit_ld4b_z_p_br_contiguous"},
4491       {"01001", "Visit_ld2h_z_p_bi_contiguous"},
4492       {"010x0", "Visit_ld2h_z_p_br_contiguous"},
4493       {"01101", "Visit_ld4h_z_p_bi_contiguous"},
4494       {"011x0", "Visit_ld4h_z_p_br_contiguous"},
4495       {"10011", "Visit_st2b_z_p_bi_contiguous"},
4496       {"10111", "Visit_st4b_z_p_bi_contiguous"},
4497       {"10x01", "Visit_st1b_z_p_bi"},
4498       {"11011", "Visit_st2h_z_p_bi_contiguous"},
4499       {"110x0", "Visit_st1h_z_p_bz_d_x32_scaled"},
4500       {"11111", "Visit_st4h_z_p_bi_contiguous"},
4501       {"111x0", "Visit_st1h_z_p_bz_s_x32_scaled"},
4502       {"11x01", "Visit_st1h_z_p_bi"},
4503     },
4504   },
4505 
4506   { "Decode_qpzynz",
4507     {23, 22},
4508     { {"00", "Decode_jkpsxk"},
4509     },
4510   },
4511 
4512   { "Decode_qqpkkm",
4513     {9, 8, 7, 6, 5, 1, 0},
4514     { {"1111111", "Visit_eretaa_64e_branch_reg"},
4515     },
4516   },
4517 
4518   { "Decode_qqpqnm",
4519     {18, 17},
4520     { {"0x", "Visit_st1_asisdlsop_sx1_r1s"},
4521       {"10", "Visit_st1_asisdlsop_sx1_r1s"},
4522       {"11", "Visit_st1_asisdlsop_s1_i1s"},
4523     },
4524   },
4525 
4526   { "Decode_qqsmlt",
4527     {4},
4528     { {"0", "Visit_ccmp_32_condcmp_imm"},
4529     },
4530   },
4531 
4532   { "Decode_qqtpln",
4533     {17},
4534     { {"0", "Visit_ld1_asisdlsop_bx1_r1b"},
4535       {"1", "Visit_ld1_asisdlsop_b1_i1b"},
4536     },
4537   },
4538 
4539   { "Decode_qqyryl",
4540     {30, 23, 22, 13, 4},
4541     { {"00x0x", "Visit_ld1w_z_p_bz_s_x32_unscaled"},
4542       {"00x1x", "Visit_ldff1w_z_p_bz_s_x32_unscaled"},
4543       {"0100x", "Visit_ldr_z_bi"},
4544       {"01100", "Visit_prfw_i_p_bi_s"},
4545       {"01110", "Visit_prfd_i_p_bi_s"},
4546       {"10x0x", "Visit_ld1w_z_p_bz_d_x32_unscaled"},
4547       {"10x1x", "Visit_ldff1w_z_p_bz_d_x32_unscaled"},
4548       {"11x0x", "Visit_ld1d_z_p_bz_d_x32_unscaled"},
4549       {"11x1x", "Visit_ldff1d_z_p_bz_d_x32_unscaled"},
4550     },
4551   },
4552 
4553   { "Decode_qqzrhz",
4554     {23, 22, 20, 19, 18, 17, 16},
4555     { {"0111001", "Visit_fcvtau_asimdmiscfp16_r"},
4556       {"0x00001", "Visit_fcvtau_asimdmisc_r"},
4557       {"0x10000", "Visit_fmaxnmv_asimdall_only_sd"},
4558       {"1111000", "Visit_fcmge_asimdmiscfp16_fz"},
4559       {"1x00000", "Visit_fcmge_asimdmisc_fz"},
4560       {"1x00001", "Visit_ursqrte_asimdmisc_r"},
4561       {"1x10000", "Visit_fminnmv_asimdall_only_sd"},
4562     },
4563   },
4564 
4565   { "Decode_qrygny",
4566     {30, 23, 22, 20, 13},
4567     { {"00001", "Visit_ld1b_z_p_bi_u8"},
4568       {"00011", "Visit_ldnf1b_z_p_bi_u8"},
4569       {"00101", "Visit_ld1b_z_p_bi_u32"},
4570       {"00111", "Visit_ldnf1b_z_p_bi_u32"},
4571       {"01001", "Visit_ld1sw_z_p_bi_s64"},
4572       {"01011", "Visit_ldnf1sw_z_p_bi_s64"},
4573       {"01101", "Visit_ld1h_z_p_bi_u32"},
4574       {"01111", "Visit_ldnf1h_z_p_bi_u32"},
4575       {"100x0", "Visit_st1b_z_p_bz_d_x32_unscaled"},
4576       {"100x1", "Visit_st1b_z_p_bz_d_64_unscaled"},
4577       {"101x0", "Visit_st1b_z_p_bz_s_x32_unscaled"},
4578       {"101x1", "Visit_st1b_z_p_ai_d"},
4579       {"110x0", "Visit_st1h_z_p_bz_d_x32_unscaled"},
4580       {"110x1", "Visit_st1h_z_p_bz_d_64_unscaled"},
4581       {"111x0", "Visit_st1h_z_p_bz_s_x32_unscaled"},
4582       {"111x1", "Visit_st1h_z_p_ai_d"},
4583     },
4584   },
4585 
4586   { "Decode_qrykhm",
4587     {12},
4588     { {"0", "Visit_st4_asisdlsop_dx4_r4d"},
4589     },
4590   },
4591 
4592   { "Decode_qsnqpz",
4593     {18, 17},
4594     { {"0x", "Visit_ld4_asisdlsop_sx4_r4s"},
4595       {"10", "Visit_ld4_asisdlsop_sx4_r4s"},
4596       {"11", "Visit_ld4_asisdlsop_s4_i4s"},
4597     },
4598   },
4599 
4600   { "Decode_qsqqxg",
4601     {30, 23, 22, 13, 12, 11, 10},
4602     { {"1010000", "Visit_sha512h_qqv_cryptosha512_3"},
4603       {"1010001", "Visit_sha512h2_qqv_cryptosha512_3"},
4604       {"1010010", "Visit_sha512su1_vvv2_cryptosha512_3"},
4605       {"1010011", "Visit_rax1_vvv2_cryptosha512_3"},
4606     },
4607   },
4608 
4609   { "Decode_qsrlql",
4610     {30, 23, 22, 13, 12, 11, 10},
4611     { {"010xx00", "Visit_csel_32_condsel"},
4612       {"010xx01", "Visit_csinc_32_condsel"},
4613       {"0110000", "Visit_crc32b_32c_dp_2src"},
4614       {"0110001", "Visit_crc32h_32c_dp_2src"},
4615       {"0110010", "Visit_crc32w_32c_dp_2src"},
4616       {"0110100", "Visit_crc32cb_32c_dp_2src"},
4617       {"0110101", "Visit_crc32ch_32c_dp_2src"},
4618       {"0110110", "Visit_crc32cw_32c_dp_2src"},
4619       {"110xx00", "Visit_csinv_32_condsel"},
4620       {"110xx01", "Visit_csneg_32_condsel"},
4621     },
4622   },
4623 
4624   { "Decode_qsrtzz",
4625     {30},
4626     { {"0", "Visit_bl_only_branch_imm"},
4627       {"1", "Decode_lvshqt"},
4628     },
4629   },
4630 
4631   { "Decode_qssyls",
4632     {20, 19, 18, 17, 16, 13, 12},
4633     { {"0000000", "Visit_stzgm_64bulk_ldsttags"},
4634     },
4635   },
4636 
4637   { "Decode_qsxpyq",
4638     {20, 19, 18, 17, 16, 13, 12, 4, 3, 2, 1, 0},
4639     { {"000000001101", "Visit_setf8_only_setf"},
4640     },
4641   },
4642 
4643   { "Decode_qsygjs",
4644     {30, 23, 22, 12, 11, 10},
4645     { {"0000xx", "Visit_add_32_addsub_ext"},
4646       {"000100", "Visit_add_32_addsub_ext"},
4647       {"1000xx", "Visit_sub_32_addsub_ext"},
4648       {"100100", "Visit_sub_32_addsub_ext"},
4649     },
4650   },
4651 
4652   { "Decode_qtgvhn",
4653     {17},
4654     { {"0", "Visit_ld4_asisdlsop_bx4_r4b"},
4655       {"1", "Visit_ld4_asisdlsop_b4_i4b"},
4656     },
4657   },
4658 
4659   { "Decode_qtjzhs",
4660     {17},
4661     { {"0", "Visit_ld1_asisdlse_r4_4v"},
4662     },
4663   },
4664 
4665   { "Decode_qtknlp",
4666     {30, 11, 10},
4667     { {"000", "Decode_skpjrp"},
4668       {"001", "Decode_sjnqvx"},
4669       {"011", "Decode_rgnxpp"},
4670       {"100", "Decode_rtlzxv"},
4671       {"101", "Decode_zvlxrl"},
4672       {"110", "Decode_ynnrny"},
4673       {"111", "Decode_nlkkyx"},
4674     },
4675   },
4676 
4677   { "Decode_qtkpxg",
4678     {20},
4679     { {"0", "Decode_srggzy"},
4680       {"1", "Visit_mrs_rs_systemmove"},
4681     },
4682   },
4683 
4684   { "Decode_qtmjkr",
4685     {23},
4686     { {"0", "Visit_fdiv_asimdsame_only"},
4687     },
4688   },
4689 
4690   { "Decode_qtxpky",
4691     {4},
4692     { {"0", "Visit_cmphs_p_p_zi"},
4693       {"1", "Visit_cmphi_p_p_zi"},
4694     },
4695   },
4696 
4697   { "Decode_qtxypt",
4698     {9, 8, 7, 6, 5, 1, 0},
4699     { {"1111111", "Visit_retab_64e_branch_reg"},
4700     },
4701   },
4702 
4703   { "Decode_qtystr",
4704     {23, 22, 20, 19, 18, 17, 16},
4705     { {"0111001", "Visit_scvtf_asimdmiscfp16_r"},
4706       {"0x00001", "Visit_scvtf_asimdmisc_r"},
4707       {"1111000", "Visit_fcmeq_asimdmiscfp16_fz"},
4708       {"1111001", "Visit_frecpe_asimdmiscfp16_r"},
4709       {"1x00000", "Visit_fcmeq_asimdmisc_fz"},
4710       {"1x00001", "Visit_frecpe_asimdmisc_r"},
4711     },
4712   },
4713 
4714   { "Decode_qvlnll",
4715     {22, 20, 11},
4716     { {"010", "Visit_decw_r_rs"},
4717       {"110", "Visit_decd_r_rs"},
4718     },
4719   },
4720 
4721   { "Decode_qvlytr",
4722     {23, 22, 20, 19, 18, 17, 16},
4723     { {"0x00001", "Visit_frint64x_asimdmisc_r"},
4724       {"0x10000", "Visit_fmaxv_asimdall_only_sd"},
4725       {"1111000", "Visit_fneg_asimdmiscfp16_r"},
4726       {"1111001", "Visit_fsqrt_asimdmiscfp16_r"},
4727       {"1x00000", "Visit_fneg_asimdmisc_r"},
4728       {"1x00001", "Visit_fsqrt_asimdmisc_r"},
4729       {"1x10000", "Visit_fminv_asimdall_only_sd"},
4730     },
4731   },
4732 
4733   { "Decode_qvsypn",
4734     {30, 23, 22, 20, 13},
4735     { {"00001", "Visit_ldnt1w_z_p_bi_contiguous"},
4736       {"000x0", "Visit_ldnt1w_z_p_br_contiguous"},
4737       {"00101", "Visit_ld3w_z_p_bi_contiguous"},
4738       {"001x0", "Visit_ld3w_z_p_br_contiguous"},
4739       {"01001", "Visit_ldnt1d_z_p_bi_contiguous"},
4740       {"010x0", "Visit_ldnt1d_z_p_br_contiguous"},
4741       {"01101", "Visit_ld3d_z_p_bi_contiguous"},
4742       {"011x0", "Visit_ld3d_z_p_br_contiguous"},
4743       {"10011", "Visit_stnt1w_z_p_bi_contiguous"},
4744       {"100x0", "Visit_st1w_z_p_bz_d_x32_unscaled"},
4745       {"10111", "Visit_st3w_z_p_bi_contiguous"},
4746       {"101x0", "Visit_st1w_z_p_bz_s_x32_unscaled"},
4747       {"10x01", "Visit_st1w_z_p_bi"},
4748       {"11011", "Visit_stnt1d_z_p_bi_contiguous"},
4749       {"110x0", "Visit_st1d_z_p_bz_d_x32_unscaled"},
4750       {"11111", "Visit_st3d_z_p_bi_contiguous"},
4751       {"11x01", "Visit_st1d_z_p_bi"},
4752     },
4753   },
4754 
4755   { "Decode_qvtxpr",
4756     {20, 9, 4},
4757     { {"000", "Visit_uzp1_p_pp"},
4758     },
4759   },
4760 
4761   { "Decode_qxrzgv",
4762     {17},
4763     { {"0", "Visit_ld1_asisdlsep_r2_r2"},
4764       {"1", "Visit_ld1_asisdlsep_i2_i2"},
4765     },
4766   },
4767 
4768   { "Decode_qxtvzy",
4769     {13, 12, 11, 10},
4770     { {"0000", "Visit_umlal_asimddiff_l"},
4771       {"0001", "Visit_sub_asimdsame_only"},
4772       {"0010", "Decode_gznnvh"},
4773       {"0011", "Visit_cmeq_asimdsame_only"},
4774       {"0101", "Visit_mls_asimdsame_only"},
4775       {"0110", "Decode_vsqlkr"},
4776       {"0111", "Visit_pmul_asimdsame_only"},
4777       {"1000", "Visit_umlsl_asimddiff_l"},
4778       {"1001", "Visit_umaxp_asimdsame_only"},
4779       {"1010", "Decode_gggyqx"},
4780       {"1011", "Visit_uminp_asimdsame_only"},
4781       {"1101", "Visit_sqrdmulh_asimdsame_only"},
4782       {"1110", "Decode_slnkst"},
4783     },
4784   },
4785 
4786   { "Decode_qyjvqr",
4787     {23, 18, 17, 16},
4788     { {"0000", "Visit_sqxtnt_z_zz"},
4789     },
4790   },
4791 
4792   { "Decode_qytrjj",
4793     {30, 23, 22},
4794     { {"100", "Visit_bcax_vvv16_crypto4"},
4795     },
4796   },
4797 
4798   { "Decode_qzjnpr",
4799     {30, 23, 22, 20, 19, 18, 17, 16},
4800     { {"00000000", "Visit_udf_only_perm_undef"},
4801     },
4802   },
4803 
4804   { "Decode_qzrjss",
4805     {18, 17, 12},
4806     { {"0x0", "Visit_st3_asisdlsop_dx3_r3d"},
4807       {"100", "Visit_st3_asisdlsop_dx3_r3d"},
4808       {"110", "Visit_st3_asisdlsop_d3_i3d"},
4809     },
4810   },
4811 
4812   { "Decode_qzsthq",
4813     {30, 23, 22},
4814     { {"000", "Visit_strb_32_ldst_pos"},
4815       {"001", "Visit_ldrb_32_ldst_pos"},
4816       {"010", "Visit_ldrsb_64_ldst_pos"},
4817       {"011", "Visit_ldrsb_32_ldst_pos"},
4818       {"100", "Visit_strh_32_ldst_pos"},
4819       {"101", "Visit_ldrh_32_ldst_pos"},
4820       {"110", "Visit_ldrsh_64_ldst_pos"},
4821       {"111", "Visit_ldrsh_32_ldst_pos"},
4822     },
4823   },
4824 
4825   { "Decode_qzxvsk",
4826     {23, 22, 20, 19, 13, 11},
4827     { {"0000x0", "Visit_bic_asimdimm_l_sl"},
4828       {"00x100", "Visit_usra_asimdshf_r"},
4829       {"00x110", "Visit_ursra_asimdshf_r"},
4830       {"010x00", "Visit_usra_asimdshf_r"},
4831       {"010x10", "Visit_ursra_asimdshf_r"},
4832       {"011100", "Visit_usra_asimdshf_r"},
4833       {"011110", "Visit_ursra_asimdshf_r"},
4834       {"0x1000", "Visit_usra_asimdshf_r"},
4835       {"0x1010", "Visit_ursra_asimdshf_r"},
4836     },
4837   },
4838 
4839   { "Decode_qzzlhq",
4840     {30, 23, 22},
4841     { {"000", "Visit_and_32_log_imm"},
4842       {"010", "Visit_movn_32_movewide"},
4843       {"100", "Visit_eor_32_log_imm"},
4844       {"110", "Visit_movz_32_movewide"},
4845     },
4846   },
4847 
4848   { "Decode_qzzlpv",
4849     {13, 12},
4850     { {"01", "Visit_gmi_64g_dp_2src"},
4851       {"10", "Visit_lsrv_64_dp_2src"},
4852     },
4853   },
4854 
4855   { "Decode_rgjqzs",
4856     {30, 23, 22},
4857     { {"001", "Visit_sbfm_64m_bitfield"},
4858       {"101", "Visit_ubfm_64m_bitfield"},
4859     },
4860   },
4861 
4862   { "Decode_rgnxpp",
4863     {23, 22},
4864     { {"00", "Visit_fcsel_s_floatsel"},
4865       {"01", "Visit_fcsel_d_floatsel"},
4866       {"11", "Visit_fcsel_h_floatsel"},
4867     },
4868   },
4869 
4870   { "Decode_rgztzl",
4871     {20, 19, 18, 17, 16},
4872     { {"00000", "Visit_saddlp_asimdmisc_p"},
4873       {"00001", "Visit_xtn_asimdmisc_n"},
4874     },
4875   },
4876 
4877   { "Decode_rhhrhg",
4878     {30, 13, 4},
4879     { {"000", "Visit_cmphs_p_p_zw"},
4880       {"001", "Visit_cmphi_p_p_zw"},
4881       {"010", "Visit_cmplo_p_p_zw"},
4882       {"011", "Visit_cmpls_p_p_zw"},
4883     },
4884   },
4885 
4886   { "Decode_rhmxyp",
4887     {20, 9, 4},
4888     { {"000", "Visit_trn1_p_pp"},
4889     },
4890   },
4891 
4892   { "Decode_rhpmjz",
4893     {12, 11},
4894     { {"00", "Visit_incp_z_p_z"},
4895       {"01", "Visit_incp_r_p_r"},
4896       {"10", "Decode_mpstrr"},
4897     },
4898   },
4899 
4900   { "Decode_rhttgj",
4901     {12, 10},
4902     { {"00", "Decode_xxpzrl"},
4903       {"01", "Decode_vlzrlm"},
4904       {"10", "Decode_vxylhh"},
4905       {"11", "Decode_pxgztg"},
4906     },
4907   },
4908 
4909   { "Decode_rhvksm",
4910     {23, 22, 20, 19, 18, 17, 16},
4911     { {"0111001", "Visit_fcvtnu_asisdmiscfp16_r"},
4912       {"0x00001", "Visit_fcvtnu_asisdmisc_r"},
4913       {"1111001", "Visit_fcvtpu_asisdmiscfp16_r"},
4914       {"1x00001", "Visit_fcvtpu_asisdmisc_r"},
4915     },
4916   },
4917 
4918   { "Decode_rhzhyz",
4919     {13, 12, 4},
4920     { {"000", "Visit_rmif_only_rmif"},
4921     },
4922   },
4923 
4924   { "Decode_rjmyyl",
4925     {20, 19, 18, 17, 16, 13},
4926     { {"000000", "Visit_fmov_s_floatdp1"},
4927       {"000010", "Visit_fneg_s_floatdp1"},
4928       {"001000", "Visit_frintn_s_floatdp1"},
4929       {"001010", "Visit_frintm_s_floatdp1"},
4930       {"001100", "Visit_frinta_s_floatdp1"},
4931       {"001110", "Visit_frintx_s_floatdp1"},
4932       {"010000", "Visit_frint32z_s_floatdp1"},
4933       {"010010", "Visit_frint64z_s_floatdp1"},
4934     },
4935   },
4936 
4937   { "Decode_rjyrnt",
4938     {4},
4939     { {"0", "Visit_cmpge_p_p_zi"},
4940       {"1", "Visit_cmpgt_p_p_zi"},
4941     },
4942   },
4943 
4944   { "Decode_rjysnh",
4945     {18, 17, 16, 9, 8, 7, 6},
4946     { {"0000000", "Visit_fadd_z_p_zs"},
4947       {"0010000", "Visit_fsub_z_p_zs"},
4948       {"0100000", "Visit_fmul_z_p_zs"},
4949       {"0110000", "Visit_fsubr_z_p_zs"},
4950       {"1000000", "Visit_fmaxnm_z_p_zs"},
4951       {"1010000", "Visit_fminnm_z_p_zs"},
4952       {"1100000", "Visit_fmax_z_p_zs"},
4953       {"1110000", "Visit_fmin_z_p_zs"},
4954     },
4955   },
4956 
4957   { "Decode_rkqtvs",
4958     {23, 22, 13},
4959     { {"100", "Visit_fmlal_asimdelem_lh"},
4960       {"xx1", "Visit_smlal_asimdelem_l"},
4961     },
4962   },
4963 
4964   { "Decode_rkrltp",
4965     {17},
4966     { {"0", "Visit_st3_asisdlso_b3_3b"},
4967     },
4968   },
4969 
4970   { "Decode_rksxpn",
4971     {30, 23, 22, 11, 10},
4972     { {"00010", "Visit_str_b_ldst_regoff"},
4973       {"00110", "Visit_ldr_b_ldst_regoff"},
4974       {"01010", "Visit_str_q_ldst_regoff"},
4975       {"01110", "Visit_ldr_q_ldst_regoff"},
4976       {"10010", "Visit_str_h_ldst_regoff"},
4977       {"10110", "Visit_ldr_h_ldst_regoff"},
4978     },
4979   },
4980 
4981   { "Decode_rkvyqk",
4982     {23, 22, 20, 19, 13, 11},
4983     { {"0000x0", "Visit_movi_asimdimm_l_hl"},
4984       {"00x100", "Visit_shrn_asimdshf_n"},
4985       {"00x101", "Visit_rshrn_asimdshf_n"},
4986       {"00x110", "Visit_sshll_asimdshf_l"},
4987       {"010x00", "Visit_shrn_asimdshf_n"},
4988       {"010x01", "Visit_rshrn_asimdshf_n"},
4989       {"010x10", "Visit_sshll_asimdshf_l"},
4990       {"011100", "Visit_shrn_asimdshf_n"},
4991       {"011101", "Visit_rshrn_asimdshf_n"},
4992       {"011110", "Visit_sshll_asimdshf_l"},
4993       {"0x1000", "Visit_shrn_asimdshf_n"},
4994       {"0x1001", "Visit_rshrn_asimdshf_n"},
4995       {"0x1010", "Visit_sshll_asimdshf_l"},
4996     },
4997   },
4998 
4999   { "Decode_rlrjxp",
5000     {13, 4},
5001     { {"00", "Visit_fcmge_p_p_zz"},
5002       {"01", "Visit_fcmgt_p_p_zz"},
5003       {"10", "Visit_fcmeq_p_p_zz"},
5004       {"11", "Visit_fcmne_p_p_zz"},
5005     },
5006   },
5007 
5008   { "Decode_rlyvpn",
5009     {23, 12, 11, 10},
5010     { {"0000", "Visit_sqshrunb_z_zi"},
5011       {"0001", "Visit_sqshrunt_z_zi"},
5012       {"0010", "Visit_sqrshrunb_z_zi"},
5013       {"0011", "Visit_sqrshrunt_z_zi"},
5014       {"0100", "Visit_shrnb_z_zi"},
5015       {"0101", "Visit_shrnt_z_zi"},
5016       {"0110", "Visit_rshrnb_z_zi"},
5017       {"0111", "Visit_rshrnt_z_zi"},
5018     },
5019   },
5020 
5021   { "Decode_rmltms",
5022     {9, 8, 7, 6, 5, 1, 0},
5023     { {"1111100", "Visit_eret_64e_branch_reg"},
5024     },
5025   },
5026 
5027   { "Decode_rmmmjj",
5028     {30, 23, 22},
5029     { {"000", "Visit_smaddl_64wa_dp_3src"},
5030       {"010", "Visit_umaddl_64wa_dp_3src"},
5031     },
5032   },
5033 
5034   { "Decode_rmxjsn",
5035     {30},
5036     { {"0", "Visit_orr_64_log_shift"},
5037       {"1", "Visit_ands_64_log_shift"},
5038     },
5039   },
5040 
5041   { "Decode_rnktts",
5042     {23, 22},
5043     { {"00", "Visit_and_asimdsame_only"},
5044       {"01", "Visit_bic_asimdsame_only"},
5045       {"10", "Visit_orr_asimdsame_only"},
5046       {"11", "Visit_orn_asimdsame_only"},
5047     },
5048   },
5049 
5050   { "Decode_rnqtmt",
5051     {30},
5052     { {"0", "Decode_zyjjgs"},
5053       {"1", "Decode_lrntmz"},
5054     },
5055   },
5056 
5057   { "Decode_rnrzsj",
5058     {20, 18, 17},
5059     { {"000", "Decode_lgglzy"},
5060     },
5061   },
5062 
5063   { "Decode_rnypvh",
5064     {17},
5065     { {"0", "Visit_st1_asisdlsop_bx1_r1b"},
5066       {"1", "Visit_st1_asisdlsop_b1_i1b"},
5067     },
5068   },
5069 
5070   { "Decode_rpmrkq",
5071     {23},
5072     { {"0", "Visit_fcmeq_asimdsame_only"},
5073     },
5074   },
5075 
5076   { "Decode_rpqgjl",
5077     {18, 17, 16, 13, 12, 7, 4, 3, 2, 1, 0},
5078     { {"00000011111", "Decode_kpxtsp"},
5079     },
5080   },
5081 
5082   { "Decode_rpzykx",
5083     {11},
5084     { {"0", "Decode_svvyrz"},
5085     },
5086   },
5087 
5088   { "Decode_rqhryp",
5089     {12, 10},
5090     { {"00", "Decode_kjpxvh"},
5091       {"01", "Decode_mxvjxx"},
5092       {"10", "Visit_sm4ekey_z_zz"},
5093       {"11", "Visit_rax1_z_zz"},
5094     },
5095   },
5096 
5097   { "Decode_rshyht",
5098     {13},
5099     { {"0", "Visit_facge_p_p_zz"},
5100       {"1", "Visit_facgt_p_p_zz"},
5101     },
5102   },
5103 
5104   { "Decode_rsqmgk",
5105     {23, 22, 20, 19, 18, 17, 16},
5106     { {"0000000", "Visit_movprfx_z_z"},
5107     },
5108   },
5109 
5110   { "Decode_rsyhtj",
5111     {13, 12, 11, 10},
5112     { {"0001", "Visit_ushl_asisdsame_only"},
5113       {"0010", "Decode_gxnlxg"},
5114       {"0011", "Visit_uqshl_asisdsame_only"},
5115       {"0101", "Visit_urshl_asisdsame_only"},
5116       {"0111", "Visit_uqrshl_asisdsame_only"},
5117       {"1010", "Decode_msnsjp"},
5118       {"1110", "Decode_llnzlv"},
5119     },
5120   },
5121 
5122   { "Decode_rsyjqj",
5123     {23, 22, 20, 19, 18, 17, 16},
5124     { {"0010000", "Visit_fmaxv_asimdall_only_h"},
5125       {"0x00001", "Visit_frint64z_asimdmisc_r"},
5126       {"1010000", "Visit_fminv_asimdall_only_h"},
5127       {"1111000", "Visit_fabs_asimdmiscfp16_r"},
5128       {"1x00000", "Visit_fabs_asimdmisc_r"},
5129     },
5130   },
5131 
5132   { "Decode_rsyzrs",
5133     {22},
5134     { {"0", "Visit_str_64_ldst_regoff"},
5135       {"1", "Visit_ldr_64_ldst_regoff"},
5136     },
5137   },
5138 
5139   { "Decode_rtgkkg",
5140     {30, 23, 22, 13, 12, 11, 10},
5141     { {"1101001", "Visit_smmla_asimdsame2_g"},
5142       {"1101011", "Visit_usmmla_asimdsame2_g"},
5143       {"x100111", "Visit_usdot_asimdsame2_d"},
5144       {"xxx0101", "Visit_sdot_asimdsame2_d"},
5145     },
5146   },
5147 
5148   { "Decode_rtlzxv",
5149     {13, 12},
5150     { {"01", "Visit_sqdmull_asisddiff_only"},
5151     },
5152   },
5153 
5154   { "Decode_rtpztp",
5155     {22},
5156     { {"0", "Visit_umullb_z_zzi_s"},
5157       {"1", "Visit_umullb_z_zzi_d"},
5158     },
5159   },
5160 
5161   { "Decode_rtrlts",
5162     {23, 22, 12, 11, 10},
5163     { {"01000", "Visit_bfdot_z_zzz"},
5164       {"10000", "Visit_fmlalb_z_zzz"},
5165       {"10001", "Visit_fmlalt_z_zzz"},
5166       {"11000", "Visit_bfmlalb_z_zzz"},
5167       {"11001", "Visit_bfmlalt_z_zzz"},
5168     },
5169   },
5170 
5171   { "Decode_rvjzgt",
5172     {23, 22, 4},
5173     { {"000", "Visit_fccmp_s_floatccmp"},
5174       {"001", "Visit_fccmpe_s_floatccmp"},
5175       {"010", "Visit_fccmp_d_floatccmp"},
5176       {"011", "Visit_fccmpe_d_floatccmp"},
5177       {"110", "Visit_fccmp_h_floatccmp"},
5178       {"111", "Visit_fccmpe_h_floatccmp"},
5179     },
5180   },
5181 
5182   { "Decode_rvzhhx",
5183     {18, 17, 12},
5184     { {"000", "Visit_st3_asisdlso_d3_3d"},
5185     },
5186   },
5187 
5188   { "Decode_rxjrmn",
5189     {22, 13, 12},
5190     { {"000", "Visit_swpa_32_memop"},
5191       {"100", "Visit_swpal_32_memop"},
5192     },
5193   },
5194 
5195   { "Decode_rxpspy",
5196     {30, 23, 22, 12, 11, 10},
5197     { {"0000xx", "Visit_adds_32s_addsub_ext"},
5198       {"000100", "Visit_adds_32s_addsub_ext"},
5199       {"1000xx", "Visit_subs_32s_addsub_ext"},
5200       {"100100", "Visit_subs_32s_addsub_ext"},
5201     },
5202   },
5203 
5204   { "Decode_ryglvl",
5205     {4},
5206     { {"0", "Visit_ccmp_32_condcmp_reg"},
5207     },
5208   },
5209 
5210   { "Decode_rykykh",
5211     {20, 19, 18, 17, 16},
5212     { {"00000", "Visit_rev64_asimdmisc_r"},
5213     },
5214   },
5215 
5216   { "Decode_rzkmny",
5217     {30},
5218     { {"0", "Visit_and_64_log_shift"},
5219       {"1", "Visit_eor_64_log_shift"},
5220     },
5221   },
5222 
5223   { "Decode_rznrqt",
5224     {22},
5225     { {"0", "Visit_umullt_z_zzi_s"},
5226       {"1", "Visit_umullt_z_zzi_d"},
5227     },
5228   },
5229 
5230   { "Decode_rzqzlq",
5231     {23, 22, 20, 19, 16, 13, 12},
5232     { {"0111110", "Visit_fcvtns_asisdmiscfp16_r"},
5233       {"0111111", "Visit_fcvtms_asisdmiscfp16_r"},
5234       {"0x00110", "Visit_fcvtns_asisdmisc_r"},
5235       {"0x00111", "Visit_fcvtms_asisdmisc_r"},
5236       {"1111110", "Visit_fcvtps_asisdmiscfp16_r"},
5237       {"1111111", "Visit_fcvtzs_asisdmiscfp16_r"},
5238       {"1x00110", "Visit_fcvtps_asisdmisc_r"},
5239       {"1x00111", "Visit_fcvtzs_asisdmisc_r"},
5240       {"xx00000", "Visit_cmgt_asisdmisc_z"},
5241       {"xx00001", "Visit_cmeq_asisdmisc_z"},
5242       {"xx00010", "Visit_cmlt_asisdmisc_z"},
5243       {"xx00011", "Visit_abs_asisdmisc_r"},
5244       {"xx10111", "Visit_addp_asisdpair_only"},
5245     },
5246   },
5247 
5248   { "Decode_rztvnl",
5249     {20, 19, 18, 17, 16},
5250     { {"0000x", "Visit_fcadd_z_p_zz"},
5251       {"10000", "Visit_faddp_z_p_zz"},
5252       {"10100", "Visit_fmaxnmp_z_p_zz"},
5253       {"10101", "Visit_fminnmp_z_p_zz"},
5254       {"10110", "Visit_fmaxp_z_p_zz"},
5255       {"10111", "Visit_fminp_z_p_zz"},
5256     },
5257   },
5258 
5259   { "Decode_rzzxsn",
5260     {30, 13},
5261     { {"00", "Decode_nvyxmh"},
5262       {"01", "Decode_hykhmt"},
5263       {"10", "Decode_yszjsm"},
5264       {"11", "Decode_jrnxzh"},
5265     },
5266   },
5267 
5268   { "Decode_sghgtk",
5269     {4},
5270     { {"0", "Visit_cmplo_p_p_zi"},
5271       {"1", "Visit_cmpls_p_p_zi"},
5272     },
5273   },
5274 
5275   { "Decode_sgnknz",
5276     {23, 22, 20, 19, 11},
5277     { {"00011", "Visit_fcvtzs_asisdshf_c"},
5278       {"001x1", "Visit_fcvtzs_asisdshf_c"},
5279       {"01xx1", "Visit_fcvtzs_asisdshf_c"},
5280     },
5281   },
5282 
5283   { "Decode_sgztlj",
5284     {23, 22, 20, 19, 18, 17, 16},
5285     { {"0010000", "Visit_fmaxnmv_asimdall_only_h"},
5286       {"0111001", "Visit_fcvtas_asimdmiscfp16_r"},
5287       {"0x00001", "Visit_fcvtas_asimdmisc_r"},
5288       {"1010000", "Visit_fminnmv_asimdall_only_h"},
5289       {"1111000", "Visit_fcmgt_asimdmiscfp16_fz"},
5290       {"1x00000", "Visit_fcmgt_asimdmisc_fz"},
5291       {"1x00001", "Visit_urecpe_asimdmisc_r"},
5292     },
5293   },
5294 
5295   { "Decode_shgkvq",
5296     {18, 17},
5297     { {"00", "Visit_st2_asisdlso_s2_2s"},
5298     },
5299   },
5300 
5301   { "Decode_shqygv",
5302     {30, 4},
5303     { {"00", "Decode_thvxym"},
5304       {"01", "Decode_mrhtxt"},
5305       {"10", "Decode_ptjyqx"},
5306       {"11", "Decode_rshyht"},
5307     },
5308   },
5309 
5310   { "Decode_shrsxr",
5311     {30, 23, 22},
5312     { {"000", "Visit_stnp_64_ldstnapair_offs"},
5313       {"001", "Visit_ldnp_64_ldstnapair_offs"},
5314       {"010", "Visit_stp_64_ldstpair_post"},
5315       {"011", "Visit_ldp_64_ldstpair_post"},
5316     },
5317   },
5318 
5319   { "Decode_shzysp",
5320     {30, 23, 22, 19, 18, 17, 16},
5321     { {"1001000", "Visit_ins_asimdins_ir_r"},
5322       {"100x100", "Visit_ins_asimdins_ir_r"},
5323       {"100xx10", "Visit_ins_asimdins_ir_r"},
5324       {"100xxx1", "Visit_ins_asimdins_ir_r"},
5325       {"x01xxxx", "Visit_fmulx_asimdsamefp16_only"},
5326     },
5327   },
5328 
5329   { "Decode_sjlpxn",
5330     {23, 22},
5331     { {"01", "Visit_fcmla_asimdelem_c_h"},
5332       {"10", "Visit_fcmla_asimdelem_c_s"},
5333     },
5334   },
5335 
5336   { "Decode_sjlrxn",
5337     {10},
5338     { {"0", "Decode_mpzqxm"},
5339     },
5340   },
5341 
5342   { "Decode_sjnqvx",
5343     {23, 22, 4},
5344     { {"000", "Visit_fccmp_s_floatccmp"},
5345       {"001", "Visit_fccmpe_s_floatccmp"},
5346       {"010", "Visit_fccmp_d_floatccmp"},
5347       {"011", "Visit_fccmpe_d_floatccmp"},
5348       {"110", "Visit_fccmp_h_floatccmp"},
5349       {"111", "Visit_fccmpe_h_floatccmp"},
5350     },
5351   },
5352 
5353   { "Decode_sjnspg",
5354     {4},
5355     { {"0", "Visit_nors_p_p_pp_z"},
5356       {"1", "Visit_nands_p_p_pp_z"},
5357     },
5358   },
5359 
5360   { "Decode_sjnxky",
5361     {30},
5362     { {"1", "Decode_ylyskq"},
5363     },
5364   },
5365 
5366   { "Decode_sjrqth",
5367     {23, 22},
5368     { {"00", "Visit_fmov_s_floatimm"},
5369       {"01", "Visit_fmov_d_floatimm"},
5370       {"11", "Visit_fmov_h_floatimm"},
5371     },
5372   },
5373 
5374   { "Decode_sjsltg",
5375     {17},
5376     { {"0", "Visit_st2_asisdlsop_hx2_r2h"},
5377       {"1", "Visit_st2_asisdlsop_h2_i2h"},
5378     },
5379   },
5380 
5381   { "Decode_sjtrhm",
5382     {30, 23, 22, 20, 13},
5383     { {"00001", "Visit_ld1rqb_z_p_bi_u8"},
5384       {"000x0", "Visit_ld1rqb_z_p_br_contiguous"},
5385       {"01001", "Visit_ld1rqh_z_p_bi_u16"},
5386       {"010x0", "Visit_ld1rqh_z_p_br_contiguous"},
5387       {"100x1", "Visit_stnt1b_z_p_ar_d_64_unscaled"},
5388       {"101x1", "Visit_stnt1b_z_p_ar_s_x32_unscaled"},
5389       {"110x1", "Visit_stnt1h_z_p_ar_d_64_unscaled"},
5390       {"111x1", "Visit_stnt1h_z_p_ar_s_x32_unscaled"},
5391     },
5392   },
5393 
5394   { "Decode_sjvhlq",
5395     {22},
5396     { {"0", "Visit_smullb_z_zzi_s"},
5397       {"1", "Visit_smullb_z_zzi_d"},
5398     },
5399   },
5400 
5401   { "Decode_sjzsvv",
5402     {30, 23, 13, 12, 11, 10},
5403     { {"101001", "Visit_ucvtf_asisdshf_c"},
5404       {"101111", "Visit_fcvtzu_asisdshf_c"},
5405       {"1x01x0", "Visit_sqrdmlah_asisdelem_r"},
5406       {"1x11x0", "Visit_sqrdmlsh_asisdelem_r"},
5407     },
5408   },
5409 
5410   { "Decode_skglrt",
5411     {23, 22, 20, 19, 13, 11},
5412     { {"0000x0", "Visit_mvni_asimdimm_l_sl"},
5413       {"00x100", "Visit_ushr_asimdshf_r"},
5414       {"00x110", "Visit_urshr_asimdshf_r"},
5415       {"010x00", "Visit_ushr_asimdshf_r"},
5416       {"010x10", "Visit_urshr_asimdshf_r"},
5417       {"011100", "Visit_ushr_asimdshf_r"},
5418       {"011110", "Visit_urshr_asimdshf_r"},
5419       {"0x1000", "Visit_ushr_asimdshf_r"},
5420       {"0x1010", "Visit_urshr_asimdshf_r"},
5421     },
5422   },
5423 
5424   { "Decode_skpjrp",
5425     {23, 22, 12},
5426     { {"000", "Decode_xzyylk"},
5427       {"001", "Decode_hpgqlp"},
5428       {"010", "Decode_qnsxkj"},
5429       {"011", "Decode_nnlvqz"},
5430       {"110", "Decode_vylhvl"},
5431       {"111", "Decode_stgkpy"},
5432     },
5433   },
5434 
5435   { "Decode_slhpgp",
5436     {23},
5437     { {"0", "Visit_facge_asimdsame_only"},
5438       {"1", "Visit_facgt_asimdsame_only"},
5439     },
5440   },
5441 
5442   { "Decode_sllkpt",
5443     {13, 12},
5444     { {"10", "Visit_lsrv_32_dp_2src"},
5445     },
5446   },
5447 
5448   { "Decode_slnkst",
5449     {23, 22, 20, 19, 18, 17, 16},
5450     { {"0111001", "Visit_fcvtmu_asimdmiscfp16_r"},
5451       {"0x00001", "Visit_fcvtmu_asimdmisc_r"},
5452       {"1111001", "Visit_fcvtzu_asimdmiscfp16_r"},
5453       {"1x00001", "Visit_fcvtzu_asimdmisc_r"},
5454       {"xx00000", "Visit_neg_asimdmisc_r"},
5455     },
5456   },
5457 
5458   { "Decode_sltqpy",
5459     {30, 23, 22, 13, 12, 11, 10},
5460     { {"000xx10", "Visit_strb_32b_ldst_regoff"},
5461       {"001xx10", "Visit_ldrb_32b_ldst_regoff"},
5462       {"0100000", "Visit_ldaprb_32l_memop"},
5463       {"010xx10", "Visit_ldrsb_64b_ldst_regoff"},
5464       {"011xx10", "Visit_ldrsb_32b_ldst_regoff"},
5465       {"100xx10", "Visit_strh_32_ldst_regoff"},
5466       {"101xx10", "Visit_ldrh_32_ldst_regoff"},
5467       {"1100000", "Visit_ldaprh_32l_memop"},
5468       {"110xx10", "Visit_ldrsh_64_ldst_regoff"},
5469       {"111xx10", "Visit_ldrsh_32_ldst_regoff"},
5470     },
5471   },
5472 
5473   { "Decode_smplhv",
5474     {10},
5475     { {"0", "Visit_braa_64p_branch_reg"},
5476       {"1", "Visit_brab_64p_branch_reg"},
5477     },
5478   },
5479 
5480   { "Decode_smqvrs",
5481     {18, 17},
5482     { {"00", "Visit_st1_asisdlse_r1_1v"},
5483     },
5484   },
5485 
5486   { "Decode_smrtxq",
5487     {13, 12},
5488     { {"00", "Visit_sbcs_32_addsub_carry"},
5489     },
5490   },
5491 
5492   { "Decode_snjpvy",
5493     {23, 22, 13, 12, 11, 10},
5494     { {"0001x0", "Visit_fmulx_asimdelem_rh_h"},
5495       {"0x0001", "Visit_sqshrun_asimdshf_n"},
5496       {"0x0011", "Visit_sqrshrun_asimdshf_n"},
5497       {"0x0101", "Visit_uqshrn_asimdshf_n"},
5498       {"0x0111", "Visit_uqrshrn_asimdshf_n"},
5499       {"0x1001", "Visit_ushll_asimdshf_l"},
5500       {"1000x0", "Visit_fmlal2_asimdelem_lh"},
5501       {"1x01x0", "Visit_fmulx_asimdelem_r_sd"},
5502       {"xx10x0", "Visit_umull_asimdelem_l"},
5503     },
5504   },
5505 
5506   { "Decode_snkqvp",
5507     {23, 22, 20, 19, 18, 17, 16, 13, 12, 11},
5508     { {"0011111001", "Decode_gkpvxz"},
5509     },
5510   },
5511 
5512   { "Decode_sntyqy",
5513     {4},
5514     { {"0", "Visit_cmphs_p_p_zi"},
5515       {"1", "Visit_cmphi_p_p_zi"},
5516     },
5517   },
5518 
5519   { "Decode_sntzjg",
5520     {23, 22, 11, 10},
5521     { {"0000", "Decode_qssyls"},
5522       {"0001", "Visit_stg_64spost_ldsttags"},
5523       {"0010", "Visit_stg_64soffset_ldsttags"},
5524       {"0011", "Visit_stg_64spre_ldsttags"},
5525       {"0100", "Visit_ldg_64loffset_ldsttags"},
5526       {"0101", "Visit_stzg_64spost_ldsttags"},
5527       {"0110", "Visit_stzg_64soffset_ldsttags"},
5528       {"0111", "Visit_stzg_64spre_ldsttags"},
5529       {"1000", "Decode_kyxqgg"},
5530       {"1001", "Visit_st2g_64spost_ldsttags"},
5531       {"1010", "Visit_st2g_64soffset_ldsttags"},
5532       {"1011", "Visit_st2g_64spre_ldsttags"},
5533       {"1100", "Decode_stjrgx"},
5534       {"1101", "Visit_stz2g_64spost_ldsttags"},
5535       {"1110", "Visit_stz2g_64soffset_ldsttags"},
5536       {"1111", "Visit_stz2g_64spre_ldsttags"},
5537     },
5538   },
5539 
5540   { "Decode_spglxn",
5541     {4, 3, 2, 1, 0},
5542     { {"11111", "Decode_yqmvxk"},
5543     },
5544   },
5545 
5546   { "Decode_sphpkr",
5547     {4, 3, 2, 1, 0},
5548     { {"11111", "Decode_thsxvg"},
5549     },
5550   },
5551 
5552   { "Decode_spjjkg",
5553     {23, 22, 13, 12, 11, 10},
5554     { {"0011x0", "Visit_sudot_asimdelem_d"},
5555       {"0111x0", "Visit_bfdot_asimdelem_e"},
5556       {"0x1001", "Visit_scvtf_asimdshf_c"},
5557       {"0x1111", "Visit_fcvtzs_asimdshf_c"},
5558       {"1011x0", "Visit_usdot_asimdelem_d"},
5559       {"1111x0", "Visit_bfmlal_asimdelem_f"},
5560       {"xx00x0", "Visit_sqdmulh_asimdelem_r"},
5561       {"xx01x0", "Visit_sqrdmulh_asimdelem_r"},
5562       {"xx10x0", "Visit_sdot_asimdelem_d"},
5563     },
5564   },
5565 
5566   { "Decode_spmkmm",
5567     {30, 19, 18, 17, 16, 10},
5568     { {"110001", "Visit_ins_asimdins_iv_v"},
5569       {"1x1001", "Visit_ins_asimdins_iv_v"},
5570       {"1xx101", "Visit_ins_asimdins_iv_v"},
5571       {"1xxx11", "Visit_ins_asimdins_iv_v"},
5572       {"xxxxx0", "Visit_ext_asimdext_only"},
5573     },
5574   },
5575 
5576   { "Decode_spzgkt",
5577     {23, 22, 13, 12, 11, 10},
5578     { {"0x1001", "Visit_ucvtf_asimdshf_c"},
5579       {"0x1111", "Visit_fcvtzu_asimdshf_c"},
5580       {"1000x0", "Visit_fmlsl2_asimdelem_lh"},
5581       {"xx01x0", "Visit_sqrdmlah_asimdelem_r"},
5582       {"xx10x0", "Visit_udot_asimdelem_d"},
5583       {"xx11x0", "Visit_sqrdmlsh_asimdelem_r"},
5584     },
5585   },
5586 
5587   { "Decode_sqgjmn",
5588     {20, 9},
5589     { {"00", "Decode_mxgykv"},
5590     },
5591   },
5592 
5593   { "Decode_sqgxzn",
5594     {9, 8, 7, 6, 5},
5595     { {"11111", "Visit_paciza_64z_dp_1src"},
5596     },
5597   },
5598 
5599   { "Decode_sqjpsl",
5600     {30, 13, 12, 11, 10},
5601     { {"10001", "Visit_sqrdmlah_asisdsame2_only"},
5602       {"10011", "Visit_sqrdmlsh_asisdsame2_only"},
5603     },
5604   },
5605 
5606   { "Decode_sqpjtr",
5607     {20, 18, 17},
5608     { {"000", "Decode_nllnsg"},
5609     },
5610   },
5611 
5612   { "Decode_srggzy",
5613     {19},
5614     { {"0", "Decode_xqgxjp"},
5615       {"1", "Visit_sysl_rc_systeminstrs"},
5616     },
5617   },
5618 
5619   { "Decode_srglgl",
5620     {18, 17},
5621     { {"0x", "Visit_st3_asisdlsop_sx3_r3s"},
5622       {"10", "Visit_st3_asisdlsop_sx3_r3s"},
5623       {"11", "Visit_st3_asisdlsop_s3_i3s"},
5624     },
5625   },
5626 
5627   { "Decode_srmhjk",
5628     {30},
5629     { {"0", "Visit_ldr_s_loadlit"},
5630       {"1", "Visit_ldr_d_loadlit"},
5631     },
5632   },
5633 
5634   { "Decode_srmhlk",
5635     {20, 19, 18, 17, 16},
5636     { {"00000", "Visit_uaddlp_asimdmisc_p"},
5637       {"00001", "Visit_sqxtun_asimdmisc_n"},
5638     },
5639   },
5640 
5641   { "Decode_srvnql",
5642     {18, 17, 12},
5643     { {"0x0", "Visit_ld1_asisdlsop_dx1_r1d"},
5644       {"100", "Visit_ld1_asisdlsop_dx1_r1d"},
5645       {"110", "Visit_ld1_asisdlsop_d1_i1d"},
5646     },
5647   },
5648 
5649   { "Decode_stgkpy",
5650     {9, 8, 7, 6, 5},
5651     { {"00000", "Visit_fmov_h_floatimm"},
5652     },
5653   },
5654 
5655   { "Decode_stjrgx",
5656     {20, 19, 18, 17, 16, 13, 12},
5657     { {"0000000", "Visit_ldgm_64bulk_ldsttags"},
5658     },
5659   },
5660 
5661   { "Decode_stqmps",
5662     {12},
5663     { {"0", "Visit_ld3_asisdlsop_dx3_r3d"},
5664     },
5665   },
5666 
5667   { "Decode_strkph",
5668     {23, 22},
5669     { {"00", "Visit_tbl_asimdtbl_l2_2"},
5670     },
5671   },
5672 
5673   { "Decode_svnyyx",
5674     {13, 12},
5675     { {"00", "Visit_adcs_32_addsub_carry"},
5676     },
5677   },
5678 
5679   { "Decode_svrnxq",
5680     {12},
5681     { {"0", "Visit_st3_asisdlsop_dx3_r3d"},
5682     },
5683   },
5684 
5685   { "Decode_svvyrz",
5686     {23, 22, 20, 19, 18, 17, 16},
5687     { {"00xxxxx", "Visit_addvl_r_ri"},
5688       {"01xxxxx", "Visit_addpl_r_ri"},
5689       {"1011111", "Visit_rdvl_r_i"},
5690     },
5691   },
5692 
5693   { "Decode_sxnkrh",
5694     {23},
5695     { {"1", "Decode_xxkvsy"},
5696     },
5697   },
5698 
5699   { "Decode_sxpvym",
5700     {30, 23, 22, 13},
5701     { {"0000", "Visit_ldnt1sb_z_p_ar_s_x32_unscaled"},
5702       {"0001", "Visit_ldnt1b_z_p_ar_s_x32_unscaled"},
5703       {"0010", "Visit_ld1rb_z_p_bi_u8"},
5704       {"0011", "Visit_ld1rb_z_p_bi_u16"},
5705       {"0100", "Visit_ldnt1sh_z_p_ar_s_x32_unscaled"},
5706       {"0101", "Visit_ldnt1h_z_p_ar_s_x32_unscaled"},
5707       {"0110", "Visit_ld1rsw_z_p_bi_s64"},
5708       {"0111", "Visit_ld1rh_z_p_bi_u16"},
5709       {"1000", "Visit_ldnt1sb_z_p_ar_d_64_unscaled"},
5710       {"1010", "Visit_ld1sb_z_p_bz_d_64_unscaled"},
5711       {"1011", "Visit_ldff1sb_z_p_bz_d_64_unscaled"},
5712       {"1100", "Visit_ldnt1sh_z_p_ar_d_64_unscaled"},
5713       {"1110", "Visit_ld1sh_z_p_bz_d_64_unscaled"},
5714       {"1111", "Visit_ldff1sh_z_p_bz_d_64_unscaled"},
5715     },
5716   },
5717 
5718   { "Decode_syktsg",
5719     {13, 12},
5720     { {"00", "Visit_udiv_64_dp_2src"},
5721       {"10", "Visit_asrv_64_dp_2src"},
5722     },
5723   },
5724 
5725   { "Decode_syzjtz",
5726     {13, 12, 10},
5727     { {"010", "Visit_sqrdmlah_asisdelem_r"},
5728       {"101", "Decode_jqnglz"},
5729       {"110", "Visit_sqrdmlsh_asisdelem_r"},
5730       {"111", "Decode_zslsvj"},
5731     },
5732   },
5733 
5734   { "Decode_szttjy",
5735     {30, 23, 22, 19, 18, 17, 16},
5736     { {"00000x1", "Visit_umov_asimdins_w_w"},
5737       {"0000x10", "Visit_umov_asimdins_w_w"},
5738       {"00010xx", "Visit_umov_asimdins_w_w"},
5739       {"0001110", "Visit_umov_asimdins_w_w"},
5740       {"000x10x", "Visit_umov_asimdins_w_w"},
5741       {"000x111", "Visit_umov_asimdins_w_w"},
5742       {"1001000", "Visit_umov_asimdins_x_x"},
5743       {"x01xxxx", "Visit_frecps_asimdsamefp16_only"},
5744       {"x11xxxx", "Visit_frsqrts_asimdsamefp16_only"},
5745     },
5746   },
5747 
5748   { "Decode_tgmljr",
5749     {23, 22, 20, 19, 12, 11},
5750     { {"000000", "Visit_movi_asimdimm_n_b"},
5751       {"000010", "Visit_fmov_asimdimm_s_s"},
5752       {"000011", "Visit_fmov_asimdimm_h_h"},
5753       {"00x100", "Visit_scvtf_asimdshf_c"},
5754       {"00x111", "Visit_fcvtzs_asimdshf_c"},
5755       {"010x00", "Visit_scvtf_asimdshf_c"},
5756       {"010x11", "Visit_fcvtzs_asimdshf_c"},
5757       {"011100", "Visit_scvtf_asimdshf_c"},
5758       {"011111", "Visit_fcvtzs_asimdshf_c"},
5759       {"0x1000", "Visit_scvtf_asimdshf_c"},
5760       {"0x1011", "Visit_fcvtzs_asimdshf_c"},
5761     },
5762   },
5763 
5764   { "Decode_tgqsyg",
5765     {22},
5766     { {"0", "Visit_prfm_p_ldst_regoff"},
5767     },
5768   },
5769 
5770   { "Decode_thqvrp",
5771     {17},
5772     { {"0", "Visit_st1_asisdlsep_r2_r2"},
5773       {"1", "Visit_st1_asisdlsep_i2_i2"},
5774     },
5775   },
5776 
5777   { "Decode_thrxph",
5778     {23, 22, 10},
5779     { {"100", "Visit_umlalb_z_zzzi_s"},
5780       {"101", "Visit_umlalt_z_zzzi_s"},
5781       {"110", "Visit_umlalb_z_zzzi_d"},
5782       {"111", "Visit_umlalt_z_zzzi_d"},
5783     },
5784   },
5785 
5786   { "Decode_thsxvg",
5787     {11, 10, 9, 8, 7, 6},
5788     { {"000010", "Visit_ssbb_only_barriers"},
5789       {"010010", "Visit_pssbb_only_barriers"},
5790       {"0x1010", "Visit_dsb_bo_barriers"},
5791       {"0xx110", "Visit_dsb_bo_barriers"},
5792       {"1xxx10", "Visit_dsb_bo_barriers"},
5793       {"xxxx01", "Visit_clrex_bn_barriers"},
5794       {"xxxx11", "Visit_isb_bi_barriers"},
5795     },
5796   },
5797 
5798   { "Decode_thvvzp",
5799     {18, 17, 12},
5800     { {"0x0", "Visit_st1_asisdlsop_dx1_r1d"},
5801       {"100", "Visit_st1_asisdlsop_dx1_r1d"},
5802       {"110", "Visit_st1_asisdlsop_d1_i1d"},
5803     },
5804   },
5805 
5806   { "Decode_thvxym",
5807     {20},
5808     { {"0", "Decode_prkmty"},
5809       {"1", "Decode_pjgkjs"},
5810     },
5811   },
5812 
5813   { "Decode_tjktkm",
5814     {30},
5815     { {"1", "Decode_gntpyh"},
5816     },
5817   },
5818 
5819   { "Decode_tjltls",
5820     {18, 17},
5821     { {"0x", "Visit_st1_asisdlsep_r1_r1"},
5822       {"10", "Visit_st1_asisdlsep_r1_r1"},
5823       {"11", "Visit_st1_asisdlsep_i1_i1"},
5824     },
5825   },
5826 
5827   { "Decode_tjpjng",
5828     {23, 22, 13, 12},
5829     { {"0000", "Visit_fmax_s_floatdp2"},
5830       {"0001", "Visit_fmin_s_floatdp2"},
5831       {"0010", "Visit_fmaxnm_s_floatdp2"},
5832       {"0011", "Visit_fminnm_s_floatdp2"},
5833       {"0100", "Visit_fmax_d_floatdp2"},
5834       {"0101", "Visit_fmin_d_floatdp2"},
5835       {"0110", "Visit_fmaxnm_d_floatdp2"},
5836       {"0111", "Visit_fminnm_d_floatdp2"},
5837       {"1100", "Visit_fmax_h_floatdp2"},
5838       {"1101", "Visit_fmin_h_floatdp2"},
5839       {"1110", "Visit_fmaxnm_h_floatdp2"},
5840       {"1111", "Visit_fminnm_h_floatdp2"},
5841     },
5842   },
5843 
5844   { "Decode_tjtgjy",
5845     {20, 19, 18, 17},
5846     { {"0000", "Decode_gjsnly"},
5847     },
5848   },
5849 
5850   { "Decode_tjzqnp",
5851     {30, 23, 22, 20, 13},
5852     { {"00001", "Visit_ldnt1b_z_p_bi_contiguous"},
5853       {"000x0", "Visit_ldnt1b_z_p_br_contiguous"},
5854       {"00101", "Visit_ld3b_z_p_bi_contiguous"},
5855       {"001x0", "Visit_ld3b_z_p_br_contiguous"},
5856       {"01001", "Visit_ldnt1h_z_p_bi_contiguous"},
5857       {"010x0", "Visit_ldnt1h_z_p_br_contiguous"},
5858       {"01101", "Visit_ld3h_z_p_bi_contiguous"},
5859       {"011x0", "Visit_ld3h_z_p_br_contiguous"},
5860       {"10011", "Visit_stnt1b_z_p_bi_contiguous"},
5861       {"100x0", "Visit_st1b_z_p_bz_d_x32_unscaled"},
5862       {"10111", "Visit_st3b_z_p_bi_contiguous"},
5863       {"101x0", "Visit_st1b_z_p_bz_s_x32_unscaled"},
5864       {"10x01", "Visit_st1b_z_p_bi"},
5865       {"11011", "Visit_stnt1h_z_p_bi_contiguous"},
5866       {"110x0", "Visit_st1h_z_p_bz_d_x32_unscaled"},
5867       {"11111", "Visit_st3h_z_p_bi_contiguous"},
5868       {"111x0", "Visit_st1h_z_p_bz_s_x32_unscaled"},
5869       {"11x01", "Visit_st1h_z_p_bi"},
5870     },
5871   },
5872 
5873   { "Decode_tkjtgp",
5874     {30},
5875     { {"0", "Decode_sqgjmn"},
5876       {"1", "Decode_ztpryr"},
5877     },
5878   },
5879 
5880   { "Decode_tkzqqp",
5881     {4, 3, 2, 1, 0},
5882     { {"11111", "Decode_ntkqhk"},
5883     },
5884   },
5885 
5886   { "Decode_tlstgz",
5887     {30, 23, 22},
5888     { {"000", "Visit_stlxp_sp32_ldstexcl"},
5889       {"001", "Visit_ldaxp_lp32_ldstexcl"},
5890       {"100", "Visit_stlxp_sp64_ldstexcl"},
5891       {"101", "Visit_ldaxp_lp64_ldstexcl"},
5892     },
5893   },
5894 
5895   { "Decode_tlzlrj",
5896     {17},
5897     { {"0", "Visit_st2_asisdlso_b2_2b"},
5898     },
5899   },
5900 
5901   { "Decode_tmhlvh",
5902     {20, 9, 4},
5903     { {"000", "Visit_zip2_p_pp"},
5904     },
5905   },
5906 
5907   { "Decode_tmrnzq",
5908     {17},
5909     { {"0", "Visit_st2_asisdlsep_r2_r"},
5910       {"1", "Visit_st2_asisdlsep_i2_i"},
5911     },
5912   },
5913 
5914   { "Decode_tmshps",
5915     {17},
5916     { {"0", "Visit_fmaxnmv_v_p_z"},
5917       {"1", "Visit_fmaxv_v_p_z"},
5918     },
5919   },
5920 
5921   { "Decode_tmthqm",
5922     {22},
5923     { {"0", "Visit_str_32_ldst_regoff"},
5924       {"1", "Visit_ldr_32_ldst_regoff"},
5925     },
5926   },
5927 
5928   { "Decode_tmtnkq",
5929     {23, 18, 17, 16},
5930     { {"0000", "Visit_uqxtnb_z_zz"},
5931     },
5932   },
5933 
5934   { "Decode_tnhmpx",
5935     {30, 23, 22, 13, 12, 11, 10},
5936     { {"1011001", "Visit_fcmge_asisdsamefp16_only"},
5937       {"1011011", "Visit_facge_asisdsamefp16_only"},
5938       {"1110101", "Visit_fabd_asisdsamefp16_only"},
5939       {"1111001", "Visit_fcmgt_asisdsamefp16_only"},
5940       {"1111011", "Visit_facgt_asisdsamefp16_only"},
5941     },
5942   },
5943 
5944   { "Decode_tnrrjk",
5945     {30, 23, 22, 11, 10},
5946     { {"01000", "Visit_csel_32_condsel"},
5947       {"01001", "Visit_csinc_32_condsel"},
5948       {"11000", "Visit_csinv_32_condsel"},
5949       {"11001", "Visit_csneg_32_condsel"},
5950     },
5951   },
5952 
5953   { "Decode_tnxlnl",
5954     {13, 12},
5955     { {"00", "Visit_crc32x_64c_dp_2src"},
5956       {"01", "Visit_crc32cx_64c_dp_2src"},
5957     },
5958   },
5959 
5960   { "Decode_tnzytv",
5961     {11, 10, 9, 8, 7, 6},
5962     { {"000000", "Visit_wfet_only_systeminstrswithreg"},
5963     },
5964   },
5965 
5966   { "Decode_tpkslq",
5967     {30, 23, 22, 20, 13, 4},
5968     { {"00001x", "Visit_ld1rqw_z_p_bi_u32"},
5969       {"000x0x", "Visit_ld1rqw_z_p_br_contiguous"},
5970       {"01001x", "Visit_ld1rqd_z_p_bi_u64"},
5971       {"010x0x", "Visit_ld1rqd_z_p_br_contiguous"},
5972       {"100x1x", "Visit_stnt1w_z_p_ar_d_64_unscaled"},
5973       {"101x1x", "Visit_stnt1w_z_p_ar_s_x32_unscaled"},
5974       {"110x00", "Visit_str_p_bi"},
5975       {"110x1x", "Visit_stnt1d_z_p_ar_d_64_unscaled"},
5976     },
5977   },
5978 
5979   { "Decode_tpkzxg",
5980     {4},
5981     { {"0", "Visit_ccmp_64_condcmp_imm"},
5982     },
5983   },
5984 
5985   { "Decode_tpsylx",
5986     {13},
5987     { {"0", "Decode_gjylrt"},
5988       {"1", "Decode_ygjslq"},
5989     },
5990   },
5991 
5992   { "Decode_trlhgn",
5993     {30, 23, 22, 11, 10},
5994     { {"00010", "Visit_str_b_ldst_regoff"},
5995       {"00110", "Visit_ldr_b_ldst_regoff"},
5996       {"01010", "Visit_str_q_ldst_regoff"},
5997       {"01110", "Visit_ldr_q_ldst_regoff"},
5998       {"10010", "Visit_str_h_ldst_regoff"},
5999       {"10110", "Visit_ldr_h_ldst_regoff"},
6000     },
6001   },
6002 
6003   { "Decode_tsksxr",
6004     {17},
6005     { {"0", "Visit_fminnmv_v_p_z"},
6006       {"1", "Visit_fminv_v_p_z"},
6007     },
6008   },
6009 
6010   { "Decode_tssqsr",
6011     {30},
6012     { {"1", "Decode_syzjtz"},
6013     },
6014   },
6015 
6016   { "Decode_tsvsgh",
6017     {17},
6018     { {"0", "Visit_st1_asisdlso_b1_1b"},
6019     },
6020   },
6021 
6022   { "Decode_tszvvk",
6023     {18, 17, 12},
6024     { {"000", "Visit_ld2_asisdlso_d2_2d"},
6025     },
6026   },
6027 
6028   { "Decode_ttplgp",
6029     {12, 11, 10},
6030     { {"000", "Visit_sqincp_z_p_z"},
6031       {"010", "Visit_sqincp_r_p_r_sx"},
6032       {"011", "Visit_sqincp_r_p_r_x"},
6033       {"100", "Decode_zqmrhp"},
6034     },
6035   },
6036 
6037   { "Decode_ttstyt",
6038     {12, 10},
6039     { {"00", "Decode_rkqtvs"},
6040       {"01", "Decode_mtlhnl"},
6041       {"10", "Decode_zlmgyp"},
6042       {"11", "Decode_kjghlk"},
6043     },
6044   },
6045 
6046   { "Decode_tvgvvq",
6047     {30},
6048     { {"0", "Visit_cbnz_32_compbranch"},
6049     },
6050   },
6051 
6052   { "Decode_tvsszp",
6053     {23, 22},
6054     { {"00", "Visit_fmadd_s_floatdp3"},
6055       {"01", "Visit_fmadd_d_floatdp3"},
6056       {"11", "Visit_fmadd_h_floatdp3"},
6057     },
6058   },
6059 
6060   { "Decode_txhzxq",
6061     {30, 22, 11},
6062     { {"000", "Decode_svnyyx"},
6063       {"001", "Decode_qsxpyq"},
6064       {"010", "Decode_pnqxjg"},
6065       {"011", "Decode_myrshl"},
6066       {"100", "Decode_smrtxq"},
6067       {"110", "Decode_ryglvl"},
6068       {"111", "Decode_qqsmlt"},
6069     },
6070   },
6071 
6072   { "Decode_txjyxr",
6073     {18, 17},
6074     { {"0x", "Visit_ld1_asisdlsep_r1_r1"},
6075       {"10", "Visit_ld1_asisdlsep_r1_r1"},
6076       {"11", "Visit_ld1_asisdlsep_i1_i1"},
6077     },
6078   },
6079 
6080   { "Decode_txnqzy",
6081     {30, 23, 22},
6082     { {"000", "Visit_smsubl_64wa_dp_3src"},
6083       {"010", "Visit_umsubl_64wa_dp_3src"},
6084     },
6085   },
6086 
6087   { "Decode_txsmts",
6088     {13, 12, 11, 10},
6089     { {"0000", "Visit_smlal_asimddiff_l"},
6090       {"0001", "Visit_add_asimdsame_only"},
6091       {"0010", "Decode_qhsplz"},
6092       {"0011", "Visit_cmtst_asimdsame_only"},
6093       {"0100", "Visit_sqdmlal_asimddiff_l"},
6094       {"0101", "Visit_mla_asimdsame_only"},
6095       {"0110", "Decode_yvxgrr"},
6096       {"0111", "Visit_mul_asimdsame_only"},
6097       {"1000", "Visit_smlsl_asimddiff_l"},
6098       {"1001", "Visit_smaxp_asimdsame_only"},
6099       {"1010", "Decode_mnxmst"},
6100       {"1011", "Visit_sminp_asimdsame_only"},
6101       {"1100", "Visit_sqdmlsl_asimddiff_l"},
6102       {"1101", "Visit_sqdmulh_asimdsame_only"},
6103       {"1110", "Decode_klkgqk"},
6104       {"1111", "Visit_addp_asimdsame_only"},
6105     },
6106   },
6107 
6108   { "Decode_txzxzs",
6109     {23, 22, 20, 19, 18},
6110     { {"00000", "Visit_orr_z_zi"},
6111       {"01000", "Visit_eor_z_zi"},
6112       {"10000", "Visit_and_z_zi"},
6113       {"11000", "Visit_dupm_z_i"},
6114       {"xx1xx", "Visit_cpy_z_p_i"},
6115     },
6116   },
6117 
6118   { "Decode_tyjqvt",
6119     {18, 17},
6120     { {"00", "Visit_ld4_asisdlso_s4_4s"},
6121     },
6122   },
6123 
6124   { "Decode_tylqpt",
6125     {23, 22, 13},
6126     { {"000", "Visit_fmulx_asimdelem_rh_h"},
6127       {"1x0", "Visit_fmulx_asimdelem_r_sd"},
6128     },
6129   },
6130 
6131   { "Decode_typysz",
6132     {23, 22, 20, 19, 13, 11, 10},
6133     { {"00x1001", "Visit_sqshrn_asisdshf_n"},
6134       {"00x1011", "Visit_sqrshrn_asisdshf_n"},
6135       {"00xx0x0", "Visit_fmul_asisdelem_rh_h"},
6136       {"010x001", "Visit_sqshrn_asisdshf_n"},
6137       {"010x011", "Visit_sqrshrn_asisdshf_n"},
6138       {"0111001", "Visit_sqshrn_asisdshf_n"},
6139       {"0111011", "Visit_sqrshrn_asisdshf_n"},
6140       {"0x10001", "Visit_sqshrn_asisdshf_n"},
6141       {"0x10011", "Visit_sqrshrn_asisdshf_n"},
6142       {"1xxx0x0", "Visit_fmul_asisdelem_r_sd"},
6143       {"xxxx1x0", "Visit_sqdmull_asisdelem_l"},
6144     },
6145   },
6146 
6147   { "Decode_tytvjk",
6148     {13, 12, 11},
6149     { {"000", "Decode_lylpyx"},
6150       {"001", "Decode_kyxrqg"},
6151       {"010", "Decode_zmkqxl"},
6152       {"011", "Decode_gngjxr"},
6153       {"100", "Decode_mlxtxs"},
6154       {"101", "Decode_mnmtql"},
6155       {"110", "Decode_xmxpnx"},
6156       {"111", "Decode_lkttgy"},
6157     },
6158   },
6159 
6160   { "Decode_tzzhsk",
6161     {13, 12},
6162     { {"01", "Visit_sqdmlal_asisddiff_only"},
6163       {"11", "Visit_sqdmlsl_asisddiff_only"},
6164     },
6165   },
6166 
6167   { "Decode_tzzssm",
6168     {12, 11, 10},
6169     { {"000", "Visit_histseg_z_zz"},
6170     },
6171   },
6172 
6173   { "Decode_tzzzxz",
6174     {30, 23, 22, 20, 19},
6175     { {"0xxxx", "Visit_bl_only_branch_imm"},
6176       {"10001", "Visit_sysl_rc_systeminstrs"},
6177       {"1001x", "Visit_mrs_rs_systemmove"},
6178     },
6179   },
6180 
6181   { "Decode_vgrhsz",
6182     {30, 23, 11, 10},
6183     { {"0010", "Decode_hljrqn"},
6184       {"0100", "Decode_htnmls"},
6185       {"0110", "Decode_vxgzqy"},
6186       {"1000", "Decode_lpsxhz"},
6187       {"1001", "Visit_ldraa_64_ldst_pac"},
6188       {"1010", "Decode_jtqlhs"},
6189       {"1011", "Visit_ldraa_64w_ldst_pac"},
6190       {"1100", "Decode_yrlzqp"},
6191       {"1101", "Visit_ldrab_64_ldst_pac"},
6192       {"1110", "Decode_xyhxzt"},
6193       {"1111", "Visit_ldrab_64w_ldst_pac"},
6194     },
6195   },
6196 
6197   { "Decode_vgrtjz",
6198     {12},
6199     { {"0", "Visit_sqdmulh_asimdelem_r"},
6200       {"1", "Visit_sqrdmulh_asimdelem_r"},
6201     },
6202   },
6203 
6204   { "Decode_vgtnjh",
6205     {23, 22, 20, 19, 18, 17, 16},
6206     { {"0001010", "Visit_fcvtxnt_z_p_z_d2s"},
6207       {"1001000", "Visit_fcvtnt_z_p_z_s2h"},
6208       {"1001001", "Visit_fcvtlt_z_p_z_h2s"},
6209       {"1001010", "Visit_bfcvtnt_z_p_z_s2bf"},
6210       {"1101010", "Visit_fcvtnt_z_p_z_d2s"},
6211       {"1101011", "Visit_fcvtlt_z_p_z_s2d"},
6212     },
6213   },
6214 
6215   { "Decode_vhhktl",
6216     {18, 17},
6217     { {"0x", "Visit_st4_asisdlsop_sx4_r4s"},
6218       {"10", "Visit_st4_asisdlsop_sx4_r4s"},
6219       {"11", "Visit_st4_asisdlsop_s4_i4s"},
6220     },
6221   },
6222 
6223   { "Decode_vhmsgj",
6224     {18, 17, 12},
6225     { {"000", "Visit_ld1_asisdlso_d1_1d"},
6226     },
6227   },
6228 
6229   { "Decode_vjlnqj",
6230     {23, 22, 13, 12},
6231     { {"0000", "Visit_fnmul_s_floatdp2"},
6232       {"0100", "Visit_fnmul_d_floatdp2"},
6233       {"1100", "Visit_fnmul_h_floatdp2"},
6234     },
6235   },
6236 
6237   { "Decode_vjmklj",
6238     {23, 22},
6239     { {"10", "Visit_sqrdcmlah_z_zzzi_h"},
6240       {"11", "Visit_sqrdcmlah_z_zzzi_s"},
6241     },
6242   },
6243 
6244   { "Decode_vjqsqs",
6245     {30},
6246     { {"0", "Visit_and_32_log_shift"},
6247       {"1", "Visit_eor_32_log_shift"},
6248     },
6249   },
6250 
6251   { "Decode_vjxqhp",
6252     {23, 22, 20, 19, 18, 16, 13},
6253     { {"0000000", "Decode_jlrvpl"},
6254       {"0000001", "Decode_pmkxlj"},
6255       {"0100000", "Decode_qmgtyq"},
6256       {"0100001", "Decode_qhxzxl"},
6257       {"100xxx0", "Visit_st2_asisdlsep_r2_r"},
6258       {"100xxx1", "Visit_st1_asisdlsep_r2_r2"},
6259       {"1010xx0", "Visit_st2_asisdlsep_r2_r"},
6260       {"1010xx1", "Visit_st1_asisdlsep_r2_r2"},
6261       {"10110x0", "Visit_st2_asisdlsep_r2_r"},
6262       {"10110x1", "Visit_st1_asisdlsep_r2_r2"},
6263       {"1011100", "Visit_st2_asisdlsep_r2_r"},
6264       {"1011101", "Visit_st1_asisdlsep_r2_r2"},
6265       {"1011110", "Decode_tmrnzq"},
6266       {"1011111", "Decode_thqvrp"},
6267       {"110xxx0", "Visit_ld2_asisdlsep_r2_r"},
6268       {"110xxx1", "Visit_ld1_asisdlsep_r2_r2"},
6269       {"1110xx0", "Visit_ld2_asisdlsep_r2_r"},
6270       {"1110xx1", "Visit_ld1_asisdlsep_r2_r2"},
6271       {"11110x0", "Visit_ld2_asisdlsep_r2_r"},
6272       {"11110x1", "Visit_ld1_asisdlsep_r2_r2"},
6273       {"1111100", "Visit_ld2_asisdlsep_r2_r"},
6274       {"1111101", "Visit_ld1_asisdlsep_r2_r2"},
6275       {"1111110", "Decode_nszhhy"},
6276       {"1111111", "Decode_qxrzgv"},
6277     },
6278   },
6279 
6280   { "Decode_vjymzn",
6281     {23, 22},
6282     { {"00", "Visit_fcsel_s_floatsel"},
6283       {"01", "Visit_fcsel_d_floatsel"},
6284       {"11", "Visit_fcsel_h_floatsel"},
6285     },
6286   },
6287 
6288   { "Decode_vkhhkk",
6289     {30, 23, 22, 11, 10, 4},
6290     { {"001000", "Visit_ccmn_64_condcmp_reg"},
6291       {"001100", "Visit_ccmn_64_condcmp_imm"},
6292       {"101000", "Visit_ccmp_64_condcmp_reg"},
6293       {"101100", "Visit_ccmp_64_condcmp_imm"},
6294     },
6295   },
6296 
6297   { "Decode_vkrkks",
6298     {30, 23, 22, 13, 4},
6299     { {"00000", "Visit_prfb_i_p_br_s"},
6300       {"00010", "Visit_prfb_i_p_ai_s"},
6301       {"0010x", "Visit_ld1rb_z_p_bi_u32"},
6302       {"0011x", "Visit_ld1rb_z_p_bi_u64"},
6303       {"01000", "Visit_prfh_i_p_br_s"},
6304       {"01010", "Visit_prfh_i_p_ai_s"},
6305       {"0110x", "Visit_ld1rh_z_p_bi_u32"},
6306       {"0111x", "Visit_ld1rh_z_p_bi_u64"},
6307       {"1000x", "Visit_ldnt1b_z_p_ar_d_64_unscaled"},
6308       {"10010", "Visit_prfb_i_p_ai_d"},
6309       {"1010x", "Visit_ld1b_z_p_bz_d_64_unscaled"},
6310       {"1011x", "Visit_ldff1b_z_p_bz_d_64_unscaled"},
6311       {"1100x", "Visit_ldnt1h_z_p_ar_d_64_unscaled"},
6312       {"11010", "Visit_prfh_i_p_ai_d"},
6313       {"1110x", "Visit_ld1h_z_p_bz_d_64_unscaled"},
6314       {"1111x", "Visit_ldff1h_z_p_bz_d_64_unscaled"},
6315     },
6316   },
6317 
6318   { "Decode_vkvgnm",
6319     {30, 13},
6320     { {"10", "Decode_vyygqs"},
6321     },
6322   },
6323 
6324   { "Decode_vkyngx",
6325     {23, 22, 19, 18, 17, 16},
6326     { {"0000x1", "Visit_dup_asimdins_dv_v"},
6327       {"000x10", "Visit_dup_asimdins_dv_v"},
6328       {"0010xx", "Visit_dup_asimdins_dv_v"},
6329       {"001110", "Visit_dup_asimdins_dv_v"},
6330       {"00x10x", "Visit_dup_asimdins_dv_v"},
6331       {"00x111", "Visit_dup_asimdins_dv_v"},
6332       {"01xxxx", "Visit_fmaxnm_asimdsamefp16_only"},
6333       {"11xxxx", "Visit_fminnm_asimdsamefp16_only"},
6334     },
6335   },
6336 
6337   { "Decode_vllqmp",
6338     {30, 23, 22, 13, 12, 11, 10},
6339     { {"000xxxx", "Visit_stxp_sp32_ldstexcl"},
6340       {"001xxxx", "Visit_ldxp_lp32_ldstexcl"},
6341       {"0101111", "Visit_cas_c32_ldstexcl"},
6342       {"0111111", "Visit_casa_c32_ldstexcl"},
6343       {"100xxxx", "Visit_stxp_sp64_ldstexcl"},
6344       {"101xxxx", "Visit_ldxp_lp64_ldstexcl"},
6345       {"1101111", "Visit_cas_c64_ldstexcl"},
6346       {"1111111", "Visit_casa_c64_ldstexcl"},
6347     },
6348   },
6349 
6350   { "Decode_vlrhpy",
6351     {30, 23, 22, 13, 4},
6352     { {"0000x", "Visit_ld1sb_z_p_ai_s"},
6353       {"0001x", "Visit_ldff1sb_z_p_ai_s"},
6354       {"0010x", "Visit_ld1rb_z_p_bi_u8"},
6355       {"0011x", "Visit_ld1rb_z_p_bi_u16"},
6356       {"0100x", "Visit_ld1sh_z_p_ai_s"},
6357       {"0101x", "Visit_ldff1sh_z_p_ai_s"},
6358       {"0110x", "Visit_ld1rsw_z_p_bi_s64"},
6359       {"0111x", "Visit_ld1rh_z_p_bi_u16"},
6360       {"1000x", "Visit_ld1sb_z_p_ai_d"},
6361       {"1001x", "Visit_ldff1sb_z_p_ai_d"},
6362       {"10100", "Visit_prfb_i_p_bz_d_64_scaled"},
6363       {"10110", "Visit_prfh_i_p_bz_d_64_scaled"},
6364       {"1100x", "Visit_ld1sh_z_p_ai_d"},
6365       {"1101x", "Visit_ldff1sh_z_p_ai_d"},
6366       {"1110x", "Visit_ld1sh_z_p_bz_d_64_scaled"},
6367       {"1111x", "Visit_ldff1sh_z_p_bz_d_64_scaled"},
6368     },
6369   },
6370 
6371   { "Decode_vlrrtz",
6372     {30, 23, 22},
6373     { {"001", "Visit_bfm_64m_bitfield"},
6374     },
6375   },
6376 
6377   { "Decode_vlsmsn",
6378     {22, 20, 19, 18, 17, 16},
6379     { {"111000", "Visit_fcmle_asisdmiscfp16_fz"},
6380       {"111001", "Visit_frsqrte_asisdmiscfp16_r"},
6381       {"x00000", "Visit_fcmle_asisdmisc_fz"},
6382       {"x00001", "Visit_frsqrte_asisdmisc_r"},
6383     },
6384   },
6385 
6386   { "Decode_vlzrlm",
6387     {23, 22, 20, 19, 13, 11},
6388     { {"0000x0", "Visit_mvni_asimdimm_l_sl"},
6389       {"00x100", "Visit_sri_asimdshf_r"},
6390       {"00x110", "Visit_sqshlu_asimdshf_r"},
6391       {"010x00", "Visit_sri_asimdshf_r"},
6392       {"010x10", "Visit_sqshlu_asimdshf_r"},
6393       {"011100", "Visit_sri_asimdshf_r"},
6394       {"011110", "Visit_sqshlu_asimdshf_r"},
6395       {"0x1000", "Visit_sri_asimdshf_r"},
6396       {"0x1010", "Visit_sqshlu_asimdshf_r"},
6397     },
6398   },
6399 
6400   { "Decode_vmjgmg",
6401     {30, 23, 22},
6402     { {"000", "Visit_stxrb_sr32_ldstexcl"},
6403       {"001", "Visit_ldxrb_lr32_ldstexcl"},
6404       {"010", "Visit_stllrb_sl32_ldstexcl"},
6405       {"011", "Visit_ldlarb_lr32_ldstexcl"},
6406       {"100", "Visit_stxrh_sr32_ldstexcl"},
6407       {"101", "Visit_ldxrh_lr32_ldstexcl"},
6408       {"110", "Visit_stllrh_sl32_ldstexcl"},
6409       {"111", "Visit_ldlarh_lr32_ldstexcl"},
6410     },
6411   },
6412 
6413   { "Decode_vmjtrx",
6414     {23, 22, 12},
6415     { {"001", "Visit_sudot_asimdelem_d"},
6416       {"011", "Visit_bfdot_asimdelem_e"},
6417       {"101", "Visit_usdot_asimdelem_d"},
6418       {"111", "Visit_bfmlal_asimdelem_f"},
6419       {"xx0", "Visit_sdot_asimdelem_d"},
6420     },
6421   },
6422 
6423   { "Decode_vmjzyk",
6424     {30, 23, 22},
6425     { {"000", "Visit_stp_32_ldstpair_off"},
6426       {"001", "Visit_ldp_32_ldstpair_off"},
6427       {"010", "Visit_stp_32_ldstpair_pre"},
6428       {"011", "Visit_ldp_32_ldstpair_pre"},
6429       {"100", "Visit_stgp_64_ldstpair_off"},
6430       {"101", "Visit_ldpsw_64_ldstpair_off"},
6431       {"110", "Visit_stgp_64_ldstpair_pre"},
6432       {"111", "Visit_ldpsw_64_ldstpair_pre"},
6433     },
6434   },
6435 
6436   { "Decode_vmplgv",
6437     {12},
6438     { {"0", "Visit_ld1_asisdlsop_dx1_r1d"},
6439     },
6440   },
6441 
6442   { "Decode_vmpnlv",
6443     {11, 10, 9, 8, 7, 6},
6444     { {"000000", "Visit_wfit_only_systeminstrswithreg"},
6445     },
6446   },
6447 
6448   { "Decode_vnpqrh",
6449     {30, 23, 22},
6450     { {"000", "Visit_stp_s_ldstpair_off"},
6451       {"001", "Visit_ldp_s_ldstpair_off"},
6452       {"010", "Visit_stp_s_ldstpair_pre"},
6453       {"011", "Visit_ldp_s_ldstpair_pre"},
6454       {"100", "Visit_stp_d_ldstpair_off"},
6455       {"101", "Visit_ldp_d_ldstpair_off"},
6456       {"110", "Visit_stp_d_ldstpair_pre"},
6457       {"111", "Visit_ldp_d_ldstpair_pre"},
6458     },
6459   },
6460 
6461   { "Decode_vnrnmg",
6462     {17},
6463     { {"0", "Visit_st4_asisdlse_r4"},
6464     },
6465   },
6466 
6467   { "Decode_vpkhvh",
6468     {17},
6469     { {"0", "Visit_st2_asisdlso_h2_2h"},
6470     },
6471   },
6472 
6473   { "Decode_vpkptr",
6474     {30, 23, 22},
6475     { {"000", "Visit_stnp_32_ldstnapair_offs"},
6476       {"001", "Visit_ldnp_32_ldstnapair_offs"},
6477       {"010", "Visit_stp_32_ldstpair_post"},
6478       {"011", "Visit_ldp_32_ldstpair_post"},
6479       {"110", "Visit_stgp_64_ldstpair_post"},
6480       {"111", "Visit_ldpsw_64_ldstpair_post"},
6481     },
6482   },
6483 
6484   { "Decode_vpmxrj",
6485     {13},
6486     { {"0", "Visit_histcnt_z_p_zz"},
6487       {"1", "Decode_jxszhy"},
6488     },
6489   },
6490 
6491   { "Decode_vppthj",
6492     {30, 23},
6493     { {"00", "Visit_add_32_addsub_imm"},
6494       {"10", "Visit_sub_32_addsub_imm"},
6495     },
6496   },
6497 
6498   { "Decode_vprkpq",
6499     {13, 12, 11, 10},
6500     { {"0000", "Visit_saddwb_z_zz"},
6501       {"0001", "Visit_saddwt_z_zz"},
6502       {"0010", "Visit_uaddwb_z_zz"},
6503       {"0011", "Visit_uaddwt_z_zz"},
6504       {"0100", "Visit_ssubwb_z_zz"},
6505       {"0101", "Visit_ssubwt_z_zz"},
6506       {"0110", "Visit_usubwb_z_zz"},
6507       {"0111", "Visit_usubwt_z_zz"},
6508       {"1000", "Visit_sqdmullb_z_zz"},
6509       {"1001", "Visit_sqdmullt_z_zz"},
6510       {"1010", "Visit_pmullb_z_zz"},
6511       {"1011", "Visit_pmullt_z_zz"},
6512       {"1100", "Visit_smullb_z_zz"},
6513       {"1101", "Visit_smullt_z_zz"},
6514       {"1110", "Visit_umullb_z_zz"},
6515       {"1111", "Visit_umullt_z_zz"},
6516     },
6517   },
6518 
6519   { "Decode_vpxvjs",
6520     {20, 19, 18, 17, 16},
6521     { {"00000", "Visit_fcvtns_32s_float2int"},
6522       {"00001", "Visit_fcvtnu_32s_float2int"},
6523       {"00010", "Visit_scvtf_s32_float2int"},
6524       {"00011", "Visit_ucvtf_s32_float2int"},
6525       {"00100", "Visit_fcvtas_32s_float2int"},
6526       {"00101", "Visit_fcvtau_32s_float2int"},
6527       {"00110", "Visit_fmov_32s_float2int"},
6528       {"00111", "Visit_fmov_s32_float2int"},
6529       {"01000", "Visit_fcvtps_32s_float2int"},
6530       {"01001", "Visit_fcvtpu_32s_float2int"},
6531       {"10000", "Visit_fcvtms_32s_float2int"},
6532       {"10001", "Visit_fcvtmu_32s_float2int"},
6533       {"11000", "Visit_fcvtzs_32s_float2int"},
6534       {"11001", "Visit_fcvtzu_32s_float2int"},
6535     },
6536   },
6537 
6538   { "Decode_vpykkg",
6539     {23, 22, 10},
6540     { {"000", "Visit_ext_asimdext_only"},
6541       {"001", "Decode_jnmgrh"},
6542       {"011", "Decode_vytgtz"},
6543       {"111", "Decode_jrnlzs"},
6544     },
6545   },
6546 
6547   { "Decode_vqlytp",
6548     {12},
6549     { {"0", "Visit_st3_asisdlsop_dx3_r3d"},
6550     },
6551   },
6552 
6553   { "Decode_vqqrjl",
6554     {23, 22, 20, 19, 13, 11, 10},
6555     { {"0001001", "Visit_shl_asisdshf_r"},
6556       {"0001101", "Visit_sqshl_asisdshf_r"},
6557       {"001x001", "Visit_shl_asisdshf_r"},
6558       {"001x101", "Visit_sqshl_asisdshf_r"},
6559       {"00xx0x0", "Visit_fmls_asisdelem_rh_h"},
6560       {"01xx001", "Visit_shl_asisdshf_r"},
6561       {"01xx101", "Visit_sqshl_asisdshf_r"},
6562       {"1xxx0x0", "Visit_fmls_asisdelem_r_sd"},
6563       {"xxxx1x0", "Visit_sqdmlsl_asisdelem_l"},
6564     },
6565   },
6566 
6567   { "Decode_vqvqhp",
6568     {30, 23, 22},
6569     { {"000", "Visit_str_32_ldst_pos"},
6570       {"001", "Visit_ldr_32_ldst_pos"},
6571       {"010", "Visit_ldrsw_64_ldst_pos"},
6572       {"100", "Visit_str_64_ldst_pos"},
6573       {"101", "Visit_ldr_64_ldst_pos"},
6574       {"110", "Visit_prfm_p_ldst_pos"},
6575     },
6576   },
6577 
6578   { "Decode_vqzlzt",
6579     {30, 23},
6580     { {"00", "Visit_and_64_log_imm"},
6581       {"01", "Visit_movn_64_movewide"},
6582       {"10", "Visit_eor_64_log_imm"},
6583       {"11", "Visit_movz_64_movewide"},
6584     },
6585   },
6586 
6587   { "Decode_vsqlkr",
6588     {23, 22, 20, 19, 18, 17, 16},
6589     { {"0111001", "Visit_frintx_asimdmiscfp16_r"},
6590       {"0x00001", "Visit_frintx_asimdmisc_r"},
6591       {"1111001", "Visit_frinti_asimdmiscfp16_r"},
6592       {"1x00001", "Visit_frinti_asimdmisc_r"},
6593       {"xx00000", "Visit_cmle_asimdmisc_z"},
6594     },
6595   },
6596 
6597   { "Decode_vsqpzr",
6598     {23},
6599     { {"0", "Visit_faddp_asimdsame_only"},
6600       {"1", "Visit_fabd_asimdsame_only"},
6601     },
6602   },
6603 
6604   { "Decode_vsvrgt",
6605     {17},
6606     { {"0", "Visit_fadda_v_p_z"},
6607     },
6608   },
6609 
6610   { "Decode_vsvtqz",
6611     {30, 23, 22},
6612     { {"00x", "Visit_add_64_addsub_imm"},
6613       {"010", "Visit_addg_64_addsub_immtags"},
6614       {"10x", "Visit_sub_64_addsub_imm"},
6615       {"110", "Visit_subg_64_addsub_immtags"},
6616     },
6617   },
6618 
6619   { "Decode_vtxyxz",
6620     {23, 22, 13, 12, 11, 10},
6621     { {"01x1x0", "Visit_fcmla_asimdelem_c_h"},
6622       {"0x0001", "Visit_ushr_asimdshf_r"},
6623       {"0x0101", "Visit_usra_asimdshf_r"},
6624       {"0x1001", "Visit_urshr_asimdshf_r"},
6625       {"0x1101", "Visit_ursra_asimdshf_r"},
6626       {"10x1x0", "Visit_fcmla_asimdelem_c_s"},
6627       {"xx00x0", "Visit_mla_asimdelem_r"},
6628       {"xx10x0", "Visit_umlal_asimdelem_l"},
6629     },
6630   },
6631 
6632   { "Decode_vvhzhv",
6633     {30, 23, 22, 13, 12, 11, 10},
6634     { {"0000000", "Visit_swpb_32_memop"},
6635       {"000xx10", "Visit_strb_32b_ldst_regoff"},
6636       {"0010000", "Visit_swplb_32_memop"},
6637       {"001xx10", "Visit_ldrb_32b_ldst_regoff"},
6638       {"0100000", "Visit_swpab_32_memop"},
6639       {"010xx10", "Visit_ldrsb_64b_ldst_regoff"},
6640       {"0110000", "Visit_swpalb_32_memop"},
6641       {"011xx10", "Visit_ldrsb_32b_ldst_regoff"},
6642       {"1000000", "Visit_swph_32_memop"},
6643       {"100xx10", "Visit_strh_32_ldst_regoff"},
6644       {"1010000", "Visit_swplh_32_memop"},
6645       {"101xx10", "Visit_ldrh_32_ldst_regoff"},
6646       {"1100000", "Visit_swpah_32_memop"},
6647       {"110xx10", "Visit_ldrsh_64_ldst_regoff"},
6648       {"1110000", "Visit_swpalh_32_memop"},
6649       {"111xx10", "Visit_ldrsh_32_ldst_regoff"},
6650     },
6651   },
6652 
6653   { "Decode_vvprhx",
6654     {0},
6655     { {"0", "Visit_blr_64_branch_reg"},
6656     },
6657   },
6658 
6659   { "Decode_vvrmvg",
6660     {12},
6661     { {"1", "Decode_typysz"},
6662     },
6663   },
6664 
6665   { "Decode_vvtnrv",
6666     {23, 22, 20, 19, 18},
6667     { {"00000", "Visit_orr_z_zi"},
6668       {"01000", "Visit_eor_z_zi"},
6669       {"10000", "Visit_and_z_zi"},
6670       {"11000", "Visit_dupm_z_i"},
6671     },
6672   },
6673 
6674   { "Decode_vvxsxt",
6675     {4},
6676     { {"0", "Visit_ands_p_p_pp_z"},
6677       {"1", "Visit_bics_p_p_pp_z"},
6678     },
6679   },
6680 
6681   { "Decode_vxgzqy",
6682     {22},
6683     { {"0", "Visit_ldrsw_64_ldst_regoff"},
6684     },
6685   },
6686 
6687   { "Decode_vxhgzz",
6688     {23, 22, 12, 11, 10},
6689     { {"00xxx", "Visit_ext_z_zi_des"},
6690       {"01xxx", "Visit_ext_z_zi_con"},
6691       {"10000", "Visit_zip1_z_zz_q"},
6692       {"10001", "Visit_zip2_z_zz_q"},
6693       {"10010", "Visit_uzp1_z_zz_q"},
6694       {"10011", "Visit_uzp2_z_zz_q"},
6695       {"10110", "Visit_trn1_z_zz_q"},
6696       {"10111", "Visit_trn2_z_zz_q"},
6697     },
6698   },
6699 
6700   { "Decode_vxsjgg",
6701     {30, 22, 11},
6702     { {"001", "Decode_pxnnrz"},
6703       {"010", "Visit_ccmn_32_condcmp_reg"},
6704       {"011", "Visit_ccmn_32_condcmp_imm"},
6705       {"110", "Visit_ccmp_32_condcmp_reg"},
6706       {"111", "Visit_ccmp_32_condcmp_imm"},
6707     },
6708   },
6709 
6710   { "Decode_vxsvhs",
6711     {13, 12},
6712     { {"00", "Visit_adcs_64_addsub_carry"},
6713     },
6714   },
6715 
6716   { "Decode_vxylhh",
6717     {23, 22},
6718     { {"01", "Visit_fcmla_asimdelem_c_h"},
6719       {"10", "Visit_fcmla_asimdelem_c_s"},
6720     },
6721   },
6722 
6723   { "Decode_vylhvl",
6724     {20, 19, 18, 17, 16, 13},
6725     { {"000000", "Visit_fabs_h_floatdp1"},
6726       {"000010", "Visit_fsqrt_h_floatdp1"},
6727       {"000100", "Visit_fcvt_dh_floatdp1"},
6728       {"001000", "Visit_frintp_h_floatdp1"},
6729       {"001010", "Visit_frintz_h_floatdp1"},
6730       {"001110", "Visit_frinti_h_floatdp1"},
6731     },
6732   },
6733 
6734   { "Decode_vytgtz",
6735     {13, 12, 11},
6736     { {"000", "Visit_fmaxnmp_asimdsamefp16_only"},
6737       {"010", "Visit_faddp_asimdsamefp16_only"},
6738       {"011", "Visit_fmul_asimdsamefp16_only"},
6739       {"100", "Visit_fcmge_asimdsamefp16_only"},
6740       {"101", "Visit_facge_asimdsamefp16_only"},
6741       {"110", "Visit_fmaxp_asimdsamefp16_only"},
6742       {"111", "Visit_fdiv_asimdsamefp16_only"},
6743     },
6744   },
6745 
6746   { "Decode_vytxll",
6747     {18, 17, 12},
6748     { {"000", "Visit_st2_asisdlso_d2_2d"},
6749     },
6750   },
6751 
6752   { "Decode_vyygqs",
6753     {23, 22, 20, 19, 12, 11, 10},
6754     { {"00x1001", "Visit_sqshrun_asisdshf_n"},
6755       {"00x1011", "Visit_sqrshrun_asisdshf_n"},
6756       {"00x1101", "Visit_uqshrn_asisdshf_n"},
6757       {"00x1111", "Visit_uqrshrn_asisdshf_n"},
6758       {"00xx1x0", "Visit_fmulx_asisdelem_rh_h"},
6759       {"010x001", "Visit_sqshrun_asisdshf_n"},
6760       {"010x011", "Visit_sqrshrun_asisdshf_n"},
6761       {"010x101", "Visit_uqshrn_asisdshf_n"},
6762       {"010x111", "Visit_uqrshrn_asisdshf_n"},
6763       {"0111001", "Visit_sqshrun_asisdshf_n"},
6764       {"0111011", "Visit_sqrshrun_asisdshf_n"},
6765       {"0111101", "Visit_uqshrn_asisdshf_n"},
6766       {"0111111", "Visit_uqrshrn_asisdshf_n"},
6767       {"0x10001", "Visit_sqshrun_asisdshf_n"},
6768       {"0x10011", "Visit_sqrshrun_asisdshf_n"},
6769       {"0x10101", "Visit_uqshrn_asisdshf_n"},
6770       {"0x10111", "Visit_uqrshrn_asisdshf_n"},
6771       {"1xxx1x0", "Visit_fmulx_asisdelem_r_sd"},
6772     },
6773   },
6774 
6775   { "Decode_vyztqx",
6776     {8},
6777     { {"0", "Visit_tstart_br_systemresult"},
6778       {"1", "Visit_ttest_br_systemresult"},
6779     },
6780   },
6781 
6782   { "Decode_vzjvtv",
6783     {23, 22, 12, 11, 10},
6784     { {"01001", "Visit_bfmmla_z_zzz"},
6785       {"10001", "Visit_fmmla_z_zzz_s"},
6786       {"11001", "Visit_fmmla_z_zzz_d"},
6787     },
6788   },
6789 
6790   { "Decode_vzzvlr",
6791     {23, 22, 20, 19, 18, 16, 13},
6792     { {"0000000", "Decode_tlzlrj"},
6793       {"0000001", "Decode_yhxvhy"},
6794       {"0100000", "Decode_hqhzgj"},
6795       {"0100001", "Decode_kzrklp"},
6796       {"100xxx0", "Visit_st2_asisdlsop_bx2_r2b"},
6797       {"100xxx1", "Visit_st4_asisdlsop_bx4_r4b"},
6798       {"1010xx0", "Visit_st2_asisdlsop_bx2_r2b"},
6799       {"1010xx1", "Visit_st4_asisdlsop_bx4_r4b"},
6800       {"10110x0", "Visit_st2_asisdlsop_bx2_r2b"},
6801       {"10110x1", "Visit_st4_asisdlsop_bx4_r4b"},
6802       {"1011100", "Visit_st2_asisdlsop_bx2_r2b"},
6803       {"1011101", "Visit_st4_asisdlsop_bx4_r4b"},
6804       {"1011110", "Decode_mykjss"},
6805       {"1011111", "Decode_xkkggt"},
6806       {"110xxx0", "Visit_ld2_asisdlsop_bx2_r2b"},
6807       {"110xxx1", "Visit_ld4_asisdlsop_bx4_r4b"},
6808       {"1110xx0", "Visit_ld2_asisdlsop_bx2_r2b"},
6809       {"1110xx1", "Visit_ld4_asisdlsop_bx4_r4b"},
6810       {"11110x0", "Visit_ld2_asisdlsop_bx2_r2b"},
6811       {"11110x1", "Visit_ld4_asisdlsop_bx4_r4b"},
6812       {"1111100", "Visit_ld2_asisdlsop_bx2_r2b"},
6813       {"1111101", "Visit_ld4_asisdlsop_bx4_r4b"},
6814       {"1111110", "Decode_gvstrp"},
6815       {"1111111", "Decode_qtgvhn"},
6816     },
6817   },
6818 
6819   { "Decode_xgvgmk",
6820     {23, 22, 4},
6821     { {"000", "Visit_fccmp_s_floatccmp"},
6822       {"001", "Visit_fccmpe_s_floatccmp"},
6823       {"010", "Visit_fccmp_d_floatccmp"},
6824       {"011", "Visit_fccmpe_d_floatccmp"},
6825       {"110", "Visit_fccmp_h_floatccmp"},
6826       {"111", "Visit_fccmpe_h_floatccmp"},
6827     },
6828   },
6829 
6830   { "Decode_xhkgqh",
6831     {30, 23, 22},
6832     { {"000", "Visit_stp_64_ldstpair_off"},
6833       {"001", "Visit_ldp_64_ldstpair_off"},
6834       {"010", "Visit_stp_64_ldstpair_pre"},
6835       {"011", "Visit_ldp_64_ldstpair_pre"},
6836     },
6837   },
6838 
6839   { "Decode_xhktsk",
6840     {22},
6841     { {"0", "Visit_smullt_z_zzi_s"},
6842       {"1", "Visit_smullt_z_zzi_d"},
6843     },
6844   },
6845 
6846   { "Decode_xhlhmh",
6847     {4},
6848     { {"0", "Visit_cmplo_p_p_zi"},
6849       {"1", "Visit_cmpls_p_p_zi"},
6850     },
6851   },
6852 
6853   { "Decode_xhltxn",
6854     {12, 10},
6855     { {"00", "Decode_jqtltz"},
6856       {"01", "Decode_rkvyqk"},
6857       {"10", "Decode_zpnsrv"},
6858       {"11", "Decode_lhvtrp"},
6859     },
6860   },
6861 
6862   { "Decode_xhmpmy",
6863     {4},
6864     { {"0", "Visit_and_p_p_pp_z"},
6865       {"1", "Visit_bic_p_p_pp_z"},
6866     },
6867   },
6868 
6869   { "Decode_xhvtjg",
6870     {11},
6871     { {"0", "Decode_mpyklp"},
6872     },
6873   },
6874 
6875   { "Decode_xhxrnt",
6876     {30},
6877     { {"0", "Decode_zxhhny"},
6878       {"1", "Decode_lhpgsn"},
6879     },
6880   },
6881 
6882   { "Decode_xjghst",
6883     {13, 12, 11, 10},
6884     { {"0000", "Decode_kvmrng"},
6885       {"0001", "Decode_vkyngx"},
6886       {"0011", "Decode_lxqynh"},
6887       {"0100", "Decode_kjngjl"},
6888       {"0101", "Decode_xmqgmz"},
6889       {"0110", "Visit_uzp1_asimdperm_only"},
6890       {"0111", "Decode_shzysp"},
6891       {"1000", "Decode_strkph"},
6892       {"1001", "Decode_jpvljz"},
6893       {"1010", "Visit_trn1_asimdperm_only"},
6894       {"1011", "Decode_jryylt"},
6895       {"1100", "Decode_grxzzg"},
6896       {"1101", "Decode_lnnyzt"},
6897       {"1110", "Visit_zip1_asimdperm_only"},
6898       {"1111", "Decode_szttjy"},
6899     },
6900   },
6901 
6902   { "Decode_xjxppp",
6903     {1, 0},
6904     { {"11", "Visit_brabz_64_branch_reg"},
6905     },
6906   },
6907 
6908   { "Decode_xkkggt",
6909     {17},
6910     { {"0", "Visit_st4_asisdlsop_bx4_r4b"},
6911       {"1", "Visit_st4_asisdlsop_b4_i4b"},
6912     },
6913   },
6914 
6915   { "Decode_xlhjhx",
6916     {30},
6917     { {"0", "Visit_bl_only_branch_imm"},
6918       {"1", "Decode_zhrtts"},
6919     },
6920   },
6921 
6922   { "Decode_xmqgmz",
6923     {23, 22},
6924     { {"01", "Visit_fadd_asimdsamefp16_only"},
6925       {"11", "Visit_fsub_asimdsamefp16_only"},
6926     },
6927   },
6928 
6929   { "Decode_xmqvpl",
6930     {12},
6931     { {"0", "Visit_ld1_asisdlsop_dx1_r1d"},
6932     },
6933   },
6934 
6935   { "Decode_xmtlmj",
6936     {23, 22, 20, 19, 11},
6937     { {"00010", "Visit_srshr_asisdshf_r"},
6938       {"001x0", "Visit_srshr_asisdshf_r"},
6939       {"01xx0", "Visit_srshr_asisdshf_r"},
6940     },
6941   },
6942 
6943   { "Decode_xmxpnx",
6944     {10},
6945     { {"0", "Visit_sri_z_zzi"},
6946       {"1", "Visit_sli_z_zzi"},
6947     },
6948   },
6949 
6950   { "Decode_xnsrny",
6951     {30, 23, 22},
6952     { {"000", "Visit_madd_64a_dp_3src"},
6953       {"001", "Visit_smulh_64_dp_3src"},
6954       {"011", "Visit_umulh_64_dp_3src"},
6955     },
6956   },
6957 
6958   { "Decode_xpkkpn",
6959     {17},
6960     { {"1", "Visit_frsqrte_z_z"},
6961     },
6962   },
6963 
6964   { "Decode_xpmvjv",
6965     {13, 12},
6966     { {"00", "Visit_sqshl_asisdsame_only"},
6967       {"01", "Visit_sqrshl_asisdsame_only"},
6968     },
6969   },
6970 
6971   { "Decode_xpqglq",
6972     {4},
6973     { {"0", "Visit_cmpeq_p_p_zi"},
6974       {"1", "Visit_cmpne_p_p_zi"},
6975     },
6976   },
6977 
6978   { "Decode_xprlgy",
6979     {30, 23, 22, 11, 10},
6980     { {"00010", "Visit_str_s_ldst_regoff"},
6981       {"00110", "Visit_ldr_s_ldst_regoff"},
6982       {"10010", "Visit_str_d_ldst_regoff"},
6983       {"10110", "Visit_ldr_d_ldst_regoff"},
6984     },
6985   },
6986 
6987   { "Decode_xpvpqq",
6988     {23, 22, 11, 10, 4, 3, 2},
6989     { {"0000000", "Decode_hngpxg"},
6990       {"0010111", "Decode_gnytkh"},
6991       {"0011111", "Decode_xjxppp"},
6992       {"0100000", "Decode_nnhprs"},
6993       {"0110111", "Decode_hmtxlh"},
6994       {"0111111", "Decode_qtxypt"},
6995       {"1000000", "Decode_rmltms"},
6996       {"1010111", "Decode_qqpkkm"},
6997       {"1011111", "Decode_klnhpj"},
6998     },
6999   },
7000 
7001   { "Decode_xqgxjp",
7002     {18, 17, 16, 13, 12, 11, 10, 9, 7, 6, 5},
7003     { {"01111000011", "Decode_vyztqx"},
7004     },
7005   },
7006 
7007   { "Decode_xqhgkk",
7008     {30},
7009     { {"0", "Visit_b_only_branch_imm"},
7010     },
7011   },
7012 
7013   { "Decode_xqjrgk",
7014     {12},
7015     { {"0", "Visit_ld4_asisdlsop_dx4_r4d"},
7016     },
7017   },
7018 
7019   { "Decode_xrhhjz",
7020     {11},
7021     { {"0", "Decode_hzxjsp"},
7022     },
7023   },
7024 
7025   { "Decode_xrhmtg",
7026     {30, 23, 22, 11, 10},
7027     { {"00000", "Visit_stur_s_ldst_unscaled"},
7028       {"00001", "Visit_str_s_ldst_immpost"},
7029       {"00011", "Visit_str_s_ldst_immpre"},
7030       {"00100", "Visit_ldur_s_ldst_unscaled"},
7031       {"00101", "Visit_ldr_s_ldst_immpost"},
7032       {"00111", "Visit_ldr_s_ldst_immpre"},
7033       {"10000", "Visit_stur_d_ldst_unscaled"},
7034       {"10001", "Visit_str_d_ldst_immpost"},
7035       {"10011", "Visit_str_d_ldst_immpre"},
7036       {"10100", "Visit_ldur_d_ldst_unscaled"},
7037       {"10101", "Visit_ldr_d_ldst_immpost"},
7038       {"10111", "Visit_ldr_d_ldst_immpre"},
7039     },
7040   },
7041 
7042   { "Decode_xrpmzt",
7043     {17},
7044     { {"0", "Visit_st4_asisdlsop_hx4_r4h"},
7045       {"1", "Visit_st4_asisdlsop_h4_i4h"},
7046     },
7047   },
7048 
7049   { "Decode_xrxvpr",
7050     {23, 22},
7051     { {"00", "Decode_spmkmm"},
7052     },
7053   },
7054 
7055   { "Decode_xryzqs",
7056     {30, 23, 22, 13, 12, 11, 10},
7057     { {"0001111", "Visit_caspl_cp32_ldstexcl"},
7058       {"0011111", "Visit_caspal_cp32_ldstexcl"},
7059       {"0101111", "Visit_caslb_c32_ldstexcl"},
7060       {"0111111", "Visit_casalb_c32_ldstexcl"},
7061       {"1001111", "Visit_caspl_cp64_ldstexcl"},
7062       {"1011111", "Visit_caspal_cp64_ldstexcl"},
7063       {"1101111", "Visit_caslh_c32_ldstexcl"},
7064       {"1111111", "Visit_casalh_c32_ldstexcl"},
7065     },
7066   },
7067 
7068   { "Decode_xsgxyy",
7069     {9, 8, 7, 6, 5},
7070     { {"11111", "Visit_autizb_64z_dp_1src"},
7071     },
7072   },
7073 
7074   { "Decode_xstkrn",
7075     {20, 19},
7076     { {"00", "Decode_hrllsn"},
7077       {"01", "Decode_kqvljp"},
7078       {"10", "Decode_lxhlkx"},
7079       {"11", "Decode_rjysnh"},
7080     },
7081   },
7082 
7083   { "Decode_xtgtyz",
7084     {19, 18, 17, 16},
7085     { {"0000", "Visit_brkb_p_p_p"},
7086     },
7087   },
7088 
7089   { "Decode_xtqmyj",
7090     {30, 23, 22},
7091     { {"000", "Visit_orr_32_log_imm"},
7092       {"100", "Visit_ands_32s_log_imm"},
7093       {"110", "Visit_movk_32_movewide"},
7094     },
7095   },
7096 
7097   { "Decode_xtxyxj",
7098     {4},
7099     { {"0", "Visit_orr_p_p_pp_z"},
7100       {"1", "Visit_orn_p_p_pp_z"},
7101     },
7102   },
7103 
7104   { "Decode_xtzlzy",
7105     {12, 11, 10},
7106     { {"000", "Visit_fadd_z_zz"},
7107       {"001", "Visit_fsub_z_zz"},
7108       {"010", "Visit_fmul_z_zz"},
7109       {"011", "Visit_ftsmul_z_zz"},
7110       {"110", "Visit_frecps_z_zz"},
7111       {"111", "Visit_frsqrts_z_zz"},
7112     },
7113   },
7114 
7115   { "Decode_xvlnmy",
7116     {9, 8, 7, 6, 5},
7117     { {"11111", "Visit_autdza_64z_dp_1src"},
7118     },
7119   },
7120 
7121   { "Decode_xvnyxq",
7122     {30, 23, 13, 4},
7123     { {"0000", "Visit_prfb_i_p_bz_s_x32_scaled"},
7124       {"0010", "Visit_prfh_i_p_bz_s_x32_scaled"},
7125       {"010x", "Visit_ld1sh_z_p_bz_s_x32_scaled"},
7126       {"011x", "Visit_ldff1sh_z_p_bz_s_x32_scaled"},
7127       {"1000", "Visit_prfb_i_p_bz_d_x32_scaled"},
7128       {"1010", "Visit_prfh_i_p_bz_d_x32_scaled"},
7129       {"110x", "Visit_ld1sh_z_p_bz_d_x32_scaled"},
7130       {"111x", "Visit_ldff1sh_z_p_bz_d_x32_scaled"},
7131     },
7132   },
7133 
7134   { "Decode_xvppmm",
7135     {30, 23, 22, 13, 12, 11, 10},
7136     { {"0xx0xxx", "Visit_mla_z_p_zzz"},
7137       {"0xx1xxx", "Visit_mls_z_p_zzz"},
7138       {"1101110", "Visit_usdot_z_zzz_s"},
7139       {"1xx0000", "Visit_smlalb_z_zzz"},
7140       {"1xx0001", "Visit_smlalt_z_zzz"},
7141       {"1xx0010", "Visit_umlalb_z_zzz"},
7142       {"1xx0011", "Visit_umlalt_z_zzz"},
7143       {"1xx0100", "Visit_smlslb_z_zzz"},
7144       {"1xx0101", "Visit_smlslt_z_zzz"},
7145       {"1xx0110", "Visit_umlslb_z_zzz"},
7146       {"1xx0111", "Visit_umlslt_z_zzz"},
7147       {"1xx1000", "Visit_sqdmlalb_z_zzz"},
7148       {"1xx1001", "Visit_sqdmlalt_z_zzz"},
7149       {"1xx1010", "Visit_sqdmlslb_z_zzz"},
7150       {"1xx1011", "Visit_sqdmlslt_z_zzz"},
7151       {"1xx1100", "Visit_sqrdmlah_z_zzz"},
7152       {"1xx1101", "Visit_sqrdmlsh_z_zzz"},
7153     },
7154   },
7155 
7156   { "Decode_xxjrsy",
7157     {23, 22, 9},
7158     { {"000", "Visit_rdffr_p_p_f"},
7159       {"010", "Visit_rdffrs_p_p_f"},
7160     },
7161   },
7162 
7163   { "Decode_xxkvsy",
7164     {30, 22, 11, 10},
7165     { {"0000", "Visit_csel_64_condsel"},
7166       {"0001", "Visit_csinc_64_condsel"},
7167       {"0111", "Decode_tnxlnl"},
7168       {"1000", "Visit_csinv_64_condsel"},
7169       {"1001", "Visit_csneg_64_condsel"},
7170       {"1100", "Decode_qjyvln"},
7171       {"1101", "Decode_nvthzh"},
7172     },
7173   },
7174 
7175   { "Decode_xxpqgg",
7176     {30, 23, 22},
7177     { {"001", "Visit_sbfm_64m_bitfield"},
7178       {"011", "Visit_extr_64_extract"},
7179       {"101", "Visit_ubfm_64m_bitfield"},
7180     },
7181   },
7182 
7183   { "Decode_xxpzrl",
7184     {13},
7185     { {"0", "Visit_mls_asimdelem_r"},
7186       {"1", "Visit_umlsl_asimdelem_l"},
7187     },
7188   },
7189 
7190   { "Decode_xxxxlh",
7191     {4},
7192     { {"0", "Visit_ccmn_64_condcmp_imm"},
7193     },
7194   },
7195 
7196   { "Decode_xxyklv",
7197     {23, 22, 13, 12, 11, 10},
7198     { {"000000", "Visit_tbl_asimdtbl_l3_3"},
7199       {"000100", "Visit_tbx_asimdtbl_l3_3"},
7200       {"001000", "Visit_tbl_asimdtbl_l4_4"},
7201       {"001100", "Visit_tbx_asimdtbl_l4_4"},
7202       {"xx0110", "Visit_uzp2_asimdperm_only"},
7203       {"xx1010", "Visit_trn2_asimdperm_only"},
7204       {"xx1110", "Visit_zip2_asimdperm_only"},
7205     },
7206   },
7207 
7208   { "Decode_xygxsv",
7209     {17},
7210     { {"0", "Visit_ld3_asisdlsop_hx3_r3h"},
7211       {"1", "Visit_ld3_asisdlsop_h3_i3h"},
7212     },
7213   },
7214 
7215   { "Decode_xyhmgh",
7216     {23, 22, 20, 9},
7217     { {"0000", "Decode_xhmpmy"},
7218       {"0001", "Decode_qnprqt"},
7219       {"0010", "Decode_nnzhgm"},
7220       {"0100", "Decode_vvxsxt"},
7221       {"0101", "Decode_yzmjhn"},
7222       {"0110", "Decode_mkgsly"},
7223       {"1000", "Decode_xtxyxj"},
7224       {"1001", "Decode_hmtmlq"},
7225       {"1010", "Decode_xtgtyz"},
7226       {"1100", "Decode_yynmjl"},
7227       {"1101", "Decode_sjnspg"},
7228       {"1110", "Decode_jzjvtv"},
7229     },
7230   },
7231 
7232   { "Decode_xyhxzt",
7233     {22},
7234     { {"0", "Visit_prfm_p_ldst_regoff"},
7235     },
7236   },
7237 
7238   { "Decode_xyljvp",
7239     {30, 23, 22, 11, 10},
7240     { {"00000", "Decode_yjpstj"},
7241       {"01000", "Visit_csel_64_condsel"},
7242       {"01001", "Visit_csinc_64_condsel"},
7243       {"01100", "Decode_qghmks"},
7244       {"01101", "Decode_qzzlpv"},
7245       {"01110", "Decode_syktsg"},
7246       {"01111", "Decode_hjtvvm"},
7247       {"10000", "Decode_pvrylp"},
7248       {"11000", "Visit_csinv_64_condsel"},
7249       {"11001", "Visit_csneg_64_condsel"},
7250       {"11100", "Decode_kkgpjl"},
7251       {"11101", "Decode_tjtgjy"},
7252       {"11110", "Decode_qmzqsy"},
7253       {"11111", "Decode_nmkqzt"},
7254     },
7255   },
7256 
7257   { "Decode_xylmmp",
7258     {22, 12},
7259     { {"10", "Decode_nkjgpq"},
7260     },
7261   },
7262 
7263   { "Decode_xyzpvp",
7264     {23, 22, 13},
7265     { {"100", "Visit_fmlsl_asimdelem_lh"},
7266       {"xx1", "Visit_smlsl_asimdelem_l"},
7267     },
7268   },
7269 
7270   { "Decode_xzmjxk",
7271     {30},
7272     { {"1", "Decode_sntzjg"},
7273     },
7274   },
7275 
7276   { "Decode_xznsqh",
7277     {22, 20, 11},
7278     { {"000", "Visit_cntw_r_s"},
7279       {"010", "Visit_incw_r_rs"},
7280       {"100", "Visit_cntd_r_s"},
7281       {"110", "Visit_incd_r_rs"},
7282     },
7283   },
7284 
7285   { "Decode_xzyxnr",
7286     {30, 23, 22, 11, 10},
7287     { {"10001", "Visit_stg_64spost_ldsttags"},
7288       {"10010", "Visit_stg_64soffset_ldsttags"},
7289       {"10011", "Visit_stg_64spre_ldsttags"},
7290       {"10100", "Visit_ldg_64loffset_ldsttags"},
7291       {"10101", "Visit_stzg_64spost_ldsttags"},
7292       {"10110", "Visit_stzg_64soffset_ldsttags"},
7293       {"10111", "Visit_stzg_64spre_ldsttags"},
7294       {"11001", "Visit_st2g_64spost_ldsttags"},
7295       {"11010", "Visit_st2g_64soffset_ldsttags"},
7296       {"11011", "Visit_st2g_64spre_ldsttags"},
7297       {"11101", "Visit_stz2g_64spost_ldsttags"},
7298       {"11110", "Visit_stz2g_64soffset_ldsttags"},
7299       {"11111", "Visit_stz2g_64spre_ldsttags"},
7300     },
7301   },
7302 
7303   { "Decode_xzyylk",
7304     {20, 19, 18, 17, 16, 13},
7305     { {"000000", "Visit_fabs_s_floatdp1"},
7306       {"000010", "Visit_fsqrt_s_floatdp1"},
7307       {"000100", "Visit_fcvt_ds_floatdp1"},
7308       {"000110", "Visit_fcvt_hs_floatdp1"},
7309       {"001000", "Visit_frintp_s_floatdp1"},
7310       {"001010", "Visit_frintz_s_floatdp1"},
7311       {"001110", "Visit_frinti_s_floatdp1"},
7312       {"010000", "Visit_frint32x_s_floatdp1"},
7313       {"010010", "Visit_frint64x_s_floatdp1"},
7314     },
7315   },
7316 
7317   { "Decode_ygjslq",
7318     {4, 3, 2, 1, 0},
7319     { {"00000", "Visit_fcmp_h_floatcmp"},
7320       {"01000", "Visit_fcmp_hz_floatcmp"},
7321       {"10000", "Visit_fcmpe_h_floatcmp"},
7322       {"11000", "Visit_fcmpe_hz_floatcmp"},
7323     },
7324   },
7325 
7326   { "Decode_ygnypk",
7327     {22, 12},
7328     { {"10", "Decode_nqlgtn"},
7329     },
7330   },
7331 
7332   { "Decode_ygpjrl",
7333     {13, 12},
7334     { {"00", "Visit_adc_32_addsub_carry"},
7335     },
7336   },
7337 
7338   { "Decode_ygxhyg",
7339     {23, 22, 4},
7340     { {"000", "Visit_fccmp_s_floatccmp"},
7341       {"001", "Visit_fccmpe_s_floatccmp"},
7342       {"010", "Visit_fccmp_d_floatccmp"},
7343       {"011", "Visit_fccmpe_d_floatccmp"},
7344       {"110", "Visit_fccmp_h_floatccmp"},
7345       {"111", "Visit_fccmpe_h_floatccmp"},
7346     },
7347   },
7348 
7349   { "Decode_ygyxvx",
7350     {18, 17},
7351     { {"00", "Visit_ld2_asisdlso_s2_2s"},
7352     },
7353   },
7354 
7355   { "Decode_yhlntp",
7356     {20, 19, 18, 17, 16},
7357     { {"00000", "Visit_fexpa_z_z"},
7358     },
7359   },
7360 
7361   { "Decode_yhmlxk",
7362     {13, 12, 11, 10},
7363     { {"0000", "Visit_decp_z_p_z"},
7364       {"0010", "Visit_decp_r_p_r"},
7365     },
7366   },
7367 
7368   { "Decode_yhqyzj",
7369     {9, 8, 7, 6, 5},
7370     { {"00000", "Visit_fmov_d_floatimm"},
7371     },
7372   },
7373 
7374   { "Decode_yhxvhy",
7375     {17},
7376     { {"0", "Visit_st4_asisdlso_b4_4b"},
7377     },
7378   },
7379 
7380   { "Decode_yjjrgg",
7381     {30},
7382     { {"0", "Visit_cbnz_64_compbranch"},
7383     },
7384   },
7385 
7386   { "Decode_yjmngt",
7387     {30},
7388     { {"0", "Visit_sel_z_p_zz"},
7389       {"1", "Decode_vpmxrj"},
7390     },
7391   },
7392 
7393   { "Decode_yjpstj",
7394     {13, 12},
7395     { {"00", "Visit_adc_64_addsub_carry"},
7396     },
7397   },
7398 
7399   { "Decode_yjsjvt",
7400     {30, 23, 22, 11, 10},
7401     { {"00000", "Decode_vxsvhs"},
7402       {"00001", "Decode_rhzhyz"},
7403       {"00100", "Decode_zjsgkm"},
7404       {"00110", "Decode_xxxxlh"},
7405       {"01100", "Decode_mtjrtt"},
7406       {"10000", "Decode_yskkjs"},
7407       {"10100", "Decode_mjxzks"},
7408       {"10110", "Decode_tpkzxg"},
7409     },
7410   },
7411 
7412   { "Decode_yjxshz",
7413     {30, 23, 22, 11, 10},
7414     { {"00000", "Visit_stlurb_32_ldapstl_unscaled"},
7415       {"00100", "Visit_ldapurb_32_ldapstl_unscaled"},
7416       {"01000", "Visit_ldapursb_64_ldapstl_unscaled"},
7417       {"01100", "Visit_ldapursb_32_ldapstl_unscaled"},
7418       {"10000", "Visit_stlurh_32_ldapstl_unscaled"},
7419       {"10100", "Visit_ldapurh_32_ldapstl_unscaled"},
7420       {"11000", "Visit_ldapursh_64_ldapstl_unscaled"},
7421       {"11100", "Visit_ldapursh_32_ldapstl_unscaled"},
7422     },
7423   },
7424 
7425   { "Decode_yjxvkp",
7426     {18, 17, 12},
7427     { {"0x0", "Visit_st4_asisdlsop_dx4_r4d"},
7428       {"100", "Visit_st4_asisdlsop_dx4_r4d"},
7429       {"110", "Visit_st4_asisdlsop_d4_i4d"},
7430     },
7431   },
7432 
7433   { "Decode_yjzknm",
7434     {13, 12, 11, 10},
7435     { {"0000", "Visit_uqdecp_z_p_z"},
7436       {"0010", "Visit_uqdecp_r_p_r_uw"},
7437       {"0011", "Visit_uqdecp_r_p_r_x"},
7438     },
7439   },
7440 
7441   { "Decode_yjztsq",
7442     {20, 19, 18, 17, 16},
7443     { {"11111", "Visit_st64b_64l_memop"},
7444     },
7445   },
7446 
7447   { "Decode_ylhxlt",
7448     {30},
7449     { {"0", "Visit_ldrsw_64_loadlit"},
7450       {"1", "Visit_prfm_p_loadlit"},
7451     },
7452   },
7453 
7454   { "Decode_ylnsvy",
7455     {20, 19, 18, 17, 16},
7456     { {"00000", "Visit_dup_z_r"},
7457       {"00100", "Visit_insr_z_r"},
7458       {"10000", "Visit_sunpklo_z_z"},
7459       {"10001", "Visit_sunpkhi_z_z"},
7460       {"10010", "Visit_uunpklo_z_z"},
7461       {"10011", "Visit_uunpkhi_z_z"},
7462       {"10100", "Visit_insr_z_v"},
7463       {"11000", "Visit_rev_z_z"},
7464     },
7465   },
7466 
7467   { "Decode_ylqnqt",
7468     {18, 17, 12},
7469     { {"000", "Visit_ld4_asisdlso_d4_4d"},
7470     },
7471   },
7472 
7473   { "Decode_ylyskq",
7474     {13, 12, 11, 10},
7475     { {"0011", "Visit_uqadd_asisdsame_only"},
7476       {"1010", "Decode_yzqtyl"},
7477       {"1011", "Visit_uqsub_asisdsame_only"},
7478       {"1101", "Visit_cmhi_asisdsame_only"},
7479       {"1110", "Decode_jxzrxm"},
7480       {"1111", "Visit_cmhs_asisdsame_only"},
7481     },
7482   },
7483 
7484   { "Decode_ymgrgx",
7485     {22, 20, 19, 18, 17, 16},
7486     { {"111001", "Visit_ucvtf_asisdmiscfp16_r"},
7487       {"x00001", "Visit_ucvtf_asisdmisc_r"},
7488       {"x10000", "Visit_faddp_asisdpair_only_sd"},
7489     },
7490   },
7491 
7492   { "Decode_ymhgxg",
7493     {30, 13},
7494     { {"00", "Decode_yrmmmg"},
7495       {"01", "Decode_sghgtk"},
7496       {"10", "Decode_nxjkqs"},
7497       {"11", "Decode_yvyhlh"},
7498     },
7499   },
7500 
7501   { "Decode_ymhkrx",
7502     {30, 23, 22, 13, 4},
7503     { {"0000x", "Visit_ld1b_z_p_ai_s"},
7504       {"0001x", "Visit_ldff1b_z_p_ai_s"},
7505       {"0010x", "Visit_ld1rb_z_p_bi_u32"},
7506       {"0011x", "Visit_ld1rb_z_p_bi_u64"},
7507       {"0100x", "Visit_ld1h_z_p_ai_s"},
7508       {"0101x", "Visit_ldff1h_z_p_ai_s"},
7509       {"0110x", "Visit_ld1rh_z_p_bi_u32"},
7510       {"0111x", "Visit_ld1rh_z_p_bi_u64"},
7511       {"1000x", "Visit_ld1b_z_p_ai_d"},
7512       {"1001x", "Visit_ldff1b_z_p_ai_d"},
7513       {"10100", "Visit_prfw_i_p_bz_d_64_scaled"},
7514       {"10110", "Visit_prfd_i_p_bz_d_64_scaled"},
7515       {"1100x", "Visit_ld1h_z_p_ai_d"},
7516       {"1101x", "Visit_ldff1h_z_p_ai_d"},
7517       {"1110x", "Visit_ld1h_z_p_bz_d_64_scaled"},
7518       {"1111x", "Visit_ldff1h_z_p_bz_d_64_scaled"},
7519     },
7520   },
7521 
7522   { "Decode_ymkthj",
7523     {20, 9, 4},
7524     { {"000", "Visit_uzp2_p_pp"},
7525     },
7526   },
7527 
7528   { "Decode_ympyng",
7529     {30, 23, 22, 13},
7530     { {"0000", "Visit_ld1sh_z_p_br_s64"},
7531       {"0001", "Visit_ldff1sh_z_p_br_s64"},
7532       {"0010", "Visit_ld1w_z_p_br_u32"},
7533       {"0011", "Visit_ldff1w_z_p_br_u32"},
7534       {"0100", "Visit_ld1sb_z_p_br_s64"},
7535       {"0101", "Visit_ldff1sb_z_p_br_s64"},
7536       {"0110", "Visit_ld1sb_z_p_br_s16"},
7537       {"0111", "Visit_ldff1sb_z_p_br_s16"},
7538       {"1001", "Visit_stnt1w_z_p_br_contiguous"},
7539       {"1011", "Visit_st3w_z_p_br_contiguous"},
7540       {"10x0", "Visit_st1w_z_p_br"},
7541       {"1100", "Visit_str_z_bi"},
7542       {"1101", "Visit_stnt1d_z_p_br_contiguous"},
7543       {"1111", "Visit_st3d_z_p_br_contiguous"},
7544     },
7545   },
7546 
7547   { "Decode_ymznlj",
7548     {13, 10},
7549     { {"00", "Decode_vgrtjz"},
7550       {"01", "Decode_kxjgsz"},
7551       {"10", "Decode_vmjtrx"},
7552       {"11", "Decode_tgmljr"},
7553     },
7554   },
7555 
7556   { "Decode_ynnrny",
7557     {18, 17},
7558     { {"00", "Decode_jplmmr"},
7559     },
7560   },
7561 
7562   { "Decode_ynqsgl",
7563     {17},
7564     { {"0", "Visit_ld4_asisdlso_h4_4h"},
7565     },
7566   },
7567 
7568   { "Decode_ypjyqh",
7569     {9, 8, 7, 6, 5, 0},
7570     { {"111110", "Visit_drps_64e_branch_reg"},
7571     },
7572   },
7573 
7574   { "Decode_yplktv",
7575     {13, 12, 11, 10},
7576     { {"0001", "Visit_sub_asisdsame_only"},
7577       {"0010", "Decode_llxlqz"},
7578       {"0011", "Visit_cmeq_asisdsame_only"},
7579       {"0110", "Decode_pxkqxn"},
7580       {"1010", "Decode_rhvksm"},
7581       {"1101", "Visit_sqrdmulh_asisdsame_only"},
7582       {"1110", "Decode_gkkpjz"},
7583     },
7584   },
7585 
7586   { "Decode_yppszx",
7587     {23, 22, 10},
7588     { {"100", "Visit_umlslb_z_zzzi_s"},
7589       {"101", "Visit_umlslt_z_zzzi_s"},
7590       {"110", "Visit_umlslb_z_zzzi_d"},
7591       {"111", "Visit_umlslt_z_zzzi_d"},
7592     },
7593   },
7594 
7595   { "Decode_yppyky",
7596     {30, 13},
7597     { {"00", "Decode_gyrjrm"},
7598       {"01", "Decode_hhkqtn"},
7599       {"10", "Decode_jgmlpk"},
7600       {"11", "Decode_tzzssm"},
7601     },
7602   },
7603 
7604   { "Decode_ypqgyp",
7605     {22},
7606     { {"0", "Visit_ldrsw_64_ldst_regoff"},
7607     },
7608   },
7609 
7610   { "Decode_ypznsm",
7611     {23},
7612     { {"0", "Visit_fmaxnm_asimdsame_only"},
7613       {"1", "Visit_fminnm_asimdsame_only"},
7614     },
7615   },
7616 
7617   { "Decode_yqmqzp",
7618     {18, 17, 12},
7619     { {"000", "Visit_st1_asisdlso_d1_1d"},
7620     },
7621   },
7622 
7623   { "Decode_yqmvxk",
7624     {11, 10, 9, 8, 7, 6},
7625     { {"000001", "Visit_tcommit_only_barriers"},
7626       {"xx1000", "Visit_dsb_bon_barriers"},
7627       {"xxxx10", "Visit_dmb_bo_barriers"},
7628       {"xxxx11", "Visit_sb_only_barriers"},
7629     },
7630   },
7631 
7632   { "Decode_yqsgrt",
7633     {23, 22, 20, 19, 16, 13, 12},
7634     { {"0000000", "Decode_znmhps"},
7635       {"0000010", "Decode_zssjpv"},
7636       {"0000011", "Decode_smqvrs"},
7637       {"0100000", "Decode_jrgzxt"},
7638       {"0100010", "Decode_ppllxt"},
7639       {"0100011", "Decode_hqlskj"},
7640       {"100xx00", "Visit_st3_asisdlsep_r3_r"},
7641       {"100xx10", "Visit_st1_asisdlsep_r3_r3"},
7642       {"100xx11", "Visit_st1_asisdlsep_r1_r1"},
7643       {"1010x00", "Visit_st3_asisdlsep_r3_r"},
7644       {"1010x10", "Visit_st1_asisdlsep_r3_r3"},
7645       {"1010x11", "Visit_st1_asisdlsep_r1_r1"},
7646       {"1011000", "Visit_st3_asisdlsep_r3_r"},
7647       {"1011010", "Visit_st1_asisdlsep_r3_r3"},
7648       {"1011011", "Visit_st1_asisdlsep_r1_r1"},
7649       {"1011100", "Decode_ngxkmp"},
7650       {"1011110", "Decode_qgryzh"},
7651       {"1011111", "Decode_tjltls"},
7652       {"110xx00", "Visit_ld3_asisdlsep_r3_r"},
7653       {"110xx10", "Visit_ld1_asisdlsep_r3_r3"},
7654       {"110xx11", "Visit_ld1_asisdlsep_r1_r1"},
7655       {"1110x00", "Visit_ld3_asisdlsep_r3_r"},
7656       {"1110x10", "Visit_ld1_asisdlsep_r3_r3"},
7657       {"1110x11", "Visit_ld1_asisdlsep_r1_r1"},
7658       {"1111000", "Visit_ld3_asisdlsep_r3_r"},
7659       {"1111010", "Visit_ld1_asisdlsep_r3_r3"},
7660       {"1111011", "Visit_ld1_asisdlsep_r1_r1"},
7661       {"1111100", "Decode_zzgrjz"},
7662       {"1111110", "Decode_phtnny"},
7663       {"1111111", "Decode_txjyxr"},
7664     },
7665   },
7666 
7667   { "Decode_yqvqtx",
7668     {30, 23, 22, 20, 13},
7669     { {"00001", "Visit_ld1rob_z_p_bi_u8"},
7670       {"000x0", "Visit_ld1rob_z_p_br_contiguous"},
7671       {"01001", "Visit_ld1roh_z_p_bi_u16"},
7672       {"010x0", "Visit_ld1roh_z_p_br_contiguous"},
7673     },
7674   },
7675 
7676   { "Decode_yqxnzl",
7677     {11, 10},
7678     { {"00", "Visit_sqdmulh_z_zz"},
7679       {"01", "Visit_sqrdmulh_z_zz"},
7680     },
7681   },
7682 
7683   { "Decode_yrgnqz",
7684     {13, 12},
7685     { {"00", "Visit_sshl_asisdsame_only"},
7686       {"01", "Visit_srshl_asisdsame_only"},
7687     },
7688   },
7689 
7690   { "Decode_yrlzqp",
7691     {22, 13, 12},
7692     { {"000", "Visit_ldapr_64l_memop"},
7693     },
7694   },
7695 
7696   { "Decode_yrmmmg",
7697     {4},
7698     { {"0", "Visit_cmphs_p_p_zi"},
7699       {"1", "Visit_cmphi_p_p_zi"},
7700     },
7701   },
7702 
7703   { "Decode_yrrppk",
7704     {20, 19, 18, 17, 16},
7705     { {"00000", "Visit_fcvtns_32d_float2int"},
7706       {"00001", "Visit_fcvtnu_32d_float2int"},
7707       {"00010", "Visit_scvtf_d32_float2int"},
7708       {"00011", "Visit_ucvtf_d32_float2int"},
7709       {"00100", "Visit_fcvtas_32d_float2int"},
7710       {"00101", "Visit_fcvtau_32d_float2int"},
7711       {"01000", "Visit_fcvtps_32d_float2int"},
7712       {"01001", "Visit_fcvtpu_32d_float2int"},
7713       {"10000", "Visit_fcvtms_32d_float2int"},
7714       {"10001", "Visit_fcvtmu_32d_float2int"},
7715       {"11000", "Visit_fcvtzs_32d_float2int"},
7716       {"11001", "Visit_fcvtzu_32d_float2int"},
7717       {"11110", "Visit_fjcvtzs_32d_float2int"},
7718     },
7719   },
7720 
7721   { "Decode_ysjqhn",
7722     {30, 23, 22},
7723     { {"00x", "Visit_adds_64_addsub_shift"},
7724       {"010", "Visit_adds_64_addsub_shift"},
7725       {"10x", "Visit_subs_64_addsub_shift"},
7726       {"110", "Visit_subs_64_addsub_shift"},
7727     },
7728   },
7729 
7730   { "Decode_yskkjs",
7731     {13, 12},
7732     { {"00", "Visit_sbcs_64_addsub_carry"},
7733     },
7734   },
7735 
7736   { "Decode_yszjsm",
7737     {12, 11, 10},
7738     { {"000", "Visit_sdot_z_zzz"},
7739       {"001", "Visit_udot_z_zzz"},
7740       {"010", "Visit_sqdmlalbt_z_zzz"},
7741       {"011", "Visit_sqdmlslbt_z_zzz"},
7742       {"1xx", "Visit_cdot_z_zzz"},
7743     },
7744   },
7745 
7746   { "Decode_ytkjxx",
7747     {30, 23, 22, 13, 4},
7748     { {"00x0x", "Visit_ld1w_z_p_bz_s_x32_scaled"},
7749       {"00x1x", "Visit_ldff1w_z_p_bz_s_x32_scaled"},
7750       {"0100x", "Visit_ldr_z_bi"},
7751       {"01100", "Visit_prfw_i_p_bi_s"},
7752       {"01110", "Visit_prfd_i_p_bi_s"},
7753       {"10x0x", "Visit_ld1w_z_p_bz_d_x32_scaled"},
7754       {"10x1x", "Visit_ldff1w_z_p_bz_d_x32_scaled"},
7755       {"11x0x", "Visit_ld1d_z_p_bz_d_x32_scaled"},
7756       {"11x1x", "Visit_ldff1d_z_p_bz_d_x32_scaled"},
7757     },
7758   },
7759 
7760   { "Decode_ytsghm",
7761     {30, 23, 22},
7762     { {"000", "Visit_msub_32a_dp_3src"},
7763     },
7764   },
7765 
7766   { "Decode_ytvtqn",
7767     {30, 23, 22, 20, 13},
7768     { {"00001", "Visit_ld1sh_z_p_bi_s64"},
7769       {"00011", "Visit_ldnf1sh_z_p_bi_s64"},
7770       {"00101", "Visit_ld1w_z_p_bi_u32"},
7771       {"00111", "Visit_ldnf1w_z_p_bi_u32"},
7772       {"01001", "Visit_ld1sb_z_p_bi_s64"},
7773       {"01011", "Visit_ldnf1sb_z_p_bi_s64"},
7774       {"01101", "Visit_ld1sb_z_p_bi_s16"},
7775       {"01111", "Visit_ldnf1sb_z_p_bi_s16"},
7776       {"100x0", "Visit_st1w_z_p_bz_d_x32_unscaled"},
7777       {"100x1", "Visit_st1w_z_p_bz_d_64_unscaled"},
7778       {"101x0", "Visit_st1w_z_p_bz_s_x32_unscaled"},
7779       {"101x1", "Visit_st1w_z_p_ai_d"},
7780       {"110x0", "Visit_st1d_z_p_bz_d_x32_unscaled"},
7781       {"110x1", "Visit_st1d_z_p_bz_d_64_unscaled"},
7782       {"111x1", "Visit_st1d_z_p_ai_d"},
7783     },
7784   },
7785 
7786   { "Decode_ytvxsl",
7787     {30, 23, 22},
7788     { {"000", "Visit_stlxrb_sr32_ldstexcl"},
7789       {"001", "Visit_ldaxrb_lr32_ldstexcl"},
7790       {"010", "Visit_stlrb_sl32_ldstexcl"},
7791       {"011", "Visit_ldarb_lr32_ldstexcl"},
7792       {"100", "Visit_stlxrh_sr32_ldstexcl"},
7793       {"101", "Visit_ldaxrh_lr32_ldstexcl"},
7794       {"110", "Visit_stlrh_sl32_ldstexcl"},
7795       {"111", "Visit_ldarh_lr32_ldstexcl"},
7796     },
7797   },
7798 
7799   { "Decode_yvgqjx",
7800     {13, 12, 5},
7801     { {"010", "Decode_tnzytv"},
7802       {"011", "Decode_vmpnlv"},
7803       {"100", "Decode_hhhqjk"},
7804       {"101", "Decode_tkzqqp"},
7805       {"110", "Decode_sphpkr"},
7806       {"111", "Decode_spglxn"},
7807     },
7808   },
7809 
7810   { "Decode_yvhnlk",
7811     {30, 23, 22, 13, 12, 11, 10},
7812     { {"0001111", "Visit_casp_cp32_ldstexcl"},
7813       {"0011111", "Visit_caspa_cp32_ldstexcl"},
7814       {"0101111", "Visit_casb_c32_ldstexcl"},
7815       {"0111111", "Visit_casab_c32_ldstexcl"},
7816       {"1001111", "Visit_casp_cp64_ldstexcl"},
7817       {"1011111", "Visit_caspa_cp64_ldstexcl"},
7818       {"1101111", "Visit_cash_c32_ldstexcl"},
7819       {"1111111", "Visit_casah_c32_ldstexcl"},
7820     },
7821   },
7822 
7823   { "Decode_yvlhjg",
7824     {23},
7825     { {"0", "Visit_frecps_asimdsame_only"},
7826       {"1", "Visit_frsqrts_asimdsame_only"},
7827     },
7828   },
7829 
7830   { "Decode_yvnjkr",
7831     {9, 8, 7, 6, 5},
7832     { {"11111", "Visit_autdzb_64z_dp_1src"},
7833     },
7834   },
7835 
7836   { "Decode_yvptvx",
7837     {23, 12, 11, 10},
7838     { {"0000", "Visit_sqshrnb_z_zi"},
7839       {"0001", "Visit_sqshrnt_z_zi"},
7840       {"0010", "Visit_sqrshrnb_z_zi"},
7841       {"0011", "Visit_sqrshrnt_z_zi"},
7842       {"0100", "Visit_uqshrnb_z_zi"},
7843       {"0101", "Visit_uqshrnt_z_zi"},
7844       {"0110", "Visit_uqrshrnb_z_zi"},
7845       {"0111", "Visit_uqrshrnt_z_zi"},
7846     },
7847   },
7848 
7849   { "Decode_yvxgrr",
7850     {23, 22, 20, 19, 18, 17, 16},
7851     { {"0111001", "Visit_frintm_asimdmiscfp16_r"},
7852       {"0x00001", "Visit_frintm_asimdmisc_r"},
7853       {"1111001", "Visit_frintz_asimdmiscfp16_r"},
7854       {"1x00001", "Visit_frintz_asimdmisc_r"},
7855       {"xx00000", "Visit_cmeq_asimdmisc_z"},
7856     },
7857   },
7858 
7859   { "Decode_yvygml",
7860     {30},
7861     { {"0", "Decode_jkrlsg"},
7862       {"1", "Decode_vvrmvg"},
7863     },
7864   },
7865 
7866   { "Decode_yvyhlh",
7867     {23, 22, 12, 11, 10},
7868     { {"0x000", "Visit_fmul_z_zzi_h"},
7869       {"10000", "Visit_fmul_z_zzi_s"},
7870       {"11000", "Visit_fmul_z_zzi_d"},
7871     },
7872   },
7873 
7874   { "Decode_yvyxkx",
7875     {10},
7876     { {"0", "Visit_sha512su0_vv2_cryptosha512_2"},
7877       {"1", "Visit_sm4e_vv4_cryptosha512_2"},
7878     },
7879   },
7880 
7881   { "Decode_yxhrpk",
7882     {23, 22},
7883     { {"00", "Visit_fmlal2_asimdsame_f"},
7884       {"10", "Visit_fmlsl2_asimdsame_f"},
7885     },
7886   },
7887 
7888   { "Decode_yxmkzr",
7889     {12},
7890     { {"0", "Visit_st1_asisdlsop_dx1_r1d"},
7891     },
7892   },
7893 
7894   { "Decode_yxnslx",
7895     {23, 22},
7896     { {"00", "Visit_adr_z_az_d_s32_scaled"},
7897       {"01", "Visit_adr_z_az_d_u32_scaled"},
7898       {"1x", "Visit_adr_z_az_sd_same_scaled"},
7899     },
7900   },
7901 
7902   { "Decode_yykhjv",
7903     {23, 22, 13, 12, 11, 10},
7904     { {"000110", "Visit_smmla_z_zzz"},
7905       {"0x1000", "Visit_sshllb_z_zi"},
7906       {"0x1001", "Visit_sshllt_z_zi"},
7907       {"0x1010", "Visit_ushllb_z_zi"},
7908       {"0x1011", "Visit_ushllt_z_zi"},
7909       {"100110", "Visit_usmmla_z_zzz"},
7910       {"110110", "Visit_ummla_z_zzz"},
7911       {"xx0000", "Visit_saddlbt_z_zz"},
7912       {"xx0010", "Visit_ssublbt_z_zz"},
7913       {"xx0011", "Visit_ssubltb_z_zz"},
7914       {"xx0100", "Visit_eorbt_z_zz"},
7915       {"xx0101", "Visit_eortb_z_zz"},
7916       {"xx1100", "Visit_bext_z_zz"},
7917       {"xx1101", "Visit_bdep_z_zz"},
7918       {"xx1110", "Visit_bgrp_z_zz"},
7919     },
7920   },
7921 
7922   { "Decode_yynmjl",
7923     {4},
7924     { {"0", "Visit_orrs_p_p_pp_z"},
7925       {"1", "Visit_orns_p_p_pp_z"},
7926     },
7927   },
7928 
7929   { "Decode_yyrkmn",
7930     {17, 16, 9, 8, 7, 6, 5},
7931     { {"0000000", "Visit_aesmc_z_z"},
7932       {"10xxxxx", "Visit_aese_z_zz"},
7933       {"11xxxxx", "Visit_sm4e_z_zz"},
7934     },
7935   },
7936 
7937   { "Decode_yytvxh",
7938     {30, 23, 22, 13, 4},
7939     { {"00000", "Visit_prfw_i_p_br_s"},
7940       {"00010", "Visit_prfw_i_p_ai_s"},
7941       {"0010x", "Visit_ld1rw_z_p_bi_u32"},
7942       {"0011x", "Visit_ld1rw_z_p_bi_u64"},
7943       {"01000", "Visit_prfd_i_p_br_s"},
7944       {"01010", "Visit_prfd_i_p_ai_s"},
7945       {"0110x", "Visit_ld1rsb_z_p_bi_s16"},
7946       {"0111x", "Visit_ld1rd_z_p_bi_u64"},
7947       {"1000x", "Visit_ldnt1w_z_p_ar_d_64_unscaled"},
7948       {"10010", "Visit_prfw_i_p_ai_d"},
7949       {"1010x", "Visit_ld1w_z_p_bz_d_64_unscaled"},
7950       {"1011x", "Visit_ldff1w_z_p_bz_d_64_unscaled"},
7951       {"1100x", "Visit_ldnt1d_z_p_ar_d_64_unscaled"},
7952       {"11010", "Visit_prfd_i_p_ai_d"},
7953       {"1110x", "Visit_ld1d_z_p_bz_d_64_unscaled"},
7954       {"1111x", "Visit_ldff1d_z_p_bz_d_64_unscaled"},
7955     },
7956   },
7957 
7958   { "Decode_yyyshx",
7959     {30, 13, 4},
7960     { {"000", "Visit_cmphs_p_p_zz"},
7961       {"001", "Visit_cmphi_p_p_zz"},
7962       {"010", "Visit_cmpeq_p_p_zw"},
7963       {"011", "Visit_cmpne_p_p_zw"},
7964       {"1xx", "Visit_fcmla_z_p_zzz"},
7965     },
7966   },
7967 
7968   { "Decode_yzmjhn",
7969     {4},
7970     { {"0", "Visit_eors_p_p_pp_z"},
7971     },
7972   },
7973 
7974   { "Decode_yzqtyl",
7975     {20, 19, 18, 17, 16},
7976     { {"00001", "Visit_sqxtun_asisdmisc_n"},
7977     },
7978   },
7979 
7980   { "Decode_yzzlxs",
7981     {23, 4},
7982     { {"00", "Decode_mpgrgp"},
7983     },
7984   },
7985 
7986   { "Decode_zgjpym",
7987     {23, 22, 20, 19, 11},
7988     { {"00010", "Visit_srsra_asisdshf_r"},
7989       {"001x0", "Visit_srsra_asisdshf_r"},
7990       {"01xx0", "Visit_srsra_asisdshf_r"},
7991     },
7992   },
7993 
7994   { "Decode_zglksl",
7995     {30, 23, 22, 13, 12, 11, 10},
7996     { {"1101001", "Visit_ummla_asimdsame2_g"},
7997       {"xxx0001", "Visit_sqrdmlah_asimdsame2_only"},
7998       {"xxx0011", "Visit_sqrdmlsh_asimdsame2_only"},
7999       {"xxx0101", "Visit_udot_asimdsame2_d"},
8000     },
8001   },
8002 
8003   { "Decode_zgysvr",
8004     {30, 13},
8005     { {"00", "Decode_xpqglq"},
8006       {"10", "Decode_xstkrn"},
8007       {"11", "Decode_zjzmvh"},
8008     },
8009   },
8010 
8011   { "Decode_zgzlhq",
8012     {17},
8013     { {"0", "Visit_ld1_asisdlso_b1_1b"},
8014     },
8015   },
8016 
8017   { "Decode_zhkjzg",
8018     {23, 22, 13},
8019     { {"000", "Visit_fmls_asimdelem_rh_h"},
8020       {"1x0", "Visit_fmls_asimdelem_r_sd"},
8021       {"xx1", "Visit_sqdmlsl_asimdelem_l"},
8022     },
8023   },
8024 
8025   { "Decode_zhpxqz",
8026     {9, 8, 7, 6, 5},
8027     { {"00000", "Visit_fmov_h_floatimm"},
8028     },
8029   },
8030 
8031   { "Decode_zhrtts",
8032     {23, 22},
8033     { {"00", "Decode_qlqhzg"},
8034     },
8035   },
8036 
8037   { "Decode_zjgvyp",
8038     {30, 13, 12, 11, 10},
8039     { {"00000", "Decode_ghnljt"},
8040     },
8041   },
8042 
8043   { "Decode_zjjxjl",
8044     {9},
8045     { {"0", "Visit_pnext_p_p_p"},
8046     },
8047   },
8048 
8049   { "Decode_zjsgkm",
8050     {4},
8051     { {"0", "Visit_ccmn_64_condcmp_reg"},
8052     },
8053   },
8054 
8055   { "Decode_zjslnr",
8056     {30, 23, 22},
8057     { {"000", "Visit_sbfm_32m_bitfield"},
8058       {"010", "Visit_extr_32_extract"},
8059       {"100", "Visit_ubfm_32m_bitfield"},
8060     },
8061   },
8062 
8063   { "Decode_zjzmvh",
8064     {23, 22, 20, 19, 18, 17, 16},
8065     { {"0001010", "Visit_fcvtx_z_p_z_d2s"},
8066       {"0011xx0", "Visit_flogb_z_p_z"},
8067       {"0110010", "Visit_scvtf_z_p_z_h2fp16"},
8068       {"0110011", "Visit_ucvtf_z_p_z_h2fp16"},
8069       {"0110100", "Visit_scvtf_z_p_z_w2fp16"},
8070       {"0110101", "Visit_ucvtf_z_p_z_w2fp16"},
8071       {"0110110", "Visit_scvtf_z_p_z_x2fp16"},
8072       {"0110111", "Visit_ucvtf_z_p_z_x2fp16"},
8073       {"0111010", "Visit_fcvtzs_z_p_z_fp162h"},
8074       {"0111011", "Visit_fcvtzu_z_p_z_fp162h"},
8075       {"0111100", "Visit_fcvtzs_z_p_z_fp162w"},
8076       {"0111101", "Visit_fcvtzu_z_p_z_fp162w"},
8077       {"0111110", "Visit_fcvtzs_z_p_z_fp162x"},
8078       {"0111111", "Visit_fcvtzu_z_p_z_fp162x"},
8079       {"1001000", "Visit_fcvt_z_p_z_s2h"},
8080       {"1001001", "Visit_fcvt_z_p_z_h2s"},
8081       {"1001010", "Visit_bfcvt_z_p_z_s2bf"},
8082       {"1010100", "Visit_scvtf_z_p_z_w2s"},
8083       {"1010101", "Visit_ucvtf_z_p_z_w2s"},
8084       {"1011100", "Visit_fcvtzs_z_p_z_s2w"},
8085       {"1011101", "Visit_fcvtzu_z_p_z_s2w"},
8086       {"1101000", "Visit_fcvt_z_p_z_d2h"},
8087       {"1101001", "Visit_fcvt_z_p_z_h2d"},
8088       {"1101010", "Visit_fcvt_z_p_z_d2s"},
8089       {"1101011", "Visit_fcvt_z_p_z_s2d"},
8090       {"1110000", "Visit_scvtf_z_p_z_w2d"},
8091       {"1110001", "Visit_ucvtf_z_p_z_w2d"},
8092       {"1110100", "Visit_scvtf_z_p_z_x2s"},
8093       {"1110101", "Visit_ucvtf_z_p_z_x2s"},
8094       {"1110110", "Visit_scvtf_z_p_z_x2d"},
8095       {"1110111", "Visit_ucvtf_z_p_z_x2d"},
8096       {"1111000", "Visit_fcvtzs_z_p_z_d2w"},
8097       {"1111001", "Visit_fcvtzu_z_p_z_d2w"},
8098       {"1111100", "Visit_fcvtzs_z_p_z_s2x"},
8099       {"1111101", "Visit_fcvtzu_z_p_z_s2x"},
8100       {"1111110", "Visit_fcvtzs_z_p_z_d2x"},
8101       {"1111111", "Visit_fcvtzu_z_p_z_d2x"},
8102       {"xx00000", "Visit_frintn_z_p_z"},
8103       {"xx00001", "Visit_frintp_z_p_z"},
8104       {"xx00010", "Visit_frintm_z_p_z"},
8105       {"xx00011", "Visit_frintz_z_p_z"},
8106       {"xx00100", "Visit_frinta_z_p_z"},
8107       {"xx00110", "Visit_frintx_z_p_z"},
8108       {"xx00111", "Visit_frinti_z_p_z"},
8109       {"xx01100", "Visit_frecpx_z_p_z"},
8110       {"xx01101", "Visit_fsqrt_z_p_z"},
8111     },
8112   },
8113 
8114   { "Decode_zkhjsp",
8115     {11},
8116     { {"0", "Visit_sqdmulh_z_zzi_h"},
8117       {"1", "Visit_mul_z_zzi_h"},
8118     },
8119   },
8120 
8121   { "Decode_zkqtrj",
8122     {30},
8123     { {"0", "Visit_b_only_branch_imm"},
8124     },
8125   },
8126 
8127   { "Decode_zkttzl",
8128     {23, 22, 20, 19, 18, 16, 13},
8129     { {"0000000", "Decode_tsvsgh"},
8130       {"0000001", "Decode_rkrltp"},
8131       {"0100000", "Decode_zgzlhq"},
8132       {"0100001", "Decode_nrssjz"},
8133       {"100xxx0", "Visit_st1_asisdlsop_bx1_r1b"},
8134       {"100xxx1", "Visit_st3_asisdlsop_bx3_r3b"},
8135       {"1010xx0", "Visit_st1_asisdlsop_bx1_r1b"},
8136       {"1010xx1", "Visit_st3_asisdlsop_bx3_r3b"},
8137       {"10110x0", "Visit_st1_asisdlsop_bx1_r1b"},
8138       {"10110x1", "Visit_st3_asisdlsop_bx3_r3b"},
8139       {"1011100", "Visit_st1_asisdlsop_bx1_r1b"},
8140       {"1011101", "Visit_st3_asisdlsop_bx3_r3b"},
8141       {"1011110", "Decode_rnypvh"},
8142       {"1011111", "Decode_nxjgmm"},
8143       {"110xxx0", "Visit_ld1_asisdlsop_bx1_r1b"},
8144       {"110xxx1", "Visit_ld3_asisdlsop_bx3_r3b"},
8145       {"1110xx0", "Visit_ld1_asisdlsop_bx1_r1b"},
8146       {"1110xx1", "Visit_ld3_asisdlsop_bx3_r3b"},
8147       {"11110x0", "Visit_ld1_asisdlsop_bx1_r1b"},
8148       {"11110x1", "Visit_ld3_asisdlsop_bx3_r3b"},
8149       {"1111100", "Visit_ld1_asisdlsop_bx1_r1b"},
8150       {"1111101", "Visit_ld3_asisdlsop_bx3_r3b"},
8151       {"1111110", "Decode_qqtpln"},
8152       {"1111111", "Decode_glhxyj"},
8153     },
8154   },
8155 
8156   { "Decode_zlmgyp",
8157     {23, 22, 13},
8158     { {"000", "Visit_fmla_asimdelem_rh_h"},
8159       {"1x0", "Visit_fmla_asimdelem_r_sd"},
8160       {"xx1", "Visit_sqdmlal_asimdelem_l"},
8161     },
8162   },
8163 
8164   { "Decode_zmkqxl",
8165     {23, 10},
8166     { {"00", "Visit_adclb_z_zzz"},
8167       {"01", "Visit_adclt_z_zzz"},
8168       {"10", "Visit_sbclb_z_zzz"},
8169       {"11", "Visit_sbclt_z_zzz"},
8170     },
8171   },
8172 
8173   { "Decode_zmpzkg",
8174     {23, 22, 20, 19, 13, 11},
8175     { {"0000x0", "Visit_orr_asimdimm_l_sl"},
8176       {"00x100", "Visit_shl_asimdshf_r"},
8177       {"00x110", "Visit_sqshl_asimdshf_r"},
8178       {"010x00", "Visit_shl_asimdshf_r"},
8179       {"010x10", "Visit_sqshl_asimdshf_r"},
8180       {"011100", "Visit_shl_asimdshf_r"},
8181       {"011110", "Visit_sqshl_asimdshf_r"},
8182       {"0x1000", "Visit_shl_asimdshf_r"},
8183       {"0x1010", "Visit_sqshl_asimdshf_r"},
8184     },
8185   },
8186 
8187   { "Decode_zmtkvx",
8188     {13, 10},
8189     { {"00", "Decode_rhpmjz"},
8190     },
8191   },
8192 
8193   { "Decode_zmzxjm",
8194     {17},
8195     { {"0", "Visit_faddv_v_p_z"},
8196     },
8197   },
8198 
8199   { "Decode_znmhps",
8200     {18, 17},
8201     { {"00", "Visit_st3_asisdlse_r3"},
8202     },
8203   },
8204 
8205   { "Decode_zpmkvt",
8206     {12},
8207     { {"1", "Decode_vqqrjl"},
8208     },
8209   },
8210 
8211   { "Decode_zpnsrv",
8212     {23, 22, 13},
8213     { {"000", "Visit_fmul_asimdelem_rh_h"},
8214       {"1x0", "Visit_fmul_asimdelem_r_sd"},
8215       {"xx1", "Visit_sqdmull_asimdelem_l"},
8216     },
8217   },
8218 
8219   { "Decode_zppjvk",
8220     {12},
8221     { {"0", "Visit_ld2_asisdlsop_dx2_r2d"},
8222     },
8223   },
8224 
8225   { "Decode_zpsymj",
8226     {22, 13, 12},
8227     { {"000", "Visit_swp_64_memop"},
8228       {"001", "Decode_yjztsq"},
8229       {"010", "Visit_st64bv0_64_memop"},
8230       {"011", "Visit_st64bv_64_memop"},
8231       {"100", "Visit_swpl_64_memop"},
8232     },
8233   },
8234 
8235   { "Decode_zpzghs",
8236     {30, 23, 22},
8237     { {"000", "Visit_stnp_q_ldstnapair_offs"},
8238       {"001", "Visit_ldnp_q_ldstnapair_offs"},
8239       {"010", "Visit_stp_q_ldstpair_post"},
8240       {"011", "Visit_ldp_q_ldstpair_post"},
8241     },
8242   },
8243 
8244   { "Decode_zqltpy",
8245     {9, 8, 7, 6, 5},
8246     { {"00000", "Visit_fmov_s_floatimm"},
8247     },
8248   },
8249 
8250   { "Decode_zqmmsk",
8251     {30, 23, 22, 13, 12, 11, 10},
8252     { {"0000000", "Visit_ldaddb_32_memop"},
8253       {"0000100", "Visit_ldclrb_32_memop"},
8254       {"0001000", "Visit_ldeorb_32_memop"},
8255       {"0001100", "Visit_ldsetb_32_memop"},
8256       {"000xx10", "Visit_strb_32b_ldst_regoff"},
8257       {"0010000", "Visit_ldaddlb_32_memop"},
8258       {"0010100", "Visit_ldclrlb_32_memop"},
8259       {"0011000", "Visit_ldeorlb_32_memop"},
8260       {"0011100", "Visit_ldsetlb_32_memop"},
8261       {"001xx10", "Visit_ldrb_32b_ldst_regoff"},
8262       {"0100000", "Visit_ldaddab_32_memop"},
8263       {"0100100", "Visit_ldclrab_32_memop"},
8264       {"0101000", "Visit_ldeorab_32_memop"},
8265       {"0101100", "Visit_ldsetab_32_memop"},
8266       {"010xx10", "Visit_ldrsb_64b_ldst_regoff"},
8267       {"0110000", "Visit_ldaddalb_32_memop"},
8268       {"0110100", "Visit_ldclralb_32_memop"},
8269       {"0111000", "Visit_ldeoralb_32_memop"},
8270       {"0111100", "Visit_ldsetalb_32_memop"},
8271       {"011xx10", "Visit_ldrsb_32b_ldst_regoff"},
8272       {"1000000", "Visit_ldaddh_32_memop"},
8273       {"1000100", "Visit_ldclrh_32_memop"},
8274       {"1001000", "Visit_ldeorh_32_memop"},
8275       {"1001100", "Visit_ldseth_32_memop"},
8276       {"100xx10", "Visit_strh_32_ldst_regoff"},
8277       {"1010000", "Visit_ldaddlh_32_memop"},
8278       {"1010100", "Visit_ldclrlh_32_memop"},
8279       {"1011000", "Visit_ldeorlh_32_memop"},
8280       {"1011100", "Visit_ldsetlh_32_memop"},
8281       {"101xx10", "Visit_ldrh_32_ldst_regoff"},
8282       {"1100000", "Visit_ldaddah_32_memop"},
8283       {"1100100", "Visit_ldclrah_32_memop"},
8284       {"1101000", "Visit_ldeorah_32_memop"},
8285       {"1101100", "Visit_ldsetah_32_memop"},
8286       {"110xx10", "Visit_ldrsh_64_ldst_regoff"},
8287       {"1110000", "Visit_ldaddalh_32_memop"},
8288       {"1110100", "Visit_ldclralh_32_memop"},
8289       {"1111000", "Visit_ldeoralh_32_memop"},
8290       {"1111100", "Visit_ldsetalh_32_memop"},
8291       {"111xx10", "Visit_ldrsh_32_ldst_regoff"},
8292     },
8293   },
8294 
8295   { "Decode_zqmrhp",
8296     {23, 22, 4, 3, 2, 1, 0},
8297     { {"0000000", "Visit_wrffr_f_p"},
8298     },
8299   },
8300 
8301   { "Decode_zrmgjx",
8302     {30, 23, 22, 13, 4},
8303     { {"01000", "Visit_ldr_p_bi"},
8304       {"01100", "Visit_prfb_i_p_bi_s"},
8305       {"01110", "Visit_prfh_i_p_bi_s"},
8306       {"10x0x", "Visit_ld1sw_z_p_bz_d_x32_unscaled"},
8307       {"10x1x", "Visit_ldff1sw_z_p_bz_d_x32_unscaled"},
8308     },
8309   },
8310 
8311   { "Decode_zrvlnx",
8312     {13, 12},
8313     { {"00", "Visit_sbc_32_addsub_carry"},
8314     },
8315   },
8316 
8317   { "Decode_zryvjk",
8318     {20, 9, 4},
8319     { {"000", "Visit_trn2_p_pp"},
8320     },
8321   },
8322 
8323   { "Decode_zslsvj",
8324     {23, 22, 20, 19, 11},
8325     { {"00011", "Visit_fcvtzu_asisdshf_c"},
8326       {"001x1", "Visit_fcvtzu_asisdshf_c"},
8327       {"01xx1", "Visit_fcvtzu_asisdshf_c"},
8328     },
8329   },
8330 
8331   { "Decode_zsltyl",
8332     {22, 20, 11},
8333     { {"000", "Visit_uqincw_r_rs_uw"},
8334       {"001", "Visit_uqdecw_r_rs_uw"},
8335       {"010", "Visit_uqincw_r_rs_x"},
8336       {"011", "Visit_uqdecw_r_rs_x"},
8337       {"100", "Visit_uqincd_r_rs_uw"},
8338       {"101", "Visit_uqdecd_r_rs_uw"},
8339       {"110", "Visit_uqincd_r_rs_x"},
8340       {"111", "Visit_uqdecd_r_rs_x"},
8341     },
8342   },
8343 
8344   { "Decode_zssjpv",
8345     {18, 17},
8346     { {"00", "Visit_st1_asisdlse_r3_3v"},
8347     },
8348   },
8349 
8350   { "Decode_zsyggq",
8351     {23, 10},
8352     { {"00", "Decode_txhzxq"},
8353     },
8354   },
8355 
8356   { "Decode_ztpryr",
8357     {13},
8358     { {"0", "Visit_fmad_z_p_zzz"},
8359       {"1", "Visit_fmsb_z_p_zzz"},
8360     },
8361   },
8362 
8363   { "Decode_ztyqrj",
8364     {30, 23, 13, 12, 10},
8365     { {"00000", "Decode_jmvgsp"},
8366       {"00001", "Decode_jkkqvy"},
8367       {"00100", "Decode_nkxhsy"},
8368       {"00101", "Decode_gshrzq"},
8369       {"00110", "Decode_zvjrlz"},
8370       {"00111", "Decode_ntjpsx"},
8371       {"01000", "Decode_mqrzzk"},
8372       {"01001", "Decode_jqxqql"},
8373       {"01100", "Decode_xznsqh"},
8374       {"01101", "Decode_qvlnll"},
8375       {"01110", "Decode_kvnqhn"},
8376       {"01111", "Decode_zsltyl"},
8377       {"10110", "Decode_zkhjsp"},
8378       {"10111", "Decode_hvyjnk"},
8379       {"11000", "Decode_sjvhlq"},
8380       {"11001", "Decode_xhktsk"},
8381       {"11010", "Decode_rtpztp"},
8382       {"11011", "Decode_rznrqt"},
8383       {"11100", "Decode_kyspnn"},
8384       {"11101", "Decode_qljhnp"},
8385       {"11110", "Decode_pxyrpm"},
8386       {"11111", "Decode_khjvqq"},
8387     },
8388   },
8389 
8390   { "Decode_zvjrlz",
8391     {22, 20, 11},
8392     { {"000", "Visit_sqincb_r_rs_sx"},
8393       {"001", "Visit_sqdecb_r_rs_sx"},
8394       {"010", "Visit_sqincb_r_rs_x"},
8395       {"011", "Visit_sqdecb_r_rs_x"},
8396       {"100", "Visit_sqinch_r_rs_sx"},
8397       {"101", "Visit_sqdech_r_rs_sx"},
8398       {"110", "Visit_sqinch_r_rs_x"},
8399       {"111", "Visit_sqdech_r_rs_x"},
8400     },
8401   },
8402 
8403   { "Decode_zvlxrl",
8404     {23, 13, 12},
8405     { {"010", "Visit_fcmeq_asisdsame_only"},
8406     },
8407   },
8408 
8409   { "Decode_zvqghy",
8410     {30, 23, 22, 13, 12, 11, 10},
8411     { {"1000000", "Visit_sha256h_qqv_cryptosha3"},
8412       {"1000100", "Visit_sha256h2_qqv_cryptosha3"},
8413       {"1001000", "Visit_sha256su1_vvv_cryptosha3"},
8414     },
8415   },
8416 
8417   { "Decode_zxhhny",
8418     {23, 22},
8419     { {"00", "Visit_fmsub_s_floatdp3"},
8420       {"01", "Visit_fmsub_d_floatdp3"},
8421       {"11", "Visit_fmsub_h_floatdp3"},
8422     },
8423   },
8424 
8425   { "Decode_zxspnk",
8426     {30, 23, 22, 11, 10},
8427     { {"00000", "Visit_sturb_32_ldst_unscaled"},
8428       {"00001", "Visit_strb_32_ldst_immpost"},
8429       {"00010", "Visit_sttrb_32_ldst_unpriv"},
8430       {"00011", "Visit_strb_32_ldst_immpre"},
8431       {"00100", "Visit_ldurb_32_ldst_unscaled"},
8432       {"00101", "Visit_ldrb_32_ldst_immpost"},
8433       {"00110", "Visit_ldtrb_32_ldst_unpriv"},
8434       {"00111", "Visit_ldrb_32_ldst_immpre"},
8435       {"01000", "Visit_ldursb_64_ldst_unscaled"},
8436       {"01001", "Visit_ldrsb_64_ldst_immpost"},
8437       {"01010", "Visit_ldtrsb_64_ldst_unpriv"},
8438       {"01011", "Visit_ldrsb_64_ldst_immpre"},
8439       {"01100", "Visit_ldursb_32_ldst_unscaled"},
8440       {"01101", "Visit_ldrsb_32_ldst_immpost"},
8441       {"01110", "Visit_ldtrsb_32_ldst_unpriv"},
8442       {"01111", "Visit_ldrsb_32_ldst_immpre"},
8443       {"10000", "Visit_sturh_32_ldst_unscaled"},
8444       {"10001", "Visit_strh_32_ldst_immpost"},
8445       {"10010", "Visit_sttrh_32_ldst_unpriv"},
8446       {"10011", "Visit_strh_32_ldst_immpre"},
8447       {"10100", "Visit_ldurh_32_ldst_unscaled"},
8448       {"10101", "Visit_ldrh_32_ldst_immpost"},
8449       {"10110", "Visit_ldtrh_32_ldst_unpriv"},
8450       {"10111", "Visit_ldrh_32_ldst_immpre"},
8451       {"11000", "Visit_ldursh_64_ldst_unscaled"},
8452       {"11001", "Visit_ldrsh_64_ldst_immpost"},
8453       {"11010", "Visit_ldtrsh_64_ldst_unpriv"},
8454       {"11011", "Visit_ldrsh_64_ldst_immpre"},
8455       {"11100", "Visit_ldursh_32_ldst_unscaled"},
8456       {"11101", "Visit_ldrsh_32_ldst_immpost"},
8457       {"11110", "Visit_ldtrsh_32_ldst_unpriv"},
8458       {"11111", "Visit_ldrsh_32_ldst_immpre"},
8459     },
8460   },
8461 
8462   { "Decode_zxtzmv",
8463     {30, 23, 22, 13},
8464     { {"0010", "Visit_ld1rsh_z_p_bi_s64"},
8465       {"0011", "Visit_ld1rsh_z_p_bi_s32"},
8466       {"0110", "Visit_ld1rsb_z_p_bi_s64"},
8467       {"0111", "Visit_ld1rsb_z_p_bi_s32"},
8468       {"1000", "Visit_ld1sw_z_p_ai_d"},
8469       {"1001", "Visit_ldff1sw_z_p_ai_d"},
8470       {"1010", "Visit_ld1sw_z_p_bz_d_64_scaled"},
8471       {"1011", "Visit_ldff1sw_z_p_bz_d_64_scaled"},
8472     },
8473   },
8474 
8475   { "Decode_zyjjgs",
8476     {23, 22, 20, 19, 18},
8477     { {"00000", "Visit_orr_z_zi"},
8478       {"01000", "Visit_eor_z_zi"},
8479       {"10000", "Visit_and_z_zi"},
8480       {"11000", "Visit_dupm_z_i"},
8481       {"xx1xx", "Visit_cpy_z_o_i"},
8482     },
8483   },
8484 
8485   { "Decode_zylnnn",
8486     {30},
8487     { {"0", "Visit_cbz_64_compbranch"},
8488     },
8489   },
8490 
8491   { "Decode_zytrsq",
8492     {30},
8493     { {"0", "Visit_tbz_only_testbranch"},
8494     },
8495   },
8496 
8497   { "Decode_zyzzhm",
8498     {23, 20, 19, 18, 17, 16},
8499     { {"000001", "Visit_frint32x_asimdmisc_r"},
8500     },
8501   },
8502 
8503   { "Decode_zzgrjz",
8504     {18, 17},
8505     { {"0x", "Visit_ld3_asisdlsep_r3_r"},
8506       {"10", "Visit_ld3_asisdlsep_r3_r"},
8507       {"11", "Visit_ld3_asisdlsep_i3_i"},
8508     },
8509   },
8510 
8511   { "Decode_zzhgng",
8512     {30, 23, 22, 13, 12, 11, 10},
8513     { {"1000000", "Visit_sha1c_qsv_cryptosha3"},
8514       {"1000001", "Visit_dup_asisdone_only"},
8515       {"1000100", "Visit_sha1p_qsv_cryptosha3"},
8516       {"1001000", "Visit_sha1m_qsv_cryptosha3"},
8517       {"1001100", "Visit_sha1su0_vvv_cryptosha3"},
8518       {"1010111", "Visit_fmulx_asisdsamefp16_only"},
8519       {"1011001", "Visit_fcmeq_asisdsamefp16_only"},
8520       {"1011111", "Visit_frecps_asisdsamefp16_only"},
8521       {"1111111", "Visit_frsqrts_asisdsamefp16_only"},
8522     },
8523   },
8524 
8525   { "Decode_zzrqlh",
8526     {30, 23, 22, 11, 10},
8527     { {"00000", "Decode_ygpjrl"},
8528       {"01000", "Visit_csel_32_condsel"},
8529       {"01001", "Visit_csinc_32_condsel"},
8530       {"01100", "Decode_hggmnk"},
8531       {"01101", "Decode_sllkpt"},
8532       {"01110", "Decode_mgsvlj"},
8533       {"01111", "Decode_kyyzks"},
8534       {"10000", "Decode_zrvlnx"},
8535       {"11000", "Visit_csinv_32_condsel"},
8536       {"11001", "Visit_csneg_32_condsel"},
8537       {"11100", "Decode_ghmzhr"},
8538       {"11101", "Decode_gnqjhz"},
8539       {"11110", "Decode_mmmjkx"},
8540     },
8541   },
8542 
8543   { "Decode_zzvxvh",
8544     {23, 22, 11, 10},
8545     { {"0001", "Visit_pmul_z_zz"},
8546       {"xx00", "Visit_mul_z_zz"},
8547       {"xx10", "Visit_smulh_z_zz"},
8548       {"xx11", "Visit_umulh_z_zz"},
8549     },
8550   },
8551 
8552   { "Root",
8553     {31, 29, 28, 27, 26, 25, 24, 21, 15, 14},
8554     { {"00000000xx", "Decode_qzjnpr"},
8555       {"0000100000", "Decode_rzzxsn"},
8556       {"0000100001", "Decode_xvppmm"},
8557       {"0000100010", "Decode_ptsjnr"},
8558       {"0000100011", "Decode_nlpmvl"},
8559       {"0000100100", "Decode_ljljkv"},
8560       {"0000100101", "Decode_kktglv"},
8561       {"0000100110", "Decode_ppnssm"},
8562       {"0000100111", "Decode_ztyqrj"},
8563       {"0000101000", "Decode_rnqtmt"},
8564       {"0000101001", "Decode_njgxlz"},
8565       {"0000101010", "Decode_mpvsng"},
8566       {"0000101011", "Decode_qlxksl"},
8567       {"0000101100", "Decode_mhrjvp"},
8568       {"0000101101", "Decode_pgjjsz"},
8569       {"0000101110", "Decode_yppyky"},
8570       {"0000101111", "Decode_yjmngt"},
8571       {"000100000x", "Decode_vmjgmg"},
8572       {"000100001x", "Decode_ytvxsl"},
8573       {"0001000101", "Decode_yvhnlk"},
8574       {"0001000111", "Decode_xryzqs"},
8575       {"000101000x", "Decode_vjqsqs"},
8576       {"000101010x", "Decode_phvnqh"},
8577       {"000101100x", "Decode_pphhym"},
8578       {"00010111xx", "Decode_qsygjs"},
8579       {"0001100000", "Decode_jxrlyh"},
8580       {"0001100001", "Decode_yqsgrt"},
8581       {"0001100010", "Decode_kpyqyv"},
8582       {"0001101000", "Decode_zkttzl"},
8583       {"0001101001", "Decode_llqjlh"},
8584       {"0001101010", "Decode_xhvtjg"},
8585       {"0001101011", "Decode_xylmmp"},
8586       {"0001101100", "Decode_vzzvlr"},
8587       {"0001101101", "Decode_sjlrxn"},
8588       {"0001101110", "Decode_xrhhjz"},
8589       {"0001101111", "Decode_ygnypk"},
8590       {"0001110000", "Decode_xjghst"},
8591       {"0001110001", "Decode_xxyklv"},
8592       {"0001110010", "Decode_rtgkkg"},
8593       {"0001110100", "Decode_hqnxvt"},
8594       {"0001110101", "Decode_hmxlny"},
8595       {"0001110110", "Decode_txsmts"},
8596       {"0001110111", "Decode_mtnpmr"},
8597       {"0001111000", "Decode_ttstyt"},
8598       {"0001111001", "Decode_krhrrr"},
8599       {"0001111010", "Decode_xhltxn"},
8600       {"0001111011", "Decode_ymznlj"},
8601       {"0001111100", "Decode_kkgzst"},
8602       {"0001111101", "Decode_gvjgyp"},
8603       {"0001111110", "Decode_mjqvxq"},
8604       {"0001111111", "Decode_spjjkg"},
8605       {"0010001xxx", "Decode_vppthj"},
8606       {"0010010xxx", "Decode_qzzlhq"},
8607       {"001001100x", "Decode_zjslnr"},
8608       {"001001110x", "Decode_jpxgqh"},
8609       {"0010011x1x", "Decode_gkhhjm"},
8610       {"0010100xxx", "Decode_jyxszq"},
8611       {"0010110xxx", "Decode_xqhgkk"},
8612       {"00101x1xxx", "Decode_zkqtrj"},
8613       {"0011000xxx", "Decode_qkyjhg"},
8614       {"00110010xx", "Decode_yjxshz"},
8615       {"0011010000", "Decode_zzrqlh"},
8616       {"0011010001", "Decode_qsrlql"},
8617       {"001101001x", "Decode_tnrrjk"},
8618       {"001101100x", "Decode_pnxgrg"},
8619       {"001101101x", "Decode_ytsghm"},
8620       {"0011100xxx", "Decode_srmhjk"},
8621       {"0011110000", "Decode_zzhgng"},
8622       {"0011110001", "Decode_zvqghy"},
8623       {"001111001x", "Decode_hnzzkj"},
8624       {"0011110100", "Decode_qntssm"},
8625       {"0011110101", "Decode_mrqqlp"},
8626       {"0011110110", "Decode_nxyhyv"},
8627       {"0011110111", "Decode_qtknlp"},
8628       {"0011111000", "Decode_gszlvl"},
8629       {"0011111001", "Decode_mlnqrm"},
8630       {"0011111010", "Decode_yvygml"},
8631       {"0011111011", "Decode_xhxrnt"},
8632       {"0011111100", "Decode_grqnlm"},
8633       {"0011111101", "Decode_ktnjrx"},
8634       {"0011111110", "Decode_gkpzhr"},
8635       {"0011111111", "Decode_mpyhkm"},
8636       {"0100100000", "Decode_yyyshx"},
8637       {"0100100001", "Decode_mylphg"},
8638       {"0100100010", "Decode_nsjhhg"},
8639       {"0100100011", "Decode_rhhrhg"},
8640       {"0100100100", "Decode_ymhgxg"},
8641       {"0100100101", "Decode_nvkthr"},
8642       {"0100100110", "Decode_phthqj"},
8643       {"0100100111", "Decode_kyjxrr"},
8644       {"0100101000", "Decode_gtvhmp"},
8645       {"0100101001", "Decode_pppsmg"},
8646       {"0100101010", "Decode_zgysvr"},
8647       {"0100101011", "Decode_shqygv"},
8648       {"0100101100", "Decode_lpsvyy"},
8649       {"0100101101", "Decode_nqkhrv"},
8650       {"0100101110", "Decode_tkjtgp"},
8651       {"0100101111", "Decode_htqpks"},
8652       {"0101000xxx", "Decode_vpkptr"},
8653       {"0101001xxx", "Decode_vmjzyk"},
8654       {"010101000x", "Decode_gmrxlp"},
8655       {"010101010x", "Decode_jmgkrl"},
8656       {"010101100x", "Decode_qhgtvk"},
8657       {"01010111xx", "Decode_rxpspy"},
8658       {"0101100xxx", "Decode_qhtqrj"},
8659       {"0101101xxx", "Decode_vnpqrh"},
8660       {"0101110000", "Decode_vpykkg"},
8661       {"0101110001", "Decode_xrxvpr"},
8662       {"0101110010", "Decode_zglksl"},
8663       {"0101110011", "Decode_gtjskz"},
8664       {"0101110100", "Decode_qntygx"},
8665       {"0101110101", "Decode_kxprqm"},
8666       {"0101110110", "Decode_qxtvzy"},
8667       {"0101110111", "Decode_mstthg"},
8668       {"0101111000", "Decode_qmqmpj"},
8669       {"0101111001", "Decode_rhttgj"},
8670       {"0101111010", "Decode_jqnhrj"},
8671       {"0101111011", "Decode_nlqglq"},
8672       {"0101111100", "Decode_vtxyxz"},
8673       {"0101111101", "Decode_pqtjgx"},
8674       {"0101111110", "Decode_snjpvy"},
8675       {"0101111111", "Decode_spzgkt"},
8676       {"0110001xxx", "Decode_plktrh"},
8677       {"0110010xxx", "Decode_xtqmyj"},
8678       {"0110011xxx", "Decode_lzpykk"},
8679       {"0110100xxx", "Decode_mtzgpn"},
8680       {"0110101xxx", "Decode_tvgvvq"},
8681       {"01110000xx", "Decode_zxspnk"},
8682       {"0111000100", "Decode_zqmmsk"},
8683       {"0111000101", "Decode_nmzyvt"},
8684       {"0111000110", "Decode_vvhzhv"},
8685       {"0111000111", "Decode_sltqpy"},
8686       {"0111001xxx", "Decode_qzsthq"},
8687       {"0111010000", "Decode_zsyggq"},
8688       {"0111010001", "Decode_hngpgx"},
8689       {"011101001x", "Decode_njxtpv"},
8690       {"01111000xx", "Decode_kpmvkn"},
8691       {"0111100101", "Decode_jhytlg"},
8692       {"0111100111", "Decode_rksxpn"},
8693       {"01111001x0", "Decode_trlhgn"},
8694       {"0111101xxx", "Decode_jxtgtx"},
8695       {"0111110000", "Decode_tnhmpx"},
8696       {"0111110010", "Decode_sqjpsl"},
8697       {"0111110100", "Decode_sjnxky"},
8698       {"0111110101", "Decode_kykymg"},
8699       {"0111110110", "Decode_pxzkjy"},
8700       {"0111110111", "Decode_tjktkm"},
8701       {"0111111000", "Decode_hhkhkk"},
8702       {"0111111001", "Decode_nxmjvy"},
8703       {"0111111010", "Decode_vkvgnm"},
8704       {"0111111011", "Decode_tssqsr"},
8705       {"0111111100", "Decode_mthzvm"},
8706       {"0111111101", "Decode_nlgqsk"},
8707       {"0111111110", "Decode_gvykrp"},
8708       {"0111111111", "Decode_sjzsvv"},
8709       {"0x10000xxx", "Visit_adr_only_pcreladdr"},
8710       {"1000100000", "Decode_lspzrv"},
8711       {"1000100001", "Decode_kxvvkq"},
8712       {"1000100010", "Decode_sxpvym"},
8713       {"1000100011", "Decode_vkrkks"},
8714       {"1000100100", "Decode_xvnyxq"},
8715       {"1000100101", "Decode_gtxpgx"},
8716       {"1000100110", "Decode_vlrhpy"},
8717       {"1000100111", "Decode_ymhkrx"},
8718       {"1000101000", "Decode_zrmgjx"},
8719       {"1000101001", "Decode_qqyryl"},
8720       {"1000101010", "Decode_hgxtqy"},
8721       {"1000101011", "Decode_yytvxh"},
8722       {"1000101100", "Decode_ptslzg"},
8723       {"1000101101", "Decode_ytkjxx"},
8724       {"1000101110", "Decode_zxtzmv"},
8725       {"1000101111", "Decode_kgmqkh"},
8726       {"100100000x", "Decode_jhqlkv"},
8727       {"100100001x", "Decode_lxgltj"},
8728       {"1001000100", "Decode_hxzlmm"},
8729       {"1001000101", "Decode_vllqmp"},
8730       {"1001000110", "Decode_tlstgz"},
8731       {"1001000111", "Decode_mrmpgh"},
8732       {"10010100xx", "Decode_rzkmny"},
8733       {"10010101xx", "Decode_jggvph"},
8734       {"10010110xx", "Decode_nhkstj"},
8735       {"10010111xx", "Decode_jsygzs"},
8736       {"100111000x", "Decode_gmsgqz"},
8737       {"1001110010", "Decode_grrjlh"},
8738       {"1001110011", "Decode_jhkglp"},
8739       {"100111010x", "Decode_qytrjj"},
8740       {"1001110110", "Decode_qsqqxg"},
8741       {"1001110111", "Decode_kypqpy"},
8742       {"1010001xxx", "Decode_vsvtqz"},
8743       {"1010010xxx", "Decode_vqzlzt"},
8744       {"10100110xx", "Decode_xxpqgg"},
8745       {"10100111xx", "Decode_rgjqzs"},
8746       {"10101000xx", "Decode_qmrgkn"},
8747       {"10101001xx", "Decode_jkxlnq"},
8748       {"1010101000", "Decode_ggvztl"},
8749       {"1010101001", "Decode_xlhjhx"},
8750       {"101010101x", "Decode_nqgqjh"},
8751       {"1010101100", "Decode_qsrtzz"},
8752       {"1010101110", "Decode_tzzzxz"},
8753       {"10101011x1", "Decode_lhmlrj"},
8754       {"1010110000", "Decode_kkmxxx"},
8755       {"1010110100", "Decode_ltvrrg"},
8756       {"1010111000", "Decode_mqkjxj"},
8757       {"1010111100", "Decode_pmrngh"},
8758       {"101011xx10", "Decode_hsjynv"},
8759       {"101011xxx1", "Decode_kmhtqp"},
8760       {"1011000xxx", "Decode_ylhxlt"},
8761       {"10110010xx", "Decode_gkxgsn"},
8762       {"1011001100", "Decode_xzmjxk"},
8763       {"1011001110", "Decode_ppqkym"},
8764       {"10110011x1", "Decode_xzyxnr"},
8765       {"1011010000", "Decode_xyljvp"},
8766       {"1011010001", "Decode_sxnkrh"},
8767       {"101101001x", "Decode_klthpn"},
8768       {"101101100x", "Decode_xnsrny"},
8769       {"101101101x", "Decode_htppjj"},
8770       {"101101110x", "Decode_rmmmjj"},
8771       {"101101111x", "Decode_txnqzy"},
8772       {"1011100xxx", "Decode_gmvtss"},
8773       {"10111100xx", "Decode_gnxgxs"},
8774       {"1011110100", "Decode_zjgvyp"},
8775       {"1100100000", "Decode_sjtrhm"},
8776       {"1100100001", "Decode_hzkglv"},
8777       {"1100100010", "Decode_qrygny"},
8778       {"1100100011", "Decode_tjzqnp"},
8779       {"1100100100", "Decode_yqvqtx"},
8780       {"1100100101", "Decode_ngttyj"},
8781       {"1100100110", "Decode_kqzmtr"},
8782       {"1100100111", "Decode_qpvgnh"},
8783       {"1100101000", "Decode_tpkslq"},
8784       {"1100101001", "Decode_ympyng"},
8785       {"1100101010", "Decode_ytvtqn"},
8786       {"1100101011", "Decode_qvsypn"},
8787       {"1100101100", "Decode_lqmksm"},
8788       {"1100101101", "Decode_mkskxj"},
8789       {"1100101110", "Decode_knkjnz"},
8790       {"1100101111", "Decode_hxnmsl"},
8791       {"1101000xxx", "Decode_shrsxr"},
8792       {"1101001xxx", "Decode_xhkgqh"},
8793       {"11010100xx", "Decode_rmxjsn"},
8794       {"11010101xx", "Decode_mvzvpk"},
8795       {"11010110xx", "Decode_ysjqhn"},
8796       {"11010111xx", "Decode_lpkqzl"},
8797       {"1101100xxx", "Decode_zpzghs"},
8798       {"1101101xxx", "Decode_gmrxqq"},
8799       {"1110001xxx", "Decode_jlqjzr"},
8800       {"1110010xxx", "Decode_qgmngg"},
8801       {"1110011xxx", "Decode_vlrrtz"},
8802       {"1110100xxx", "Decode_zylnnn"},
8803       {"1110101xxx", "Decode_yjjrgg"},
8804       {"11110000xx", "Decode_qhtrnn"},
8805       {"1111000100", "Decode_lrqkvp"},
8806       {"1111000101", "Decode_pvkmmv"},
8807       {"1111000110", "Decode_lxmyjh"},
8808       {"1111000111", "Decode_vgrhsz"},
8809       {"1111001xxx", "Decode_vqvqhp"},
8810       {"1111010000", "Decode_yjsjvt"},
8811       {"1111010010", "Decode_yzzlxs"},
8812       {"11110100x1", "Decode_vkhhkk"},
8813       {"11111000xx", "Decode_xrhmtg"},
8814       {"11111001xx", "Decode_xprlgy"},
8815       {"1111101xxx", "Decode_hjgylh"},
8816       {"1x10000xxx", "Visit_adrp_only_pcreladdr"},
8817       {"x110110xxx", "Decode_zytrsq"},
8818       {"x110111xxx", "Decode_kxsysq"},
8819     },
8820   },
8821 };
8822 // clang-format on
8823 
8824 static const VisitorNode kVisitorNodes[] = {
8825 #define VISITOR_NODES(A) {"Visit_" #A, &Decoder::Visit_##A},
8826     INSTRUCTION_VISITOR_LIST(VISITOR_NODES)
8827 #undef VISITOR_NODES
8828 };
8829 
8830 }  // namespace aarch64
8831 }  // namespace vixl
8832