/* This file is autogenerated by scripts/decodetree.py.  */

typedef struct {
    int vd;
    int q;
    int imm;
    int cmode;
    int op;
} arg_1reg_imm;

typedef struct {
    int vd;
    int vm;
    int q;
    int size;
} arg_2misc;

typedef struct {
    int vm;
    int vd;
    int q;
    int shift;
    int size;
} arg_2reg_shift;

typedef struct {
    int vm;
    int vn;
    int vd;
    int size;
    int q;
} arg_2scalar;

typedef struct {
    int vm;
    int vn;
    int vd;
    int size;
} arg_3diff;

typedef struct {
    int vm;
    int vn;
    int vd;
    int q;
    int size;
} arg_3same;

typedef struct {
    int imm;
    int q;
    int vm;
    int vn;
    int vd;
} arg_disas_neon_dp3;

typedef struct {
    int len;
    int op;
    int vm;
    int vn;
    int vd;
} arg_disas_neon_dp4;

typedef struct {
    int index;
    int q;
    int vm;
    int vd;
    int size;
} arg_disas_neon_dp5;

typedef arg_3same arg_VHADD_S_3s;
static bool trans_VHADD_S_3s(DisasContext *ctx, arg_VHADD_S_3s *a);
typedef arg_3same arg_VHADD_U_3s;
static bool trans_VHADD_U_3s(DisasContext *ctx, arg_VHADD_U_3s *a);
typedef arg_3same arg_VQADD_S_3s;
static bool trans_VQADD_S_3s(DisasContext *ctx, arg_VQADD_S_3s *a);
typedef arg_3same arg_VQADD_U_3s;
static bool trans_VQADD_U_3s(DisasContext *ctx, arg_VQADD_U_3s *a);
typedef arg_3same arg_VRHADD_S_3s;
static bool trans_VRHADD_S_3s(DisasContext *ctx, arg_VRHADD_S_3s *a);
typedef arg_3same arg_VRHADD_U_3s;
static bool trans_VRHADD_U_3s(DisasContext *ctx, arg_VRHADD_U_3s *a);
typedef arg_3same arg_VAND_3s;
static bool trans_VAND_3s(DisasContext *ctx, arg_VAND_3s *a);
typedef arg_3same arg_VBIC_3s;
static bool trans_VBIC_3s(DisasContext *ctx, arg_VBIC_3s *a);
typedef arg_3same arg_VORR_3s;
static bool trans_VORR_3s(DisasContext *ctx, arg_VORR_3s *a);
typedef arg_3same arg_VORN_3s;
static bool trans_VORN_3s(DisasContext *ctx, arg_VORN_3s *a);
typedef arg_3same arg_VEOR_3s;
static bool trans_VEOR_3s(DisasContext *ctx, arg_VEOR_3s *a);
typedef arg_3same arg_VBSL_3s;
static bool trans_VBSL_3s(DisasContext *ctx, arg_VBSL_3s *a);
typedef arg_3same arg_VBIT_3s;
static bool trans_VBIT_3s(DisasContext *ctx, arg_VBIT_3s *a);
typedef arg_3same arg_VBIF_3s;
static bool trans_VBIF_3s(DisasContext *ctx, arg_VBIF_3s *a);
typedef arg_3same arg_VHSUB_S_3s;
static bool trans_VHSUB_S_3s(DisasContext *ctx, arg_VHSUB_S_3s *a);
typedef arg_3same arg_VHSUB_U_3s;
static bool trans_VHSUB_U_3s(DisasContext *ctx, arg_VHSUB_U_3s *a);
typedef arg_3same arg_VQSUB_S_3s;
static bool trans_VQSUB_S_3s(DisasContext *ctx, arg_VQSUB_S_3s *a);
typedef arg_3same arg_VQSUB_U_3s;
static bool trans_VQSUB_U_3s(DisasContext *ctx, arg_VQSUB_U_3s *a);
typedef arg_3same arg_VCGT_S_3s;
static bool trans_VCGT_S_3s(DisasContext *ctx, arg_VCGT_S_3s *a);
typedef arg_3same arg_VCGT_U_3s;
static bool trans_VCGT_U_3s(DisasContext *ctx, arg_VCGT_U_3s *a);
typedef arg_3same arg_VCGE_S_3s;
static bool trans_VCGE_S_3s(DisasContext *ctx, arg_VCGE_S_3s *a);
typedef arg_3same arg_VCGE_U_3s;
static bool trans_VCGE_U_3s(DisasContext *ctx, arg_VCGE_U_3s *a);
typedef arg_3same arg_VSHL_S_3s;
static bool trans_VSHL_S_3s(DisasContext *ctx, arg_VSHL_S_3s *a);
typedef arg_3same arg_VSHL_U_3s;
static bool trans_VSHL_U_3s(DisasContext *ctx, arg_VSHL_U_3s *a);
typedef arg_3same arg_VQSHL_S64_3s;
static bool trans_VQSHL_S64_3s(DisasContext *ctx, arg_VQSHL_S64_3s *a);
typedef arg_3same arg_VQSHL_S_3s;
static bool trans_VQSHL_S_3s(DisasContext *ctx, arg_VQSHL_S_3s *a);
typedef arg_3same arg_VQSHL_U64_3s;
static bool trans_VQSHL_U64_3s(DisasContext *ctx, arg_VQSHL_U64_3s *a);
typedef arg_3same arg_VQSHL_U_3s;
static bool trans_VQSHL_U_3s(DisasContext *ctx, arg_VQSHL_U_3s *a);
typedef arg_3same arg_VRSHL_S64_3s;
static bool trans_VRSHL_S64_3s(DisasContext *ctx, arg_VRSHL_S64_3s *a);
typedef arg_3same arg_VRSHL_S_3s;
static bool trans_VRSHL_S_3s(DisasContext *ctx, arg_VRSHL_S_3s *a);
typedef arg_3same arg_VRSHL_U64_3s;
static bool trans_VRSHL_U64_3s(DisasContext *ctx, arg_VRSHL_U64_3s *a);
typedef arg_3same arg_VRSHL_U_3s;
static bool trans_VRSHL_U_3s(DisasContext *ctx, arg_VRSHL_U_3s *a);
typedef arg_3same arg_VQRSHL_S64_3s;
static bool trans_VQRSHL_S64_3s(DisasContext *ctx, arg_VQRSHL_S64_3s *a);
typedef arg_3same arg_VQRSHL_S_3s;
static bool trans_VQRSHL_S_3s(DisasContext *ctx, arg_VQRSHL_S_3s *a);
typedef arg_3same arg_VQRSHL_U64_3s;
static bool trans_VQRSHL_U64_3s(DisasContext *ctx, arg_VQRSHL_U64_3s *a);
typedef arg_3same arg_VQRSHL_U_3s;
static bool trans_VQRSHL_U_3s(DisasContext *ctx, arg_VQRSHL_U_3s *a);
typedef arg_3same arg_VMAX_S_3s;
static bool trans_VMAX_S_3s(DisasContext *ctx, arg_VMAX_S_3s *a);
typedef arg_3same arg_VMAX_U_3s;
static bool trans_VMAX_U_3s(DisasContext *ctx, arg_VMAX_U_3s *a);
typedef arg_3same arg_VMIN_S_3s;
static bool trans_VMIN_S_3s(DisasContext *ctx, arg_VMIN_S_3s *a);
typedef arg_3same arg_VMIN_U_3s;
static bool trans_VMIN_U_3s(DisasContext *ctx, arg_VMIN_U_3s *a);
typedef arg_3same arg_VABD_S_3s;
static bool trans_VABD_S_3s(DisasContext *ctx, arg_VABD_S_3s *a);
typedef arg_3same arg_VABD_U_3s;
static bool trans_VABD_U_3s(DisasContext *ctx, arg_VABD_U_3s *a);
typedef arg_3same arg_VABA_S_3s;
static bool trans_VABA_S_3s(DisasContext *ctx, arg_VABA_S_3s *a);
typedef arg_3same arg_VABA_U_3s;
static bool trans_VABA_U_3s(DisasContext *ctx, arg_VABA_U_3s *a);
typedef arg_3same arg_VADD_3s;
static bool trans_VADD_3s(DisasContext *ctx, arg_VADD_3s *a);
typedef arg_3same arg_VSUB_3s;
static bool trans_VSUB_3s(DisasContext *ctx, arg_VSUB_3s *a);
typedef arg_3same arg_VTST_3s;
static bool trans_VTST_3s(DisasContext *ctx, arg_VTST_3s *a);
typedef arg_3same arg_VCEQ_3s;
static bool trans_VCEQ_3s(DisasContext *ctx, arg_VCEQ_3s *a);
typedef arg_3same arg_VMLA_3s;
static bool trans_VMLA_3s(DisasContext *ctx, arg_VMLA_3s *a);
typedef arg_3same arg_VMLS_3s;
static bool trans_VMLS_3s(DisasContext *ctx, arg_VMLS_3s *a);
typedef arg_3same arg_VMUL_3s;
static bool trans_VMUL_3s(DisasContext *ctx, arg_VMUL_3s *a);
typedef arg_3same arg_VMUL_p_3s;
static bool trans_VMUL_p_3s(DisasContext *ctx, arg_VMUL_p_3s *a);
typedef arg_3same arg_VPMAX_S_3s;
static bool trans_VPMAX_S_3s(DisasContext *ctx, arg_VPMAX_S_3s *a);
typedef arg_3same arg_VPMAX_U_3s;
static bool trans_VPMAX_U_3s(DisasContext *ctx, arg_VPMAX_U_3s *a);
typedef arg_3same arg_VPMIN_S_3s;
static bool trans_VPMIN_S_3s(DisasContext *ctx, arg_VPMIN_S_3s *a);
typedef arg_3same arg_VPMIN_U_3s;
static bool trans_VPMIN_U_3s(DisasContext *ctx, arg_VPMIN_U_3s *a);
typedef arg_3same arg_VQDMULH_3s;
static bool trans_VQDMULH_3s(DisasContext *ctx, arg_VQDMULH_3s *a);
typedef arg_3same arg_VQRDMULH_3s;
static bool trans_VQRDMULH_3s(DisasContext *ctx, arg_VQRDMULH_3s *a);
typedef arg_3same arg_VPADD_3s;
static bool trans_VPADD_3s(DisasContext *ctx, arg_VPADD_3s *a);
typedef arg_3same arg_VQRDMLAH_3s;
static bool trans_VQRDMLAH_3s(DisasContext *ctx, arg_VQRDMLAH_3s *a);
typedef arg_3same arg_SHA1C_3s;
static bool trans_SHA1C_3s(DisasContext *ctx, arg_SHA1C_3s *a);
typedef arg_3same arg_SHA1P_3s;
static bool trans_SHA1P_3s(DisasContext *ctx, arg_SHA1P_3s *a);
typedef arg_3same arg_SHA1M_3s;
static bool trans_SHA1M_3s(DisasContext *ctx, arg_SHA1M_3s *a);
typedef arg_3same arg_SHA1SU0_3s;
static bool trans_SHA1SU0_3s(DisasContext *ctx, arg_SHA1SU0_3s *a);
typedef arg_3same arg_SHA256H_3s;
static bool trans_SHA256H_3s(DisasContext *ctx, arg_SHA256H_3s *a);
typedef arg_3same arg_SHA256H2_3s;
static bool trans_SHA256H2_3s(DisasContext *ctx, arg_SHA256H2_3s *a);
typedef arg_3same arg_SHA256SU1_3s;
static bool trans_SHA256SU1_3s(DisasContext *ctx, arg_SHA256SU1_3s *a);
typedef arg_3same arg_VFMA_fp_3s;
static bool trans_VFMA_fp_3s(DisasContext *ctx, arg_VFMA_fp_3s *a);
typedef arg_3same arg_VFMS_fp_3s;
static bool trans_VFMS_fp_3s(DisasContext *ctx, arg_VFMS_fp_3s *a);
typedef arg_3same arg_VQRDMLSH_3s;
static bool trans_VQRDMLSH_3s(DisasContext *ctx, arg_VQRDMLSH_3s *a);
typedef arg_3same arg_VADD_fp_3s;
static bool trans_VADD_fp_3s(DisasContext *ctx, arg_VADD_fp_3s *a);
typedef arg_3same arg_VSUB_fp_3s;
static bool trans_VSUB_fp_3s(DisasContext *ctx, arg_VSUB_fp_3s *a);
typedef arg_3same arg_VPADD_fp_3s;
static bool trans_VPADD_fp_3s(DisasContext *ctx, arg_VPADD_fp_3s *a);
typedef arg_3same arg_VABD_fp_3s;
static bool trans_VABD_fp_3s(DisasContext *ctx, arg_VABD_fp_3s *a);
typedef arg_3same arg_VMLA_fp_3s;
static bool trans_VMLA_fp_3s(DisasContext *ctx, arg_VMLA_fp_3s *a);
typedef arg_3same arg_VMLS_fp_3s;
static bool trans_VMLS_fp_3s(DisasContext *ctx, arg_VMLS_fp_3s *a);
typedef arg_3same arg_VMUL_fp_3s;
static bool trans_VMUL_fp_3s(DisasContext *ctx, arg_VMUL_fp_3s *a);
typedef arg_3same arg_VCEQ_fp_3s;
static bool trans_VCEQ_fp_3s(DisasContext *ctx, arg_VCEQ_fp_3s *a);
typedef arg_3same arg_VCGE_fp_3s;
static bool trans_VCGE_fp_3s(DisasContext *ctx, arg_VCGE_fp_3s *a);
typedef arg_3same arg_VACGE_fp_3s;
static bool trans_VACGE_fp_3s(DisasContext *ctx, arg_VACGE_fp_3s *a);
typedef arg_3same arg_VCGT_fp_3s;
static bool trans_VCGT_fp_3s(DisasContext *ctx, arg_VCGT_fp_3s *a);
typedef arg_3same arg_VACGT_fp_3s;
static bool trans_VACGT_fp_3s(DisasContext *ctx, arg_VACGT_fp_3s *a);
typedef arg_3same arg_VMAX_fp_3s;
static bool trans_VMAX_fp_3s(DisasContext *ctx, arg_VMAX_fp_3s *a);
typedef arg_3same arg_VMIN_fp_3s;
static bool trans_VMIN_fp_3s(DisasContext *ctx, arg_VMIN_fp_3s *a);
typedef arg_3same arg_VPMAX_fp_3s;
static bool trans_VPMAX_fp_3s(DisasContext *ctx, arg_VPMAX_fp_3s *a);
typedef arg_3same arg_VPMIN_fp_3s;
static bool trans_VPMIN_fp_3s(DisasContext *ctx, arg_VPMIN_fp_3s *a);
typedef arg_3same arg_VRECPS_fp_3s;
static bool trans_VRECPS_fp_3s(DisasContext *ctx, arg_VRECPS_fp_3s *a);
typedef arg_3same arg_VRSQRTS_fp_3s;
static bool trans_VRSQRTS_fp_3s(DisasContext *ctx, arg_VRSQRTS_fp_3s *a);
typedef arg_3same arg_VMAXNM_fp_3s;
static bool trans_VMAXNM_fp_3s(DisasContext *ctx, arg_VMAXNM_fp_3s *a);
typedef arg_3same arg_VMINNM_fp_3s;
static bool trans_VMINNM_fp_3s(DisasContext *ctx, arg_VMINNM_fp_3s *a);
typedef arg_2reg_shift arg_VSHR_S_2sh;
static bool trans_VSHR_S_2sh(DisasContext *ctx, arg_VSHR_S_2sh *a);
typedef arg_2reg_shift arg_VSHR_U_2sh;
static bool trans_VSHR_U_2sh(DisasContext *ctx, arg_VSHR_U_2sh *a);
typedef arg_2reg_shift arg_VSRA_S_2sh;
static bool trans_VSRA_S_2sh(DisasContext *ctx, arg_VSRA_S_2sh *a);
typedef arg_2reg_shift arg_VSRA_U_2sh;
static bool trans_VSRA_U_2sh(DisasContext *ctx, arg_VSRA_U_2sh *a);
typedef arg_2reg_shift arg_VRSHR_S_2sh;
static bool trans_VRSHR_S_2sh(DisasContext *ctx, arg_VRSHR_S_2sh *a);
typedef arg_2reg_shift arg_VRSHR_U_2sh;
static bool trans_VRSHR_U_2sh(DisasContext *ctx, arg_VRSHR_U_2sh *a);
typedef arg_2reg_shift arg_VRSRA_S_2sh;
static bool trans_VRSRA_S_2sh(DisasContext *ctx, arg_VRSRA_S_2sh *a);
typedef arg_2reg_shift arg_VRSRA_U_2sh;
static bool trans_VRSRA_U_2sh(DisasContext *ctx, arg_VRSRA_U_2sh *a);
typedef arg_2reg_shift arg_VSRI_2sh;
static bool trans_VSRI_2sh(DisasContext *ctx, arg_VSRI_2sh *a);
typedef arg_2reg_shift arg_VSHL_2sh;
static bool trans_VSHL_2sh(DisasContext *ctx, arg_VSHL_2sh *a);
typedef arg_2reg_shift arg_VSLI_2sh;
static bool trans_VSLI_2sh(DisasContext *ctx, arg_VSLI_2sh *a);
typedef arg_2reg_shift arg_VQSHLU_64_2sh;
static bool trans_VQSHLU_64_2sh(DisasContext *ctx, arg_VQSHLU_64_2sh *a);
typedef arg_2reg_shift arg_VQSHLU_2sh;
static bool trans_VQSHLU_2sh(DisasContext *ctx, arg_VQSHLU_2sh *a);
typedef arg_2reg_shift arg_VQSHL_S_64_2sh;
static bool trans_VQSHL_S_64_2sh(DisasContext *ctx, arg_VQSHL_S_64_2sh *a);
typedef arg_2reg_shift arg_VQSHL_S_2sh;
static bool trans_VQSHL_S_2sh(DisasContext *ctx, arg_VQSHL_S_2sh *a);
typedef arg_2reg_shift arg_VQSHL_U_64_2sh;
static bool trans_VQSHL_U_64_2sh(DisasContext *ctx, arg_VQSHL_U_64_2sh *a);
typedef arg_2reg_shift arg_VQSHL_U_2sh;
static bool trans_VQSHL_U_2sh(DisasContext *ctx, arg_VQSHL_U_2sh *a);
typedef arg_2reg_shift arg_VSHRN_64_2sh;
static bool trans_VSHRN_64_2sh(DisasContext *ctx, arg_VSHRN_64_2sh *a);
typedef arg_2reg_shift arg_VSHRN_32_2sh;
static bool trans_VSHRN_32_2sh(DisasContext *ctx, arg_VSHRN_32_2sh *a);
typedef arg_2reg_shift arg_VSHRN_16_2sh;
static bool trans_VSHRN_16_2sh(DisasContext *ctx, arg_VSHRN_16_2sh *a);
typedef arg_2reg_shift arg_VRSHRN_64_2sh;
static bool trans_VRSHRN_64_2sh(DisasContext *ctx, arg_VRSHRN_64_2sh *a);
typedef arg_2reg_shift arg_VRSHRN_32_2sh;
static bool trans_VRSHRN_32_2sh(DisasContext *ctx, arg_VRSHRN_32_2sh *a);
typedef arg_2reg_shift arg_VRSHRN_16_2sh;
static bool trans_VRSHRN_16_2sh(DisasContext *ctx, arg_VRSHRN_16_2sh *a);
typedef arg_2reg_shift arg_VQSHRUN_64_2sh;
static bool trans_VQSHRUN_64_2sh(DisasContext *ctx, arg_VQSHRUN_64_2sh *a);
typedef arg_2reg_shift arg_VQSHRUN_32_2sh;
static bool trans_VQSHRUN_32_2sh(DisasContext *ctx, arg_VQSHRUN_32_2sh *a);
typedef arg_2reg_shift arg_VQSHRUN_16_2sh;
static bool trans_VQSHRUN_16_2sh(DisasContext *ctx, arg_VQSHRUN_16_2sh *a);
typedef arg_2reg_shift arg_VQRSHRUN_64_2sh;
static bool trans_VQRSHRUN_64_2sh(DisasContext *ctx, arg_VQRSHRUN_64_2sh *a);
typedef arg_2reg_shift arg_VQRSHRUN_32_2sh;
static bool trans_VQRSHRUN_32_2sh(DisasContext *ctx, arg_VQRSHRUN_32_2sh *a);
typedef arg_2reg_shift arg_VQRSHRUN_16_2sh;
static bool trans_VQRSHRUN_16_2sh(DisasContext *ctx, arg_VQRSHRUN_16_2sh *a);
typedef arg_2reg_shift arg_VQSHRN_S64_2sh;
static bool trans_VQSHRN_S64_2sh(DisasContext *ctx, arg_VQSHRN_S64_2sh *a);
typedef arg_2reg_shift arg_VQSHRN_S32_2sh;
static bool trans_VQSHRN_S32_2sh(DisasContext *ctx, arg_VQSHRN_S32_2sh *a);
typedef arg_2reg_shift arg_VQSHRN_S16_2sh;
static bool trans_VQSHRN_S16_2sh(DisasContext *ctx, arg_VQSHRN_S16_2sh *a);
typedef arg_2reg_shift arg_VQRSHRN_S64_2sh;
static bool trans_VQRSHRN_S64_2sh(DisasContext *ctx, arg_VQRSHRN_S64_2sh *a);
typedef arg_2reg_shift arg_VQRSHRN_S32_2sh;
static bool trans_VQRSHRN_S32_2sh(DisasContext *ctx, arg_VQRSHRN_S32_2sh *a);
typedef arg_2reg_shift arg_VQRSHRN_S16_2sh;
static bool trans_VQRSHRN_S16_2sh(DisasContext *ctx, arg_VQRSHRN_S16_2sh *a);
typedef arg_2reg_shift arg_VQSHRN_U64_2sh;
static bool trans_VQSHRN_U64_2sh(DisasContext *ctx, arg_VQSHRN_U64_2sh *a);
typedef arg_2reg_shift arg_VQSHRN_U32_2sh;
static bool trans_VQSHRN_U32_2sh(DisasContext *ctx, arg_VQSHRN_U32_2sh *a);
typedef arg_2reg_shift arg_VQSHRN_U16_2sh;
static bool trans_VQSHRN_U16_2sh(DisasContext *ctx, arg_VQSHRN_U16_2sh *a);
typedef arg_2reg_shift arg_VQRSHRN_U64_2sh;
static bool trans_VQRSHRN_U64_2sh(DisasContext *ctx, arg_VQRSHRN_U64_2sh *a);
typedef arg_2reg_shift arg_VQRSHRN_U32_2sh;
static bool trans_VQRSHRN_U32_2sh(DisasContext *ctx, arg_VQRSHRN_U32_2sh *a);
typedef arg_2reg_shift arg_VQRSHRN_U16_2sh;
static bool trans_VQRSHRN_U16_2sh(DisasContext *ctx, arg_VQRSHRN_U16_2sh *a);
typedef arg_2reg_shift arg_VSHLL_S_2sh;
static bool trans_VSHLL_S_2sh(DisasContext *ctx, arg_VSHLL_S_2sh *a);
typedef arg_2reg_shift arg_VSHLL_U_2sh;
static bool trans_VSHLL_U_2sh(DisasContext *ctx, arg_VSHLL_U_2sh *a);
typedef arg_2reg_shift arg_VCVT_SH_2sh;
static bool trans_VCVT_SH_2sh(DisasContext *ctx, arg_VCVT_SH_2sh *a);
typedef arg_2reg_shift arg_VCVT_UH_2sh;
static bool trans_VCVT_UH_2sh(DisasContext *ctx, arg_VCVT_UH_2sh *a);
typedef arg_2reg_shift arg_VCVT_HS_2sh;
static bool trans_VCVT_HS_2sh(DisasContext *ctx, arg_VCVT_HS_2sh *a);
typedef arg_2reg_shift arg_VCVT_HU_2sh;
static bool trans_VCVT_HU_2sh(DisasContext *ctx, arg_VCVT_HU_2sh *a);
typedef arg_2reg_shift arg_VCVT_SF_2sh;
static bool trans_VCVT_SF_2sh(DisasContext *ctx, arg_VCVT_SF_2sh *a);
typedef arg_2reg_shift arg_VCVT_UF_2sh;
static bool trans_VCVT_UF_2sh(DisasContext *ctx, arg_VCVT_UF_2sh *a);
typedef arg_2reg_shift arg_VCVT_FS_2sh;
static bool trans_VCVT_FS_2sh(DisasContext *ctx, arg_VCVT_FS_2sh *a);
typedef arg_2reg_shift arg_VCVT_FU_2sh;
static bool trans_VCVT_FU_2sh(DisasContext *ctx, arg_VCVT_FU_2sh *a);
typedef arg_1reg_imm arg_Vimm_1r;
static bool trans_Vimm_1r(DisasContext *ctx, arg_Vimm_1r *a);
typedef arg_disas_neon_dp3 arg_VEXT;
static bool trans_VEXT(DisasContext *ctx, arg_VEXT *a);
typedef arg_disas_neon_dp4 arg_VTBL;
static bool trans_VTBL(DisasContext *ctx, arg_VTBL *a);
typedef arg_disas_neon_dp5 arg_VDUP_scalar;
static bool trans_VDUP_scalar(DisasContext *ctx, arg_VDUP_scalar *a);
typedef arg_2misc arg_VREV64;
static bool trans_VREV64(DisasContext *ctx, arg_VREV64 *a);
typedef arg_2misc arg_VREV32;
static bool trans_VREV32(DisasContext *ctx, arg_VREV32 *a);
typedef arg_2misc arg_VREV16;
static bool trans_VREV16(DisasContext *ctx, arg_VREV16 *a);
typedef arg_2misc arg_VPADDL_S;
static bool trans_VPADDL_S(DisasContext *ctx, arg_VPADDL_S *a);
typedef arg_2misc arg_VPADDL_U;
static bool trans_VPADDL_U(DisasContext *ctx, arg_VPADDL_U *a);
typedef arg_2misc arg_AESE;
static bool trans_AESE(DisasContext *ctx, arg_AESE *a);
typedef arg_2misc arg_AESD;
static bool trans_AESD(DisasContext *ctx, arg_AESD *a);
typedef arg_2misc arg_AESMC;
static bool trans_AESMC(DisasContext *ctx, arg_AESMC *a);
typedef arg_2misc arg_AESIMC;
static bool trans_AESIMC(DisasContext *ctx, arg_AESIMC *a);
typedef arg_2misc arg_VCLS;
static bool trans_VCLS(DisasContext *ctx, arg_VCLS *a);
typedef arg_2misc arg_VCLZ;
static bool trans_VCLZ(DisasContext *ctx, arg_VCLZ *a);
typedef arg_2misc arg_VCNT;
static bool trans_VCNT(DisasContext *ctx, arg_VCNT *a);
typedef arg_2misc arg_VMVN;
static bool trans_VMVN(DisasContext *ctx, arg_VMVN *a);
typedef arg_2misc arg_VPADAL_S;
static bool trans_VPADAL_S(DisasContext *ctx, arg_VPADAL_S *a);
typedef arg_2misc arg_VPADAL_U;
static bool trans_VPADAL_U(DisasContext *ctx, arg_VPADAL_U *a);
typedef arg_2misc arg_VQABS;
static bool trans_VQABS(DisasContext *ctx, arg_VQABS *a);
typedef arg_2misc arg_VQNEG;
static bool trans_VQNEG(DisasContext *ctx, arg_VQNEG *a);
typedef arg_2misc arg_VCGT0;
static bool trans_VCGT0(DisasContext *ctx, arg_VCGT0 *a);
typedef arg_2misc arg_VCGE0;
static bool trans_VCGE0(DisasContext *ctx, arg_VCGE0 *a);
typedef arg_2misc arg_VCEQ0;
static bool trans_VCEQ0(DisasContext *ctx, arg_VCEQ0 *a);
typedef arg_2misc arg_VCLE0;
static bool trans_VCLE0(DisasContext *ctx, arg_VCLE0 *a);
typedef arg_2misc arg_VCLT0;
static bool trans_VCLT0(DisasContext *ctx, arg_VCLT0 *a);
typedef arg_2misc arg_SHA1H;
static bool trans_SHA1H(DisasContext *ctx, arg_SHA1H *a);
typedef arg_2misc arg_VABS;
static bool trans_VABS(DisasContext *ctx, arg_VABS *a);
typedef arg_2misc arg_VNEG;
static bool trans_VNEG(DisasContext *ctx, arg_VNEG *a);
typedef arg_2misc arg_VCGT0_F;
static bool trans_VCGT0_F(DisasContext *ctx, arg_VCGT0_F *a);
typedef arg_2misc arg_VCGE0_F;
static bool trans_VCGE0_F(DisasContext *ctx, arg_VCGE0_F *a);
typedef arg_2misc arg_VCEQ0_F;
static bool trans_VCEQ0_F(DisasContext *ctx, arg_VCEQ0_F *a);
typedef arg_2misc arg_VCLE0_F;
static bool trans_VCLE0_F(DisasContext *ctx, arg_VCLE0_F *a);
typedef arg_2misc arg_VCLT0_F;
static bool trans_VCLT0_F(DisasContext *ctx, arg_VCLT0_F *a);
typedef arg_2misc arg_VABS_F;
static bool trans_VABS_F(DisasContext *ctx, arg_VABS_F *a);
typedef arg_2misc arg_VNEG_F;
static bool trans_VNEG_F(DisasContext *ctx, arg_VNEG_F *a);
typedef arg_2misc arg_VSWP;
static bool trans_VSWP(DisasContext *ctx, arg_VSWP *a);
typedef arg_2misc arg_VTRN;
static bool trans_VTRN(DisasContext *ctx, arg_VTRN *a);
typedef arg_2misc arg_VUZP;
static bool trans_VUZP(DisasContext *ctx, arg_VUZP *a);
typedef arg_2misc arg_VZIP;
static bool trans_VZIP(DisasContext *ctx, arg_VZIP *a);
typedef arg_2misc arg_VMOVN;
static bool trans_VMOVN(DisasContext *ctx, arg_VMOVN *a);
typedef arg_2misc arg_VQMOVUN;
static bool trans_VQMOVUN(DisasContext *ctx, arg_VQMOVUN *a);
typedef arg_2misc arg_VQMOVN_S;
static bool trans_VQMOVN_S(DisasContext *ctx, arg_VQMOVN_S *a);
typedef arg_2misc arg_VQMOVN_U;
static bool trans_VQMOVN_U(DisasContext *ctx, arg_VQMOVN_U *a);
typedef arg_2misc arg_VSHLL;
static bool trans_VSHLL(DisasContext *ctx, arg_VSHLL *a);
typedef arg_2misc arg_SHA1SU1;
static bool trans_SHA1SU1(DisasContext *ctx, arg_SHA1SU1 *a);
typedef arg_2misc arg_SHA256SU0;
static bool trans_SHA256SU0(DisasContext *ctx, arg_SHA256SU0 *a);
typedef arg_2misc arg_VRINTN;
static bool trans_VRINTN(DisasContext *ctx, arg_VRINTN *a);
typedef arg_2misc arg_VRINTX;
static bool trans_VRINTX(DisasContext *ctx, arg_VRINTX *a);
typedef arg_2misc arg_VRINTA;
static bool trans_VRINTA(DisasContext *ctx, arg_VRINTA *a);
typedef arg_2misc arg_VRINTZ;
static bool trans_VRINTZ(DisasContext *ctx, arg_VRINTZ *a);
typedef arg_2misc arg_VCVT_F16_F32;
static bool trans_VCVT_F16_F32(DisasContext *ctx, arg_VCVT_F16_F32 *a);
typedef arg_2misc arg_VCVT_B16_F32;
static bool trans_VCVT_B16_F32(DisasContext *ctx, arg_VCVT_B16_F32 *a);
typedef arg_2misc arg_VRINTM;
static bool trans_VRINTM(DisasContext *ctx, arg_VRINTM *a);
typedef arg_2misc arg_VCVT_F32_F16;
static bool trans_VCVT_F32_F16(DisasContext *ctx, arg_VCVT_F32_F16 *a);
typedef arg_2misc arg_VRINTP;
static bool trans_VRINTP(DisasContext *ctx, arg_VRINTP *a);
typedef arg_2misc arg_VCVTAS;
static bool trans_VCVTAS(DisasContext *ctx, arg_VCVTAS *a);
typedef arg_2misc arg_VCVTAU;
static bool trans_VCVTAU(DisasContext *ctx, arg_VCVTAU *a);
typedef arg_2misc arg_VCVTNS;
static bool trans_VCVTNS(DisasContext *ctx, arg_VCVTNS *a);
typedef arg_2misc arg_VCVTNU;
static bool trans_VCVTNU(DisasContext *ctx, arg_VCVTNU *a);
typedef arg_2misc arg_VCVTPS;
static bool trans_VCVTPS(DisasContext *ctx, arg_VCVTPS *a);
typedef arg_2misc arg_VCVTPU;
static bool trans_VCVTPU(DisasContext *ctx, arg_VCVTPU *a);
typedef arg_2misc arg_VCVTMS;
static bool trans_VCVTMS(DisasContext *ctx, arg_VCVTMS *a);
typedef arg_2misc arg_VCVTMU;
static bool trans_VCVTMU(DisasContext *ctx, arg_VCVTMU *a);
typedef arg_2misc arg_VRECPE;
static bool trans_VRECPE(DisasContext *ctx, arg_VRECPE *a);
typedef arg_2misc arg_VRSQRTE;
static bool trans_VRSQRTE(DisasContext *ctx, arg_VRSQRTE *a);
typedef arg_2misc arg_VRECPE_F;
static bool trans_VRECPE_F(DisasContext *ctx, arg_VRECPE_F *a);
typedef arg_2misc arg_VRSQRTE_F;
static bool trans_VRSQRTE_F(DisasContext *ctx, arg_VRSQRTE_F *a);
typedef arg_2misc arg_VCVT_FS;
static bool trans_VCVT_FS(DisasContext *ctx, arg_VCVT_FS *a);
typedef arg_2misc arg_VCVT_FU;
static bool trans_VCVT_FU(DisasContext *ctx, arg_VCVT_FU *a);
typedef arg_2misc arg_VCVT_SF;
static bool trans_VCVT_SF(DisasContext *ctx, arg_VCVT_SF *a);
typedef arg_2misc arg_VCVT_UF;
static bool trans_VCVT_UF(DisasContext *ctx, arg_VCVT_UF *a);
typedef arg_3diff arg_VADDL_S_3d;
static bool trans_VADDL_S_3d(DisasContext *ctx, arg_VADDL_S_3d *a);
typedef arg_3diff arg_VADDL_U_3d;
static bool trans_VADDL_U_3d(DisasContext *ctx, arg_VADDL_U_3d *a);
typedef arg_3diff arg_VADDW_S_3d;
static bool trans_VADDW_S_3d(DisasContext *ctx, arg_VADDW_S_3d *a);
typedef arg_3diff arg_VADDW_U_3d;
static bool trans_VADDW_U_3d(DisasContext *ctx, arg_VADDW_U_3d *a);
typedef arg_3diff arg_VSUBL_S_3d;
static bool trans_VSUBL_S_3d(DisasContext *ctx, arg_VSUBL_S_3d *a);
typedef arg_3diff arg_VSUBL_U_3d;
static bool trans_VSUBL_U_3d(DisasContext *ctx, arg_VSUBL_U_3d *a);
typedef arg_3diff arg_VSUBW_S_3d;
static bool trans_VSUBW_S_3d(DisasContext *ctx, arg_VSUBW_S_3d *a);
typedef arg_3diff arg_VSUBW_U_3d;
static bool trans_VSUBW_U_3d(DisasContext *ctx, arg_VSUBW_U_3d *a);
typedef arg_3diff arg_VADDHN_3d;
static bool trans_VADDHN_3d(DisasContext *ctx, arg_VADDHN_3d *a);
typedef arg_3diff arg_VRADDHN_3d;
static bool trans_VRADDHN_3d(DisasContext *ctx, arg_VRADDHN_3d *a);
typedef arg_3diff arg_VABAL_S_3d;
static bool trans_VABAL_S_3d(DisasContext *ctx, arg_VABAL_S_3d *a);
typedef arg_3diff arg_VABAL_U_3d;
static bool trans_VABAL_U_3d(DisasContext *ctx, arg_VABAL_U_3d *a);
typedef arg_3diff arg_VSUBHN_3d;
static bool trans_VSUBHN_3d(DisasContext *ctx, arg_VSUBHN_3d *a);
typedef arg_3diff arg_VRSUBHN_3d;
static bool trans_VRSUBHN_3d(DisasContext *ctx, arg_VRSUBHN_3d *a);
typedef arg_3diff arg_VABDL_S_3d;
static bool trans_VABDL_S_3d(DisasContext *ctx, arg_VABDL_S_3d *a);
typedef arg_3diff arg_VABDL_U_3d;
static bool trans_VABDL_U_3d(DisasContext *ctx, arg_VABDL_U_3d *a);
typedef arg_3diff arg_VMLAL_S_3d;
static bool trans_VMLAL_S_3d(DisasContext *ctx, arg_VMLAL_S_3d *a);
typedef arg_3diff arg_VMLAL_U_3d;
static bool trans_VMLAL_U_3d(DisasContext *ctx, arg_VMLAL_U_3d *a);
typedef arg_3diff arg_VQDMLAL_3d;
static bool trans_VQDMLAL_3d(DisasContext *ctx, arg_VQDMLAL_3d *a);
typedef arg_3diff arg_VMLSL_S_3d;
static bool trans_VMLSL_S_3d(DisasContext *ctx, arg_VMLSL_S_3d *a);
typedef arg_3diff arg_VMLSL_U_3d;
static bool trans_VMLSL_U_3d(DisasContext *ctx, arg_VMLSL_U_3d *a);
typedef arg_3diff arg_VQDMLSL_3d;
static bool trans_VQDMLSL_3d(DisasContext *ctx, arg_VQDMLSL_3d *a);
typedef arg_3diff arg_VMULL_S_3d;
static bool trans_VMULL_S_3d(DisasContext *ctx, arg_VMULL_S_3d *a);
typedef arg_3diff arg_VMULL_U_3d;
static bool trans_VMULL_U_3d(DisasContext *ctx, arg_VMULL_U_3d *a);
typedef arg_3diff arg_VQDMULL_3d;
static bool trans_VQDMULL_3d(DisasContext *ctx, arg_VQDMULL_3d *a);
typedef arg_3diff arg_VMULL_P_3d;
static bool trans_VMULL_P_3d(DisasContext *ctx, arg_VMULL_P_3d *a);
typedef arg_2scalar arg_VMLA_2sc;
static bool trans_VMLA_2sc(DisasContext *ctx, arg_VMLA_2sc *a);
typedef arg_2scalar arg_VMLA_F_2sc;
static bool trans_VMLA_F_2sc(DisasContext *ctx, arg_VMLA_F_2sc *a);
typedef arg_2scalar arg_VMLAL_S_2sc;
static bool trans_VMLAL_S_2sc(DisasContext *ctx, arg_VMLAL_S_2sc *a);
typedef arg_2scalar arg_VMLAL_U_2sc;
static bool trans_VMLAL_U_2sc(DisasContext *ctx, arg_VMLAL_U_2sc *a);
typedef arg_2scalar arg_VQDMLAL_2sc;
static bool trans_VQDMLAL_2sc(DisasContext *ctx, arg_VQDMLAL_2sc *a);
typedef arg_2scalar arg_VMLS_2sc;
static bool trans_VMLS_2sc(DisasContext *ctx, arg_VMLS_2sc *a);
typedef arg_2scalar arg_VMLS_F_2sc;
static bool trans_VMLS_F_2sc(DisasContext *ctx, arg_VMLS_F_2sc *a);
typedef arg_2scalar arg_VMLSL_S_2sc;
static bool trans_VMLSL_S_2sc(DisasContext *ctx, arg_VMLSL_S_2sc *a);
typedef arg_2scalar arg_VMLSL_U_2sc;
static bool trans_VMLSL_U_2sc(DisasContext *ctx, arg_VMLSL_U_2sc *a);
typedef arg_2scalar arg_VQDMLSL_2sc;
static bool trans_VQDMLSL_2sc(DisasContext *ctx, arg_VQDMLSL_2sc *a);
typedef arg_2scalar arg_VMUL_2sc;
static bool trans_VMUL_2sc(DisasContext *ctx, arg_VMUL_2sc *a);
typedef arg_2scalar arg_VMUL_F_2sc;
static bool trans_VMUL_F_2sc(DisasContext *ctx, arg_VMUL_F_2sc *a);
typedef arg_2scalar arg_VMULL_S_2sc;
static bool trans_VMULL_S_2sc(DisasContext *ctx, arg_VMULL_S_2sc *a);
typedef arg_2scalar arg_VMULL_U_2sc;
static bool trans_VMULL_U_2sc(DisasContext *ctx, arg_VMULL_U_2sc *a);
typedef arg_2scalar arg_VQDMULL_2sc;
static bool trans_VQDMULL_2sc(DisasContext *ctx, arg_VQDMULL_2sc *a);
typedef arg_2scalar arg_VQDMULH_2sc;
static bool trans_VQDMULH_2sc(DisasContext *ctx, arg_VQDMULH_2sc *a);
typedef arg_2scalar arg_VQRDMULH_2sc;
static bool trans_VQRDMULH_2sc(DisasContext *ctx, arg_VQRDMULH_2sc *a);
typedef arg_2scalar arg_VQRDMLAH_2sc;
static bool trans_VQRDMLAH_2sc(DisasContext *ctx, arg_VQRDMLAH_2sc *a);
typedef arg_2scalar arg_VQRDMLSH_2sc;
static bool trans_VQRDMLSH_2sc(DisasContext *ctx, arg_VQRDMLSH_2sc *a);

static void disas_neon_dp_extract_1reg_imm(DisasContext *ctx, arg_1reg_imm *a, uint32_t insn)
{
    a->q = extract32(insn, 6, 1);
    a->vd = deposit32(extract32(insn, 12, 4), 4, 28, extract32(insn, 22, 1));
    a->imm = deposit32(deposit32(extract32(insn, 0, 4), 4, 28, extract32(insn, 16, 3)), 7, 25, extract32(insn, 24, 1));
}

static void disas_neon_dp_extract_2misc(DisasContext *ctx, arg_2misc *a, uint32_t insn)
{
    a->q = extract32(insn, 6, 1);
    a->size = extract32(insn, 18, 2);
    a->vm = deposit32(extract32(insn, 0, 4), 4, 28, extract32(insn, 5, 1));
    a->vd = deposit32(extract32(insn, 12, 4), 4, 28, extract32(insn, 22, 1));
}

static void disas_neon_dp_extract_2misc_q0(DisasContext *ctx, arg_2misc *a, uint32_t insn)
{
    a->q = 0;
    a->size = extract32(insn, 18, 2);
    a->vm = deposit32(extract32(insn, 0, 4), 4, 28, extract32(insn, 5, 1));
    a->vd = deposit32(extract32(insn, 12, 4), 4, 28, extract32(insn, 22, 1));
}

static void disas_neon_dp_extract_2misc_q1(DisasContext *ctx, arg_2misc *a, uint32_t insn)
{
    a->q = 1;
    a->size = extract32(insn, 18, 2);
    a->vm = deposit32(extract32(insn, 0, 4), 4, 28, extract32(insn, 5, 1));
    a->vd = deposit32(extract32(insn, 12, 4), 4, 28, extract32(insn, 22, 1));
}

static void disas_neon_dp_extract_2reg_shl_b(DisasContext *ctx, arg_2reg_shift *a, uint32_t insn)
{
    a->q = extract32(insn, 6, 1);
    a->shift = extract32(insn, 16, 3);
    a->vm = deposit32(extract32(insn, 0, 4), 4, 28, extract32(insn, 5, 1));
    a->size = 0;
    a->vd = deposit32(extract32(insn, 12, 4), 4, 28, extract32(insn, 22, 1));
}

static void disas_neon_dp_extract_2reg_shl_d(DisasContext *ctx, arg_2reg_shift *a, uint32_t insn)
{
    a->q = extract32(insn, 6, 1);
    a->shift = extract32(insn, 16, 6);
    a->vm = deposit32(extract32(insn, 0, 4), 4, 28, extract32(insn, 5, 1));
    a->size = 3;
    a->vd = deposit32(extract32(insn, 12, 4), 4, 28, extract32(insn, 22, 1));
}

static void disas_neon_dp_extract_2reg_shl_h(DisasContext *ctx, arg_2reg_shift *a, uint32_t insn)
{
    a->q = extract32(insn, 6, 1);
    a->shift = extract32(insn, 16, 4);
    a->vm = deposit32(extract32(insn, 0, 4), 4, 28, extract32(insn, 5, 1));
    a->size = 1;
    a->vd = deposit32(extract32(insn, 12, 4), 4, 28, extract32(insn, 22, 1));
}

static void disas_neon_dp_extract_2reg_shl_s(DisasContext *ctx, arg_2reg_shift *a, uint32_t insn)
{
    a->q = extract32(insn, 6, 1);
    a->shift = extract32(insn, 16, 5);
    a->vm = deposit32(extract32(insn, 0, 4), 4, 28, extract32(insn, 5, 1));
    a->size = 2;
    a->vd = deposit32(extract32(insn, 12, 4), 4, 28, extract32(insn, 22, 1));
}

static void disas_neon_dp_extract_2reg_shll_b(DisasContext *ctx, arg_2reg_shift *a, uint32_t insn)
{
    a->q = 0;
    a->shift = extract32(insn, 16, 3);
    a->vm = deposit32(extract32(insn, 0, 4), 4, 28, extract32(insn, 5, 1));
    a->size = 0;
    a->vd = deposit32(extract32(insn, 12, 4), 4, 28, extract32(insn, 22, 1));
}

static void disas_neon_dp_extract_2reg_shll_h(DisasContext *ctx, arg_2reg_shift *a, uint32_t insn)
{
    a->q = 0;
    a->shift = extract32(insn, 16, 4);
    a->vm = deposit32(extract32(insn, 0, 4), 4, 28, extract32(insn, 5, 1));
    a->size = 1;
    a->vd = deposit32(extract32(insn, 12, 4), 4, 28, extract32(insn, 22, 1));
}

static void disas_neon_dp_extract_2reg_shll_s(DisasContext *ctx, arg_2reg_shift *a, uint32_t insn)
{
    a->q = 0;
    a->shift = extract32(insn, 16, 5);
    a->vm = deposit32(extract32(insn, 0, 4), 4, 28, extract32(insn, 5, 1));
    a->size = 2;
    a->vd = deposit32(extract32(insn, 12, 4), 4, 28, extract32(insn, 22, 1));
}

static void disas_neon_dp_extract_2reg_shr_b(DisasContext *ctx, arg_2reg_shift *a, uint32_t insn)
{
    a->q = extract32(insn, 6, 1);
    a->shift = rsub_8(ctx, extract32(insn, 16, 3));
    a->vm = deposit32(extract32(insn, 0, 4), 4, 28, extract32(insn, 5, 1));
    a->size = 0;
    a->vd = deposit32(extract32(insn, 12, 4), 4, 28, extract32(insn, 22, 1));
}

static void disas_neon_dp_extract_2reg_shr_d(DisasContext *ctx, arg_2reg_shift *a, uint32_t insn)
{
    a->q = extract32(insn, 6, 1);
    a->shift = rsub_64(ctx, extract32(insn, 16, 6));
    a->vm = deposit32(extract32(insn, 0, 4), 4, 28, extract32(insn, 5, 1));
    a->size = 3;
    a->vd = deposit32(extract32(insn, 12, 4), 4, 28, extract32(insn, 22, 1));
}

static void disas_neon_dp_extract_2reg_shr_h(DisasContext *ctx, arg_2reg_shift *a, uint32_t insn)
{
    a->q = extract32(insn, 6, 1);
    a->shift = rsub_16(ctx, extract32(insn, 16, 4));
    a->vm = deposit32(extract32(insn, 0, 4), 4, 28, extract32(insn, 5, 1));
    a->size = 1;
    a->vd = deposit32(extract32(insn, 12, 4), 4, 28, extract32(insn, 22, 1));
}

static void disas_neon_dp_extract_2reg_shr_s(DisasContext *ctx, arg_2reg_shift *a, uint32_t insn)
{
    a->q = extract32(insn, 6, 1);
    a->shift = rsub_32(ctx, extract32(insn, 16, 5));
    a->vm = deposit32(extract32(insn, 0, 4), 4, 28, extract32(insn, 5, 1));
    a->size = 2;
    a->vd = deposit32(extract32(insn, 12, 4), 4, 28, extract32(insn, 22, 1));
}

static void disas_neon_dp_extract_2reg_shrn_d(DisasContext *ctx, arg_2reg_shift *a, uint32_t insn)
{
    a->q = 0;
    a->shift = rsub_32(ctx, extract32(insn, 16, 5));
    a->vm = deposit32(extract32(insn, 0, 4), 4, 28, extract32(insn, 5, 1));
    a->size = 3;
    a->vd = deposit32(extract32(insn, 12, 4), 4, 28, extract32(insn, 22, 1));
}

static void disas_neon_dp_extract_2reg_shrn_h(DisasContext *ctx, arg_2reg_shift *a, uint32_t insn)
{
    a->q = 0;
    a->shift = rsub_8(ctx, extract32(insn, 16, 3));
    a->vm = deposit32(extract32(insn, 0, 4), 4, 28, extract32(insn, 5, 1));
    a->size = 1;
    a->vd = deposit32(extract32(insn, 12, 4), 4, 28, extract32(insn, 22, 1));
}

static void disas_neon_dp_extract_2reg_shrn_s(DisasContext *ctx, arg_2reg_shift *a, uint32_t insn)
{
    a->q = 0;
    a->shift = rsub_16(ctx, extract32(insn, 16, 4));
    a->vm = deposit32(extract32(insn, 0, 4), 4, 28, extract32(insn, 5, 1));
    a->size = 2;
    a->vd = deposit32(extract32(insn, 12, 4), 4, 28, extract32(insn, 22, 1));
}

static void disas_neon_dp_extract_2reg_vcvt(DisasContext *ctx, arg_2reg_shift *a, uint32_t insn)
{
    a->q = extract32(insn, 6, 1);
    a->shift = rsub_32(ctx, extract32(insn, 16, 5));
    a->vm = deposit32(extract32(insn, 0, 4), 4, 28, extract32(insn, 5, 1));
    a->size = 2;
    a->vd = deposit32(extract32(insn, 12, 4), 4, 28, extract32(insn, 22, 1));
}

static void disas_neon_dp_extract_2reg_vcvt_f16(DisasContext *ctx, arg_2reg_shift *a, uint32_t insn)
{
    a->q = extract32(insn, 6, 1);
    a->shift = rsub_16(ctx, extract32(insn, 16, 4));
    a->vm = deposit32(extract32(insn, 0, 4), 4, 28, extract32(insn, 5, 1));
    a->size = 1;
    a->vd = deposit32(extract32(insn, 12, 4), 4, 28, extract32(insn, 22, 1));
}

static void disas_neon_dp_extract_2scalar(DisasContext *ctx, arg_2scalar *a, uint32_t insn)
{
    a->vn = deposit32(extract32(insn, 16, 4), 4, 28, extract32(insn, 7, 1));
    a->q = extract32(insn, 24, 1);
    a->vm = deposit32(extract32(insn, 0, 4), 4, 28, extract32(insn, 5, 1));
    a->size = extract32(insn, 20, 2);
    a->vd = deposit32(extract32(insn, 12, 4), 4, 28, extract32(insn, 22, 1));
}

static void disas_neon_dp_extract_2scalar_q0(DisasContext *ctx, arg_2scalar *a, uint32_t insn)
{
    a->vn = deposit32(extract32(insn, 16, 4), 4, 28, extract32(insn, 7, 1));
    a->q = 0;
    a->vm = deposit32(extract32(insn, 0, 4), 4, 28, extract32(insn, 5, 1));
    a->size = extract32(insn, 20, 2);
    a->vd = deposit32(extract32(insn, 12, 4), 4, 28, extract32(insn, 22, 1));
}

static void disas_neon_dp_extract_3diff(DisasContext *ctx, arg_3diff *a, uint32_t insn)
{
    a->vn = deposit32(extract32(insn, 16, 4), 4, 28, extract32(insn, 7, 1));
    a->size = extract32(insn, 20, 2);
    a->vm = deposit32(extract32(insn, 0, 4), 4, 28, extract32(insn, 5, 1));
    a->vd = deposit32(extract32(insn, 12, 4), 4, 28, extract32(insn, 22, 1));
}

static void disas_neon_dp_extract_3same(DisasContext *ctx, arg_3same *a, uint32_t insn)
{
    a->vn = deposit32(extract32(insn, 16, 4), 4, 28, extract32(insn, 7, 1));
    a->q = extract32(insn, 6, 1);
    a->vm = deposit32(extract32(insn, 0, 4), 4, 28, extract32(insn, 5, 1));
    a->size = extract32(insn, 20, 2);
    a->vd = deposit32(extract32(insn, 12, 4), 4, 28, extract32(insn, 22, 1));
}

static void disas_neon_dp_extract_3same_64_rev(DisasContext *ctx, arg_3same *a, uint32_t insn)
{
    a->vn = deposit32(extract32(insn, 0, 4), 4, 28, extract32(insn, 5, 1));
    a->q = extract32(insn, 6, 1);
    a->vm = deposit32(extract32(insn, 16, 4), 4, 28, extract32(insn, 7, 1));
    a->size = 3;
    a->vd = deposit32(extract32(insn, 12, 4), 4, 28, extract32(insn, 22, 1));
}

static void disas_neon_dp_extract_3same_crypto(DisasContext *ctx, arg_3same *a, uint32_t insn)
{
    a->vn = deposit32(extract32(insn, 16, 4), 4, 28, extract32(insn, 7, 1));
    a->q = 1;
    a->vm = deposit32(extract32(insn, 0, 4), 4, 28, extract32(insn, 5, 1));
    a->size = 0;
    a->vd = deposit32(extract32(insn, 12, 4), 4, 28, extract32(insn, 22, 1));
}

static void disas_neon_dp_extract_3same_fp(DisasContext *ctx, arg_3same *a, uint32_t insn)
{
    a->vn = deposit32(extract32(insn, 16, 4), 4, 28, extract32(insn, 7, 1));
    a->q = extract32(insn, 6, 1);
    a->vm = deposit32(extract32(insn, 0, 4), 4, 28, extract32(insn, 5, 1));
    a->size = neon_3same_fp_size(ctx, extract32(insn, 20, 1));
    a->vd = deposit32(extract32(insn, 12, 4), 4, 28, extract32(insn, 22, 1));
}

static void disas_neon_dp_extract_3same_fp_q0(DisasContext *ctx, arg_3same *a, uint32_t insn)
{
    a->vn = deposit32(extract32(insn, 16, 4), 4, 28, extract32(insn, 7, 1));
    a->q = 0;
    a->vm = deposit32(extract32(insn, 0, 4), 4, 28, extract32(insn, 5, 1));
    a->size = neon_3same_fp_size(ctx, extract32(insn, 20, 1));
    a->vd = deposit32(extract32(insn, 12, 4), 4, 28, extract32(insn, 22, 1));
}

static void disas_neon_dp_extract_3same_logic(DisasContext *ctx, arg_3same *a, uint32_t insn)
{
    a->vn = deposit32(extract32(insn, 16, 4), 4, 28, extract32(insn, 7, 1));
    a->q = extract32(insn, 6, 1);
    a->vm = deposit32(extract32(insn, 0, 4), 4, 28, extract32(insn, 5, 1));
    a->size = 0;
    a->vd = deposit32(extract32(insn, 12, 4), 4, 28, extract32(insn, 22, 1));
}

static void disas_neon_dp_extract_3same_q0(DisasContext *ctx, arg_3same *a, uint32_t insn)
{
    a->vn = deposit32(extract32(insn, 16, 4), 4, 28, extract32(insn, 7, 1));
    a->q = 0;
    a->vm = deposit32(extract32(insn, 0, 4), 4, 28, extract32(insn, 5, 1));
    a->size = extract32(insn, 20, 2);
    a->vd = deposit32(extract32(insn, 12, 4), 4, 28, extract32(insn, 22, 1));
}

static void disas_neon_dp_extract_3same_rev(DisasContext *ctx, arg_3same *a, uint32_t insn)
{
    a->vn = deposit32(extract32(insn, 0, 4), 4, 28, extract32(insn, 5, 1));
    a->q = extract32(insn, 6, 1);
    a->vm = deposit32(extract32(insn, 16, 4), 4, 28, extract32(insn, 7, 1));
    a->size = extract32(insn, 20, 2);
    a->vd = deposit32(extract32(insn, 12, 4), 4, 28, extract32(insn, 22, 1));
}

static void disas_neon_dp_extract_disas_neon_dp_Fmt_25(DisasContext *ctx, arg_disas_neon_dp3 *a, uint32_t insn)
{
    a->vn = deposit32(extract32(insn, 16, 4), 4, 28, extract32(insn, 7, 1));
    a->q = extract32(insn, 6, 1);
    a->imm = extract32(insn, 8, 4);
    a->vm = deposit32(extract32(insn, 0, 4), 4, 28, extract32(insn, 5, 1));
    a->vd = deposit32(extract32(insn, 12, 4), 4, 28, extract32(insn, 22, 1));
}

static void disas_neon_dp_extract_disas_neon_dp_Fmt_26(DisasContext *ctx, arg_disas_neon_dp4 *a, uint32_t insn)
{
    a->vn = deposit32(extract32(insn, 16, 4), 4, 28, extract32(insn, 7, 1));
    a->op = extract32(insn, 6, 1);
    a->vm = deposit32(extract32(insn, 0, 4), 4, 28, extract32(insn, 5, 1));
    a->len = extract32(insn, 8, 2);
    a->vd = deposit32(extract32(insn, 12, 4), 4, 28, extract32(insn, 22, 1));
}

static void disas_neon_dp_extract_disas_neon_dp_Fmt_27(DisasContext *ctx, arg_disas_neon_dp5 *a, uint32_t insn)
{
    a->q = extract32(insn, 6, 1);
    a->vm = deposit32(extract32(insn, 0, 4), 4, 28, extract32(insn, 5, 1));
    a->index = extract32(insn, 17, 3);
    a->size = 0;
    a->vd = deposit32(extract32(insn, 12, 4), 4, 28, extract32(insn, 22, 1));
}

static void disas_neon_dp_extract_disas_neon_dp_Fmt_28(DisasContext *ctx, arg_disas_neon_dp5 *a, uint32_t insn)
{
    a->q = extract32(insn, 6, 1);
    a->vm = deposit32(extract32(insn, 0, 4), 4, 28, extract32(insn, 5, 1));
    a->index = extract32(insn, 18, 2);
    a->size = 1;
    a->vd = deposit32(extract32(insn, 12, 4), 4, 28, extract32(insn, 22, 1));
}

static void disas_neon_dp_extract_disas_neon_dp_Fmt_29(DisasContext *ctx, arg_disas_neon_dp5 *a, uint32_t insn)
{
    a->q = extract32(insn, 6, 1);
    a->vm = deposit32(extract32(insn, 0, 4), 4, 28, extract32(insn, 5, 1));
    a->index = extract32(insn, 19, 1);
    a->size = 2;
    a->vd = deposit32(extract32(insn, 12, 4), 4, 28, extract32(insn, 22, 1));
}

bool disas_neon_dp(DisasContext *ctx, uint32_t insn)
{
    union {
        arg_1reg_imm f_1reg_imm;
        arg_2misc f_2misc;
        arg_2reg_shift f_2reg_shift;
        arg_2scalar f_2scalar;
        arg_3diff f_3diff;
        arg_3same f_3same;
        arg_disas_neon_dp3 f_disas_neon_dp3;
        arg_disas_neon_dp4 f_disas_neon_dp4;
        arg_disas_neon_dp5 f_disas_neon_dp5;
    } u;

    switch (insn & 0xfe800010u) {
    case 0xf2000000u:
        /* 1111001. 0....... ........ ...0.... */
        switch (insn & 0x01000f00) {
        case 0x00000000:
            /* 11110010 0....... ....0000 ...0.... */
            /* ../git/target/arm/tcg/neon-dp.decode:59 */
            disas_neon_dp_extract_3same(ctx, &u.f_3same, insn);
            if (trans_VHADD_S_3s(ctx, &u.f_3same)) return true;
            break;
        case 0x00000100:
            /* 11110010 0....... ....0001 ...0.... */
            /* ../git/target/arm/tcg/neon-dp.decode:64 */
            disas_neon_dp_extract_3same(ctx, &u.f_3same, insn);
            if (trans_VRHADD_S_3s(ctx, &u.f_3same)) return true;
            break;
        case 0x00000200:
            /* 11110010 0....... ....0010 ...0.... */
            /* ../git/target/arm/tcg/neon-dp.decode:79 */
            disas_neon_dp_extract_3same(ctx, &u.f_3same, insn);
            if (trans_VHSUB_S_3s(ctx, &u.f_3same)) return true;
            break;
        case 0x00000300:
            /* 11110010 0....... ....0011 ...0.... */
            /* ../git/target/arm/tcg/neon-dp.decode:85 */
            disas_neon_dp_extract_3same(ctx, &u.f_3same, insn);
            if (trans_VCGT_S_3s(ctx, &u.f_3same)) return true;
            break;
        case 0x00000400:
            /* 11110010 0....... ....0100 ...0.... */
            /* ../git/target/arm/tcg/neon-dp.decode:103 */
            disas_neon_dp_extract_3same_rev(ctx, &u.f_3same, insn);
            if (trans_VSHL_S_3s(ctx, &u.f_3same)) return true;
            break;
        case 0x00000500:
            /* 11110010 0....... ....0101 ...0.... */
            if ((insn & 0x00300000) == 0x00300000) {
                /* 11110010 0.11.... ....0101 ...0.... */
                /* ../git/target/arm/tcg/neon-dp.decode:121 */
                disas_neon_dp_extract_3same_64_rev(ctx, &u.f_3same, insn);
                if (trans_VRSHL_S64_3s(ctx, &u.f_3same)) return true;
            }
            /* ../git/target/arm/tcg/neon-dp.decode:122 */
            disas_neon_dp_extract_3same_rev(ctx, &u.f_3same, insn);
            if (trans_VRSHL_S_3s(ctx, &u.f_3same)) return true;
            break;
        case 0x00000600:
            /* 11110010 0....... ....0110 ...0.... */
            /* ../git/target/arm/tcg/neon-dp.decode:137 */
            disas_neon_dp_extract_3same(ctx, &u.f_3same, insn);
            if (trans_VMAX_S_3s(ctx, &u.f_3same)) return true;
            break;
        case 0x00000700:
            /* 11110010 0....... ....0111 ...0.... */
            /* ../git/target/arm/tcg/neon-dp.decode:142 */
            disas_neon_dp_extract_3same(ctx, &u.f_3same, insn);
            if (trans_VABD_S_3s(ctx, &u.f_3same)) return true;
            break;
        case 0x00000800:
            /* 11110010 0....... ....1000 ...0.... */
            /* ../git/target/arm/tcg/neon-dp.decode:148 */
            disas_neon_dp_extract_3same(ctx, &u.f_3same, insn);
            if (trans_VADD_3s(ctx, &u.f_3same)) return true;
            break;
        case 0x00000900:
            /* 11110010 0....... ....1001 ...0.... */
            /* ../git/target/arm/tcg/neon-dp.decode:154 */
            disas_neon_dp_extract_3same(ctx, &u.f_3same, insn);
            if (trans_VMLA_3s(ctx, &u.f_3same)) return true;
            break;
        case 0x00000a00:
            /* 11110010 0....... ....1010 ...0.... */
            disas_neon_dp_extract_3same_q0(ctx, &u.f_3same, insn);
            switch ((insn >> 6) & 0x1) {
            case 0x0:
                /* 11110010 0....... ....1010 .0.0.... */
                /* ../git/target/arm/tcg/neon-dp.decode:160 */
                if (trans_VPMAX_S_3s(ctx, &u.f_3same)) return true;
                break;
            }
            break;
        case 0x00000b00:
            /* 11110010 0....... ....1011 ...0.... */
            /* ../git/target/arm/tcg/neon-dp.decode:166 */
            disas_neon_dp_extract_3same(ctx, &u.f_3same, insn);
            if (trans_VQDMULH_3s(ctx, &u.f_3same)) return true;
            break;
        case 0x00000c00:
            /* 11110010 0....... ....1100 ...0.... */
            disas_neon_dp_extract_3same_crypto(ctx, &u.f_3same, insn);
            switch (insn & 0x00300040) {
            case 0x00000040:
                /* 11110010 0.00.... ....1100 .1.0.... */
                /* ../git/target/arm/tcg/neon-dp.decode:176 */
                if (trans_SHA1C_3s(ctx, &u.f_3same)) return true;
                break;
            case 0x00100040:
                /* 11110010 0.01.... ....1100 .1.0.... */
                /* ../git/target/arm/tcg/neon-dp.decode:177 */
                if (trans_SHA1P_3s(ctx, &u.f_3same)) return true;
                break;
            case 0x00200040:
                /* 11110010 0.10.... ....1100 .1.0.... */
                /* ../git/target/arm/tcg/neon-dp.decode:178 */
                if (trans_SHA1M_3s(ctx, &u.f_3same)) return true;
                break;
            case 0x00300040:
                /* 11110010 0.11.... ....1100 .1.0.... */
                /* ../git/target/arm/tcg/neon-dp.decode:179 */
                if (trans_SHA1SU0_3s(ctx, &u.f_3same)) return true;
                break;
            }
            break;
        case 0x00000d00:
            /* 11110010 0....... ....1101 ...0.... */
            disas_neon_dp_extract_3same_fp(ctx, &u.f_3same, insn);
            switch ((insn >> 21) & 0x1) {
            case 0x0:
                /* 11110010 0.0..... ....1101 ...0.... */
                /* ../git/target/arm/tcg/neon-dp.decode:189 */
                if (trans_VADD_fp_3s(ctx, &u.f_3same)) return true;
                break;
            case 0x1:
                /* 11110010 0.1..... ....1101 ...0.... */
                /* ../git/target/arm/tcg/neon-dp.decode:190 */
                if (trans_VSUB_fp_3s(ctx, &u.f_3same)) return true;
                break;
            }
            break;
        case 0x00000e00:
            /* 11110010 0....... ....1110 ...0.... */
            disas_neon_dp_extract_3same_fp(ctx, &u.f_3same, insn);
            switch ((insn >> 21) & 0x1) {
            case 0x0:
                /* 11110010 0.0..... ....1110 ...0.... */
                /* ../git/target/arm/tcg/neon-dp.decode:196 */
                if (trans_VCEQ_fp_3s(ctx, &u.f_3same)) return true;
                break;
            }
            break;
        case 0x00000f00:
            /* 11110010 0....... ....1111 ...0.... */
            disas_neon_dp_extract_3same_fp(ctx, &u.f_3same, insn);
            switch ((insn >> 21) & 0x1) {
            case 0x0:
                /* 11110010 0.0..... ....1111 ...0.... */
                /* ../git/target/arm/tcg/neon-dp.decode:201 */
                if (trans_VMAX_fp_3s(ctx, &u.f_3same)) return true;
                break;
            case 0x1:
                /* 11110010 0.1..... ....1111 ...0.... */
                /* ../git/target/arm/tcg/neon-dp.decode:202 */
                if (trans_VMIN_fp_3s(ctx, &u.f_3same)) return true;
                break;
            }
            break;
        case 0x01000000:
            /* 11110011 0....... ....0000 ...0.... */
            /* ../git/target/arm/tcg/neon-dp.decode:60 */
            disas_neon_dp_extract_3same(ctx, &u.f_3same, insn);
            if (trans_VHADD_U_3s(ctx, &u.f_3same)) return true;
            break;
        case 0x01000100:
            /* 11110011 0....... ....0001 ...0.... */
            /* ../git/target/arm/tcg/neon-dp.decode:65 */
            disas_neon_dp_extract_3same(ctx, &u.f_3same, insn);
            if (trans_VRHADD_U_3s(ctx, &u.f_3same)) return true;
            break;
        case 0x01000200:
            /* 11110011 0....... ....0010 ...0.... */
            /* ../git/target/arm/tcg/neon-dp.decode:80 */
            disas_neon_dp_extract_3same(ctx, &u.f_3same, insn);
            if (trans_VHSUB_U_3s(ctx, &u.f_3same)) return true;
            break;
        case 0x01000300:
            /* 11110011 0....... ....0011 ...0.... */
            /* ../git/target/arm/tcg/neon-dp.decode:86 */
            disas_neon_dp_extract_3same(ctx, &u.f_3same, insn);
            if (trans_VCGT_U_3s(ctx, &u.f_3same)) return true;
            break;
        case 0x01000400:
            /* 11110011 0....... ....0100 ...0.... */
            /* ../git/target/arm/tcg/neon-dp.decode:104 */
            disas_neon_dp_extract_3same_rev(ctx, &u.f_3same, insn);
            if (trans_VSHL_U_3s(ctx, &u.f_3same)) return true;
            break;
        case 0x01000500:
            /* 11110011 0....... ....0101 ...0.... */
            if ((insn & 0x00300000) == 0x00300000) {
                /* 11110011 0.11.... ....0101 ...0.... */
                /* ../git/target/arm/tcg/neon-dp.decode:125 */
                disas_neon_dp_extract_3same_64_rev(ctx, &u.f_3same, insn);
                if (trans_VRSHL_U64_3s(ctx, &u.f_3same)) return true;
            }
            /* ../git/target/arm/tcg/neon-dp.decode:126 */
            disas_neon_dp_extract_3same_rev(ctx, &u.f_3same, insn);
            if (trans_VRSHL_U_3s(ctx, &u.f_3same)) return true;
            break;
        case 0x01000600:
            /* 11110011 0....... ....0110 ...0.... */
            /* ../git/target/arm/tcg/neon-dp.decode:138 */
            disas_neon_dp_extract_3same(ctx, &u.f_3same, insn);
            if (trans_VMAX_U_3s(ctx, &u.f_3same)) return true;
            break;
        case 0x01000700:
            /* 11110011 0....... ....0111 ...0.... */
            /* ../git/target/arm/tcg/neon-dp.decode:143 */
            disas_neon_dp_extract_3same(ctx, &u.f_3same, insn);
            if (trans_VABD_U_3s(ctx, &u.f_3same)) return true;
            break;
        case 0x01000800:
            /* 11110011 0....... ....1000 ...0.... */
            /* ../git/target/arm/tcg/neon-dp.decode:149 */
            disas_neon_dp_extract_3same(ctx, &u.f_3same, insn);
            if (trans_VSUB_3s(ctx, &u.f_3same)) return true;
            break;
        case 0x01000900:
            /* 11110011 0....... ....1001 ...0.... */
            /* ../git/target/arm/tcg/neon-dp.decode:155 */
            disas_neon_dp_extract_3same(ctx, &u.f_3same, insn);
            if (trans_VMLS_3s(ctx, &u.f_3same)) return true;
            break;
        case 0x01000a00:
            /* 11110011 0....... ....1010 ...0.... */
            disas_neon_dp_extract_3same_q0(ctx, &u.f_3same, insn);
            switch ((insn >> 6) & 0x1) {
            case 0x0:
                /* 11110011 0....... ....1010 .0.0.... */
                /* ../git/target/arm/tcg/neon-dp.decode:161 */
                if (trans_VPMAX_U_3s(ctx, &u.f_3same)) return true;
                break;
            }
            break;
        case 0x01000b00:
            /* 11110011 0....... ....1011 ...0.... */
            /* ../git/target/arm/tcg/neon-dp.decode:167 */
            disas_neon_dp_extract_3same(ctx, &u.f_3same, insn);
            if (trans_VQRDMULH_3s(ctx, &u.f_3same)) return true;
            break;
        case 0x01000c00:
            /* 11110011 0....... ....1100 ...0.... */
            disas_neon_dp_extract_3same_crypto(ctx, &u.f_3same, insn);
            switch (insn & 0x00300040) {
            case 0x00000040:
                /* 11110011 0.00.... ....1100 .1.0.... */
                /* ../git/target/arm/tcg/neon-dp.decode:180 */
                if (trans_SHA256H_3s(ctx, &u.f_3same)) return true;
                break;
            case 0x00100040:
                /* 11110011 0.01.... ....1100 .1.0.... */
                /* ../git/target/arm/tcg/neon-dp.decode:181 */
                if (trans_SHA256H2_3s(ctx, &u.f_3same)) return true;
                break;
            case 0x00200040:
                /* 11110011 0.10.... ....1100 .1.0.... */
                /* ../git/target/arm/tcg/neon-dp.decode:182 */
                if (trans_SHA256SU1_3s(ctx, &u.f_3same)) return true;
                break;
            }
            break;
        case 0x01000d00:
            /* 11110011 0....... ....1101 ...0.... */
            switch ((insn >> 21) & 0x1) {
            case 0x0:
                /* 11110011 0.0..... ....1101 ...0.... */
                disas_neon_dp_extract_3same_fp_q0(ctx, &u.f_3same, insn);
                switch ((insn >> 6) & 0x1) {
                case 0x0:
                    /* 11110011 0.0..... ....1101 .0.0.... */
                    /* ../git/target/arm/tcg/neon-dp.decode:191 */
                    if (trans_VPADD_fp_3s(ctx, &u.f_3same)) return true;
                    break;
                }
                break;
            case 0x1:
                /* 11110011 0.1..... ....1101 ...0.... */
                /* ../git/target/arm/tcg/neon-dp.decode:192 */
                disas_neon_dp_extract_3same_fp(ctx, &u.f_3same, insn);
                if (trans_VABD_fp_3s(ctx, &u.f_3same)) return true;
                break;
            }
            break;
        case 0x01000e00:
            /* 11110011 0....... ....1110 ...0.... */
            disas_neon_dp_extract_3same_fp(ctx, &u.f_3same, insn);
            switch ((insn >> 21) & 0x1) {
            case 0x0:
                /* 11110011 0.0..... ....1110 ...0.... */
                /* ../git/target/arm/tcg/neon-dp.decode:197 */
                if (trans_VCGE_fp_3s(ctx, &u.f_3same)) return true;
                break;
            case 0x1:
                /* 11110011 0.1..... ....1110 ...0.... */
                /* ../git/target/arm/tcg/neon-dp.decode:199 */
                if (trans_VCGT_fp_3s(ctx, &u.f_3same)) return true;
                break;
            }
            break;
        case 0x01000f00:
            /* 11110011 0....... ....1111 ...0.... */
            disas_neon_dp_extract_3same_fp_q0(ctx, &u.f_3same, insn);
            switch (insn & 0x00200040) {
            case 0x00000000:
                /* 11110011 0.0..... ....1111 .0.0.... */
                /* ../git/target/arm/tcg/neon-dp.decode:203 */
                if (trans_VPMAX_fp_3s(ctx, &u.f_3same)) return true;
                break;
            case 0x00200000:
                /* 11110011 0.1..... ....1111 .0.0.... */
                /* ../git/target/arm/tcg/neon-dp.decode:204 */
                if (trans_VPMIN_fp_3s(ctx, &u.f_3same)) return true;
                break;
            }
            break;
        }
        break;
    case 0xf2000010u:
        /* 1111001. 0....... ........ ...1.... */
        switch (insn & 0x01000f00) {
        case 0x00000000:
            /* 11110010 0....... ....0000 ...1.... */
            /* ../git/target/arm/tcg/neon-dp.decode:61 */
            disas_neon_dp_extract_3same(ctx, &u.f_3same, insn);
            if (trans_VQADD_S_3s(ctx, &u.f_3same)) return true;
            break;
        case 0x00000100:
            /* 11110010 0....... ....0001 ...1.... */
            disas_neon_dp_extract_3same_logic(ctx, &u.f_3same, insn);
            switch ((insn >> 20) & 0x3) {
            case 0x0:
                /* 11110010 0.00.... ....0001 ...1.... */
                /* ../git/target/arm/tcg/neon-dp.decode:70 */
                if (trans_VAND_3s(ctx, &u.f_3same)) return true;
                break;
            case 0x1:
                /* 11110010 0.01.... ....0001 ...1.... */
                /* ../git/target/arm/tcg/neon-dp.decode:71 */
                if (trans_VBIC_3s(ctx, &u.f_3same)) return true;
                break;
            case 0x2:
                /* 11110010 0.10.... ....0001 ...1.... */
                /* ../git/target/arm/tcg/neon-dp.decode:72 */
                if (trans_VORR_3s(ctx, &u.f_3same)) return true;
                break;
            case 0x3:
                /* 11110010 0.11.... ....0001 ...1.... */
                /* ../git/target/arm/tcg/neon-dp.decode:73 */
                if (trans_VORN_3s(ctx, &u.f_3same)) return true;
                break;
            }
            break;
        case 0x00000200:
            /* 11110010 0....... ....0010 ...1.... */
            /* ../git/target/arm/tcg/neon-dp.decode:82 */
            disas_neon_dp_extract_3same(ctx, &u.f_3same, insn);
            if (trans_VQSUB_S_3s(ctx, &u.f_3same)) return true;
            break;
        case 0x00000300:
            /* 11110010 0....... ....0011 ...1.... */
            /* ../git/target/arm/tcg/neon-dp.decode:87 */
            disas_neon_dp_extract_3same(ctx, &u.f_3same, insn);
            if (trans_VCGE_S_3s(ctx, &u.f_3same)) return true;
            break;
        case 0x00000400:
            /* 11110010 0....... ....0100 ...1.... */
            if ((insn & 0x00300000) == 0x00300000) {
                /* 11110010 0.11.... ....0100 ...1.... */
                /* ../git/target/arm/tcg/neon-dp.decode:113 */
                disas_neon_dp_extract_3same_64_rev(ctx, &u.f_3same, insn);
                if (trans_VQSHL_S64_3s(ctx, &u.f_3same)) return true;
            }
            /* ../git/target/arm/tcg/neon-dp.decode:114 */
            disas_neon_dp_extract_3same_rev(ctx, &u.f_3same, insn);
            if (trans_VQSHL_S_3s(ctx, &u.f_3same)) return true;
            break;
        case 0x00000500:
            /* 11110010 0....... ....0101 ...1.... */
            if ((insn & 0x00300000) == 0x00300000) {
                /* 11110010 0.11.... ....0101 ...1.... */
                /* ../git/target/arm/tcg/neon-dp.decode:129 */
                disas_neon_dp_extract_3same_64_rev(ctx, &u.f_3same, insn);
                if (trans_VQRSHL_S64_3s(ctx, &u.f_3same)) return true;
            }
            /* ../git/target/arm/tcg/neon-dp.decode:130 */
            disas_neon_dp_extract_3same_rev(ctx, &u.f_3same, insn);
            if (trans_VQRSHL_S_3s(ctx, &u.f_3same)) return true;
            break;
        case 0x00000600:
            /* 11110010 0....... ....0110 ...1.... */
            /* ../git/target/arm/tcg/neon-dp.decode:139 */
            disas_neon_dp_extract_3same(ctx, &u.f_3same, insn);
            if (trans_VMIN_S_3s(ctx, &u.f_3same)) return true;
            break;
        case 0x00000700:
            /* 11110010 0....... ....0111 ...1.... */
            /* ../git/target/arm/tcg/neon-dp.decode:145 */
            disas_neon_dp_extract_3same(ctx, &u.f_3same, insn);
            if (trans_VABA_S_3s(ctx, &u.f_3same)) return true;
            break;
        case 0x00000800:
            /* 11110010 0....... ....1000 ...1.... */
            /* ../git/target/arm/tcg/neon-dp.decode:151 */
            disas_neon_dp_extract_3same(ctx, &u.f_3same, insn);
            if (trans_VTST_3s(ctx, &u.f_3same)) return true;
            break;
        case 0x00000900:
            /* 11110010 0....... ....1001 ...1.... */
            /* ../git/target/arm/tcg/neon-dp.decode:157 */
            disas_neon_dp_extract_3same(ctx, &u.f_3same, insn);
            if (trans_VMUL_3s(ctx, &u.f_3same)) return true;
            break;
        case 0x00000a00:
            /* 11110010 0....... ....1010 ...1.... */
            disas_neon_dp_extract_3same_q0(ctx, &u.f_3same, insn);
            switch ((insn >> 6) & 0x1) {
            case 0x0:
                /* 11110010 0....... ....1010 .0.1.... */
                /* ../git/target/arm/tcg/neon-dp.decode:163 */
                if (trans_VPMIN_S_3s(ctx, &u.f_3same)) return true;
                break;
            }
            break;
        case 0x00000b00:
            /* 11110010 0....... ....1011 ...1.... */
            disas_neon_dp_extract_3same_q0(ctx, &u.f_3same, insn);
            switch ((insn >> 6) & 0x1) {
            case 0x0:
                /* 11110010 0....... ....1011 .0.1.... */
                /* ../git/target/arm/tcg/neon-dp.decode:169 */
                if (trans_VPADD_3s(ctx, &u.f_3same)) return true;
                break;
            }
            break;
        case 0x00000c00:
            /* 11110010 0....... ....1100 ...1.... */
            disas_neon_dp_extract_3same_fp(ctx, &u.f_3same, insn);
            switch ((insn >> 21) & 0x1) {
            case 0x0:
                /* 11110010 0.0..... ....1100 ...1.... */
                /* ../git/target/arm/tcg/neon-dp.decode:184 */
                if (trans_VFMA_fp_3s(ctx, &u.f_3same)) return true;
                break;
            case 0x1:
                /* 11110010 0.1..... ....1100 ...1.... */
                /* ../git/target/arm/tcg/neon-dp.decode:185 */
                if (trans_VFMS_fp_3s(ctx, &u.f_3same)) return true;
                break;
            }
            break;
        case 0x00000d00:
            /* 11110010 0....... ....1101 ...1.... */
            disas_neon_dp_extract_3same_fp(ctx, &u.f_3same, insn);
            switch ((insn >> 21) & 0x1) {
            case 0x0:
                /* 11110010 0.0..... ....1101 ...1.... */
                /* ../git/target/arm/tcg/neon-dp.decode:193 */
                if (trans_VMLA_fp_3s(ctx, &u.f_3same)) return true;
                break;
            case 0x1:
                /* 11110010 0.1..... ....1101 ...1.... */
                /* ../git/target/arm/tcg/neon-dp.decode:194 */
                if (trans_VMLS_fp_3s(ctx, &u.f_3same)) return true;
                break;
            }
            break;
        case 0x00000f00:
            /* 11110010 0....... ....1111 ...1.... */
            disas_neon_dp_extract_3same_fp(ctx, &u.f_3same, insn);
            switch ((insn >> 21) & 0x1) {
            case 0x0:
                /* 11110010 0.0..... ....1111 ...1.... */
                /* ../git/target/arm/tcg/neon-dp.decode:205 */
                if (trans_VRECPS_fp_3s(ctx, &u.f_3same)) return true;
                break;
            case 0x1:
                /* 11110010 0.1..... ....1111 ...1.... */
                /* ../git/target/arm/tcg/neon-dp.decode:206 */
                if (trans_VRSQRTS_fp_3s(ctx, &u.f_3same)) return true;
                break;
            }
            break;
        case 0x01000000:
            /* 11110011 0....... ....0000 ...1.... */
            /* ../git/target/arm/tcg/neon-dp.decode:62 */
            disas_neon_dp_extract_3same(ctx, &u.f_3same, insn);
            if (trans_VQADD_U_3s(ctx, &u.f_3same)) return true;
            break;
        case 0x01000100:
            /* 11110011 0....... ....0001 ...1.... */
            disas_neon_dp_extract_3same_logic(ctx, &u.f_3same, insn);
            switch ((insn >> 20) & 0x3) {
            case 0x0:
                /* 11110011 0.00.... ....0001 ...1.... */
                /* ../git/target/arm/tcg/neon-dp.decode:74 */
                if (trans_VEOR_3s(ctx, &u.f_3same)) return true;
                break;
            case 0x1:
                /* 11110011 0.01.... ....0001 ...1.... */
                /* ../git/target/arm/tcg/neon-dp.decode:75 */
                if (trans_VBSL_3s(ctx, &u.f_3same)) return true;
                break;
            case 0x2:
                /* 11110011 0.10.... ....0001 ...1.... */
                /* ../git/target/arm/tcg/neon-dp.decode:76 */
                if (trans_VBIT_3s(ctx, &u.f_3same)) return true;
                break;
            case 0x3:
                /* 11110011 0.11.... ....0001 ...1.... */
                /* ../git/target/arm/tcg/neon-dp.decode:77 */
                if (trans_VBIF_3s(ctx, &u.f_3same)) return true;
                break;
            }
            break;
        case 0x01000200:
            /* 11110011 0....... ....0010 ...1.... */
            /* ../git/target/arm/tcg/neon-dp.decode:83 */
            disas_neon_dp_extract_3same(ctx, &u.f_3same, insn);
            if (trans_VQSUB_U_3s(ctx, &u.f_3same)) return true;
            break;
        case 0x01000300:
            /* 11110011 0....... ....0011 ...1.... */
            /* ../git/target/arm/tcg/neon-dp.decode:88 */
            disas_neon_dp_extract_3same(ctx, &u.f_3same, insn);
            if (trans_VCGE_U_3s(ctx, &u.f_3same)) return true;
            break;
        case 0x01000400:
            /* 11110011 0....... ....0100 ...1.... */
            if ((insn & 0x00300000) == 0x00300000) {
                /* 11110011 0.11.... ....0100 ...1.... */
                /* ../git/target/arm/tcg/neon-dp.decode:117 */
                disas_neon_dp_extract_3same_64_rev(ctx, &u.f_3same, insn);
                if (trans_VQSHL_U64_3s(ctx, &u.f_3same)) return true;
            }
            /* ../git/target/arm/tcg/neon-dp.decode:118 */
            disas_neon_dp_extract_3same_rev(ctx, &u.f_3same, insn);
            if (trans_VQSHL_U_3s(ctx, &u.f_3same)) return true;
            break;
        case 0x01000500:
            /* 11110011 0....... ....0101 ...1.... */
            if ((insn & 0x00300000) == 0x00300000) {
                /* 11110011 0.11.... ....0101 ...1.... */
                /* ../git/target/arm/tcg/neon-dp.decode:133 */
                disas_neon_dp_extract_3same_64_rev(ctx, &u.f_3same, insn);
                if (trans_VQRSHL_U64_3s(ctx, &u.f_3same)) return true;
            }
            /* ../git/target/arm/tcg/neon-dp.decode:134 */
            disas_neon_dp_extract_3same_rev(ctx, &u.f_3same, insn);
            if (trans_VQRSHL_U_3s(ctx, &u.f_3same)) return true;
            break;
        case 0x01000600:
            /* 11110011 0....... ....0110 ...1.... */
            /* ../git/target/arm/tcg/neon-dp.decode:140 */
            disas_neon_dp_extract_3same(ctx, &u.f_3same, insn);
            if (trans_VMIN_U_3s(ctx, &u.f_3same)) return true;
            break;
        case 0x01000700:
            /* 11110011 0....... ....0111 ...1.... */
            /* ../git/target/arm/tcg/neon-dp.decode:146 */
            disas_neon_dp_extract_3same(ctx, &u.f_3same, insn);
            if (trans_VABA_U_3s(ctx, &u.f_3same)) return true;
            break;
        case 0x01000800:
            /* 11110011 0....... ....1000 ...1.... */
            /* ../git/target/arm/tcg/neon-dp.decode:152 */
            disas_neon_dp_extract_3same(ctx, &u.f_3same, insn);
            if (trans_VCEQ_3s(ctx, &u.f_3same)) return true;
            break;
        case 0x01000900:
            /* 11110011 0....... ....1001 ...1.... */
            /* ../git/target/arm/tcg/neon-dp.decode:158 */
            disas_neon_dp_extract_3same(ctx, &u.f_3same, insn);
            if (trans_VMUL_p_3s(ctx, &u.f_3same)) return true;
            break;
        case 0x01000a00:
            /* 11110011 0....... ....1010 ...1.... */
            disas_neon_dp_extract_3same_q0(ctx, &u.f_3same, insn);
            switch ((insn >> 6) & 0x1) {
            case 0x0:
                /* 11110011 0....... ....1010 .0.1.... */
                /* ../git/target/arm/tcg/neon-dp.decode:164 */
                if (trans_VPMIN_U_3s(ctx, &u.f_3same)) return true;
                break;
            }
            break;
        case 0x01000b00:
            /* 11110011 0....... ....1011 ...1.... */
            /* ../git/target/arm/tcg/neon-dp.decode:171 */
            disas_neon_dp_extract_3same(ctx, &u.f_3same, insn);
            if (trans_VQRDMLAH_3s(ctx, &u.f_3same)) return true;
            break;
        case 0x01000c00:
            /* 11110011 0....... ....1100 ...1.... */
            /* ../git/target/arm/tcg/neon-dp.decode:187 */
            disas_neon_dp_extract_3same(ctx, &u.f_3same, insn);
            if (trans_VQRDMLSH_3s(ctx, &u.f_3same)) return true;
            break;
        case 0x01000d00:
            /* 11110011 0....... ....1101 ...1.... */
            disas_neon_dp_extract_3same_fp(ctx, &u.f_3same, insn);
            switch ((insn >> 21) & 0x1) {
            case 0x0:
                /* 11110011 0.0..... ....1101 ...1.... */
                /* ../git/target/arm/tcg/neon-dp.decode:195 */
                if (trans_VMUL_fp_3s(ctx, &u.f_3same)) return true;
                break;
            }
            break;
        case 0x01000e00:
            /* 11110011 0....... ....1110 ...1.... */
            disas_neon_dp_extract_3same_fp(ctx, &u.f_3same, insn);
            switch ((insn >> 21) & 0x1) {
            case 0x0:
                /* 11110011 0.0..... ....1110 ...1.... */
                /* ../git/target/arm/tcg/neon-dp.decode:198 */
                if (trans_VACGE_fp_3s(ctx, &u.f_3same)) return true;
                break;
            case 0x1:
                /* 11110011 0.1..... ....1110 ...1.... */
                /* ../git/target/arm/tcg/neon-dp.decode:200 */
                if (trans_VACGT_fp_3s(ctx, &u.f_3same)) return true;
                break;
            }
            break;
        case 0x01000f00:
            /* 11110011 0....... ....1111 ...1.... */
            disas_neon_dp_extract_3same_fp(ctx, &u.f_3same, insn);
            switch ((insn >> 21) & 0x1) {
            case 0x0:
                /* 11110011 0.0..... ....1111 ...1.... */
                /* ../git/target/arm/tcg/neon-dp.decode:207 */
                if (trans_VMAXNM_fp_3s(ctx, &u.f_3same)) return true;
                break;
            case 0x1:
                /* 11110011 0.1..... ....1111 ...1.... */
                /* ../git/target/arm/tcg/neon-dp.decode:208 */
                if (trans_VMINNM_fp_3s(ctx, &u.f_3same)) return true;
                break;
            }
            break;
        }
        break;
    case 0xf2800000u:
        /* 1111001. 1....... ........ ...0.... */
        if ((insn & 0x00300000) == 0x00300000) {
            /* 1111001. 1.11.... ........ ...0.... */
            switch ((insn >> 24) & 0x1) {
            case 0x0:
                /* 11110010 1.11.... ........ ...0.... */
                /* ../git/target/arm/tcg/neon-dp.decode:430 */
                disas_neon_dp_extract_disas_neon_dp_Fmt_25(ctx, &u.f_disas_neon_dp3, insn);
                if (trans_VEXT(ctx, &u.f_disas_neon_dp3)) return true;
                break;
            case 0x1:
                /* 11110011 1.11.... ........ ...0.... */
                switch ((insn >> 10) & 0x3) {
                case 0x0:
                    /* 11110011 1.11.... ....00.. ...0.... */
                    switch (insn & 0x00030380) {
                    case 0x00000000:
                        /* 11110011 1.11..00 ....0000 0..0.... */
                        /* ../git/target/arm/tcg/neon-dp.decode:457 */
                        disas_neon_dp_extract_2misc(ctx, &u.f_2misc, insn);
                        if (trans_VREV64(ctx, &u.f_2misc)) return true;
                        break;
                    case 0x00000080:
                        /* 11110011 1.11..00 ....0000 1..0.... */
                        /* ../git/target/arm/tcg/neon-dp.decode:458 */
                        disas_neon_dp_extract_2misc(ctx, &u.f_2misc, insn);
                        if (trans_VREV32(ctx, &u.f_2misc)) return true;
                        break;
                    case 0x00000100:
                        /* 11110011 1.11..00 ....0001 0..0.... */
                        /* ../git/target/arm/tcg/neon-dp.decode:459 */
                        disas_neon_dp_extract_2misc(ctx, &u.f_2misc, insn);
                        if (trans_VREV16(ctx, &u.f_2misc)) return true;
                        break;
                    case 0x00000200:
                        /* 11110011 1.11..00 ....0010 0..0.... */
                        /* ../git/target/arm/tcg/neon-dp.decode:461 */
                        disas_neon_dp_extract_2misc(ctx, &u.f_2misc, insn);
                        if (trans_VPADDL_S(ctx, &u.f_2misc)) return true;
                        break;
                    case 0x00000280:
                        /* 11110011 1.11..00 ....0010 1..0.... */
                        /* ../git/target/arm/tcg/neon-dp.decode:462 */
                        disas_neon_dp_extract_2misc(ctx, &u.f_2misc, insn);
                        if (trans_VPADDL_U(ctx, &u.f_2misc)) return true;
                        break;
                    case 0x00000300:
                        /* 11110011 1.11..00 ....0011 0..0.... */
                        disas_neon_dp_extract_2misc_q1(ctx, &u.f_2misc, insn);
                        switch ((insn >> 6) & 0x1) {
                        case 0x0:
                            /* 11110011 1.11..00 ....0011 00.0.... */
                            /* ../git/target/arm/tcg/neon-dp.decode:464 */
                            if (trans_AESE(ctx, &u.f_2misc)) return true;
                            break;
                        case 0x1:
                            /* 11110011 1.11..00 ....0011 01.0.... */
                            /* ../git/target/arm/tcg/neon-dp.decode:465 */
                            if (trans_AESD(ctx, &u.f_2misc)) return true;
                            break;
                        }
                        break;
                    case 0x00000380:
                        /* 11110011 1.11..00 ....0011 1..0.... */
                        disas_neon_dp_extract_2misc_q1(ctx, &u.f_2misc, insn);
                        switch ((insn >> 6) & 0x1) {
                        case 0x0:
                            /* 11110011 1.11..00 ....0011 10.0.... */
                            /* ../git/target/arm/tcg/neon-dp.decode:466 */
                            if (trans_AESMC(ctx, &u.f_2misc)) return true;
                            break;
                        case 0x1:
                            /* 11110011 1.11..00 ....0011 11.0.... */
                            /* ../git/target/arm/tcg/neon-dp.decode:467 */
                            if (trans_AESIMC(ctx, &u.f_2misc)) return true;
                            break;
                        }
                        break;
                    case 0x00010000:
                        /* 11110011 1.11..01 ....0000 0..0.... */
                        /* ../git/target/arm/tcg/neon-dp.decode:481 */
                        disas_neon_dp_extract_2misc(ctx, &u.f_2misc, insn);
                        if (trans_VCGT0(ctx, &u.f_2misc)) return true;
                        break;
                    case 0x00010080:
                        /* 11110011 1.11..01 ....0000 1..0.... */
                        /* ../git/target/arm/tcg/neon-dp.decode:482 */
                        disas_neon_dp_extract_2misc(ctx, &u.f_2misc, insn);
                        if (trans_VCGE0(ctx, &u.f_2misc)) return true;
                        break;
                    case 0x00010100:
                        /* 11110011 1.11..01 ....0001 0..0.... */
                        /* ../git/target/arm/tcg/neon-dp.decode:483 */
                        disas_neon_dp_extract_2misc(ctx, &u.f_2misc, insn);
                        if (trans_VCEQ0(ctx, &u.f_2misc)) return true;
                        break;
                    case 0x00010180:
                        /* 11110011 1.11..01 ....0001 1..0.... */
                        /* ../git/target/arm/tcg/neon-dp.decode:484 */
                        disas_neon_dp_extract_2misc(ctx, &u.f_2misc, insn);
                        if (trans_VCLE0(ctx, &u.f_2misc)) return true;
                        break;
                    case 0x00010200:
                        /* 11110011 1.11..01 ....0010 0..0.... */
                        /* ../git/target/arm/tcg/neon-dp.decode:485 */
                        disas_neon_dp_extract_2misc(ctx, &u.f_2misc, insn);
                        if (trans_VCLT0(ctx, &u.f_2misc)) return true;
                        break;
                    case 0x00010280:
                        /* 11110011 1.11..01 ....0010 1..0.... */
                        disas_neon_dp_extract_2misc_q1(ctx, &u.f_2misc, insn);
                        switch ((insn >> 6) & 0x1) {
                        case 0x1:
                            /* 11110011 1.11..01 ....0010 11.0.... */
                            /* ../git/target/arm/tcg/neon-dp.decode:487 */
                            if (trans_SHA1H(ctx, &u.f_2misc)) return true;
                            break;
                        }
                        break;
                    case 0x00010300:
                        /* 11110011 1.11..01 ....0011 0..0.... */
                        /* ../git/target/arm/tcg/neon-dp.decode:489 */
                        disas_neon_dp_extract_2misc(ctx, &u.f_2misc, insn);
                        if (trans_VABS(ctx, &u.f_2misc)) return true;
                        break;
                    case 0x00010380:
                        /* 11110011 1.11..01 ....0011 1..0.... */
                        /* ../git/target/arm/tcg/neon-dp.decode:490 */
                        disas_neon_dp_extract_2misc(ctx, &u.f_2misc, insn);
                        if (trans_VNEG(ctx, &u.f_2misc)) return true;
                        break;
                    case 0x00020000:
                        /* 11110011 1.11..10 ....0000 0..0.... */
                        /* ../git/target/arm/tcg/neon-dp.decode:501 */
                        disas_neon_dp_extract_2misc(ctx, &u.f_2misc, insn);
                        if (trans_VSWP(ctx, &u.f_2misc)) return true;
                        break;
                    case 0x00020080:
                        /* 11110011 1.11..10 ....0000 1..0.... */
                        /* ../git/target/arm/tcg/neon-dp.decode:502 */
                        disas_neon_dp_extract_2misc(ctx, &u.f_2misc, insn);
                        if (trans_VTRN(ctx, &u.f_2misc)) return true;
                        break;
                    case 0x00020100:
                        /* 11110011 1.11..10 ....0001 0..0.... */
                        /* ../git/target/arm/tcg/neon-dp.decode:503 */
                        disas_neon_dp_extract_2misc(ctx, &u.f_2misc, insn);
                        if (trans_VUZP(ctx, &u.f_2misc)) return true;
                        break;
                    case 0x00020180:
                        /* 11110011 1.11..10 ....0001 1..0.... */
                        /* ../git/target/arm/tcg/neon-dp.decode:504 */
                        disas_neon_dp_extract_2misc(ctx, &u.f_2misc, insn);
                        if (trans_VZIP(ctx, &u.f_2misc)) return true;
                        break;
                    case 0x00020200:
                        /* 11110011 1.11..10 ....0010 0..0.... */
                        disas_neon_dp_extract_2misc_q0(ctx, &u.f_2misc, insn);
                        switch ((insn >> 6) & 0x1) {
                        case 0x0:
                            /* 11110011 1.11..10 ....0010 00.0.... */
                            /* ../git/target/arm/tcg/neon-dp.decode:506 */
                            if (trans_VMOVN(ctx, &u.f_2misc)) return true;
                            break;
                        case 0x1:
                            /* 11110011 1.11..10 ....0010 01.0.... */
                            /* ../git/target/arm/tcg/neon-dp.decode:508 */
                            if (trans_VQMOVUN(ctx, &u.f_2misc)) return true;
                            break;
                        }
                        break;
                    case 0x00020280:
                        /* 11110011 1.11..10 ....0010 1..0.... */
                        disas_neon_dp_extract_2misc_q0(ctx, &u.f_2misc, insn);
                        switch ((insn >> 6) & 0x1) {
                        case 0x0:
                            /* 11110011 1.11..10 ....0010 10.0.... */
                            /* ../git/target/arm/tcg/neon-dp.decode:510 */
                            if (trans_VQMOVN_S(ctx, &u.f_2misc)) return true;
                            break;
                        case 0x1:
                            /* 11110011 1.11..10 ....0010 11.0.... */
                            /* ../git/target/arm/tcg/neon-dp.decode:511 */
                            if (trans_VQMOVN_U(ctx, &u.f_2misc)) return true;
                            break;
                        }
                        break;
                    case 0x00020300:
                        /* 11110011 1.11..10 ....0011 0..0.... */
                        disas_neon_dp_extract_2misc_q0(ctx, &u.f_2misc, insn);
                        switch ((insn >> 6) & 0x1) {
                        case 0x0:
                            /* 11110011 1.11..10 ....0011 00.0.... */
                            /* ../git/target/arm/tcg/neon-dp.decode:513 */
                            if (trans_VSHLL(ctx, &u.f_2misc)) return true;
                            break;
                        }
                        break;
                    case 0x00020380:
                        /* 11110011 1.11..10 ....0011 1..0.... */
                        disas_neon_dp_extract_2misc_q1(ctx, &u.f_2misc, insn);
                        switch ((insn >> 6) & 0x1) {
                        case 0x0:
                            /* 11110011 1.11..10 ....0011 10.0.... */
                            /* ../git/target/arm/tcg/neon-dp.decode:515 */
                            if (trans_SHA1SU1(ctx, &u.f_2misc)) return true;
                            break;
                        case 0x1:
                            /* 11110011 1.11..10 ....0011 11.0.... */
                            /* ../git/target/arm/tcg/neon-dp.decode:516 */
                            if (trans_SHA256SU0(ctx, &u.f_2misc)) return true;
                            break;
                        }
                        break;
                    case 0x00030000:
                        /* 11110011 1.11..11 ....0000 0..0.... */
                        /* ../git/target/arm/tcg/neon-dp.decode:532 */
                        disas_neon_dp_extract_2misc(ctx, &u.f_2misc, insn);
                        if (trans_VCVTAS(ctx, &u.f_2misc)) return true;
                        break;
                    case 0x00030080:
                        /* 11110011 1.11..11 ....0000 1..0.... */
                        /* ../git/target/arm/tcg/neon-dp.decode:533 */
                        disas_neon_dp_extract_2misc(ctx, &u.f_2misc, insn);
                        if (trans_VCVTAU(ctx, &u.f_2misc)) return true;
                        break;
                    case 0x00030100:
                        /* 11110011 1.11..11 ....0001 0..0.... */
                        /* ../git/target/arm/tcg/neon-dp.decode:534 */
                        disas_neon_dp_extract_2misc(ctx, &u.f_2misc, insn);
                        if (trans_VCVTNS(ctx, &u.f_2misc)) return true;
                        break;
                    case 0x00030180:
                        /* 11110011 1.11..11 ....0001 1..0.... */
                        /* ../git/target/arm/tcg/neon-dp.decode:535 */
                        disas_neon_dp_extract_2misc(ctx, &u.f_2misc, insn);
                        if (trans_VCVTNU(ctx, &u.f_2misc)) return true;
                        break;
                    case 0x00030200:
                        /* 11110011 1.11..11 ....0010 0..0.... */
                        /* ../git/target/arm/tcg/neon-dp.decode:536 */
                        disas_neon_dp_extract_2misc(ctx, &u.f_2misc, insn);
                        if (trans_VCVTPS(ctx, &u.f_2misc)) return true;
                        break;
                    case 0x00030280:
                        /* 11110011 1.11..11 ....0010 1..0.... */
                        /* ../git/target/arm/tcg/neon-dp.decode:537 */
                        disas_neon_dp_extract_2misc(ctx, &u.f_2misc, insn);
                        if (trans_VCVTPU(ctx, &u.f_2misc)) return true;
                        break;
                    case 0x00030300:
                        /* 11110011 1.11..11 ....0011 0..0.... */
                        /* ../git/target/arm/tcg/neon-dp.decode:538 */
                        disas_neon_dp_extract_2misc(ctx, &u.f_2misc, insn);
                        if (trans_VCVTMS(ctx, &u.f_2misc)) return true;
                        break;
                    case 0x00030380:
                        /* 11110011 1.11..11 ....0011 1..0.... */
                        /* ../git/target/arm/tcg/neon-dp.decode:539 */
                        disas_neon_dp_extract_2misc(ctx, &u.f_2misc, insn);
                        if (trans_VCVTMU(ctx, &u.f_2misc)) return true;
                        break;
                    }
                    break;
                case 0x1:
                    /* 11110011 1.11.... ....01.. ...0.... */
                    switch (insn & 0x00030380) {
                    case 0x00000000:
                        /* 11110011 1.11..00 ....0100 0..0.... */
                        /* ../git/target/arm/tcg/neon-dp.decode:469 */
                        disas_neon_dp_extract_2misc(ctx, &u.f_2misc, insn);
                        if (trans_VCLS(ctx, &u.f_2misc)) return true;
                        break;
                    case 0x00000080:
                        /* 11110011 1.11..00 ....0100 1..0.... */
                        /* ../git/target/arm/tcg/neon-dp.decode:470 */
                        disas_neon_dp_extract_2misc(ctx, &u.f_2misc, insn);
                        if (trans_VCLZ(ctx, &u.f_2misc)) return true;
                        break;
                    case 0x00000100:
                        /* 11110011 1.11..00 ....0101 0..0.... */
                        /* ../git/target/arm/tcg/neon-dp.decode:471 */
                        disas_neon_dp_extract_2misc(ctx, &u.f_2misc, insn);
                        if (trans_VCNT(ctx, &u.f_2misc)) return true;
                        break;
                    case 0x00000180:
                        /* 11110011 1.11..00 ....0101 1..0.... */
                        /* ../git/target/arm/tcg/neon-dp.decode:473 */
                        disas_neon_dp_extract_2misc(ctx, &u.f_2misc, insn);
                        if (trans_VMVN(ctx, &u.f_2misc)) return true;
                        break;
                    case 0x00000200:
                        /* 11110011 1.11..00 ....0110 0..0.... */
                        /* ../git/target/arm/tcg/neon-dp.decode:475 */
                        disas_neon_dp_extract_2misc(ctx, &u.f_2misc, insn);
                        if (trans_VPADAL_S(ctx, &u.f_2misc)) return true;
                        break;
                    case 0x00000280:
                        /* 11110011 1.11..00 ....0110 1..0.... */
                        /* ../git/target/arm/tcg/neon-dp.decode:476 */
                        disas_neon_dp_extract_2misc(ctx, &u.f_2misc, insn);
                        if (trans_VPADAL_U(ctx, &u.f_2misc)) return true;
                        break;
                    case 0x00000300:
                        /* 11110011 1.11..00 ....0111 0..0.... */
                        /* ../git/target/arm/tcg/neon-dp.decode:478 */
                        disas_neon_dp_extract_2misc(ctx, &u.f_2misc, insn);
                        if (trans_VQABS(ctx, &u.f_2misc)) return true;
                        break;
                    case 0x00000380:
                        /* 11110011 1.11..00 ....0111 1..0.... */
                        /* ../git/target/arm/tcg/neon-dp.decode:479 */
                        disas_neon_dp_extract_2misc(ctx, &u.f_2misc, insn);
                        if (trans_VQNEG(ctx, &u.f_2misc)) return true;
                        break;
                    case 0x00010000:
                        /* 11110011 1.11..01 ....0100 0..0.... */
                        /* ../git/target/arm/tcg/neon-dp.decode:492 */
                        disas_neon_dp_extract_2misc(ctx, &u.f_2misc, insn);
                        if (trans_VCGT0_F(ctx, &u.f_2misc)) return true;
                        break;
                    case 0x00010080:
                        /* 11110011 1.11..01 ....0100 1..0.... */
                        /* ../git/target/arm/tcg/neon-dp.decode:493 */
                        disas_neon_dp_extract_2misc(ctx, &u.f_2misc, insn);
                        if (trans_VCGE0_F(ctx, &u.f_2misc)) return true;
                        break;
                    case 0x00010100:
                        /* 11110011 1.11..01 ....0101 0..0.... */
                        /* ../git/target/arm/tcg/neon-dp.decode:494 */
                        disas_neon_dp_extract_2misc(ctx, &u.f_2misc, insn);
                        if (trans_VCEQ0_F(ctx, &u.f_2misc)) return true;
                        break;
                    case 0x00010180:
                        /* 11110011 1.11..01 ....0101 1..0.... */
                        /* ../git/target/arm/tcg/neon-dp.decode:495 */
                        disas_neon_dp_extract_2misc(ctx, &u.f_2misc, insn);
                        if (trans_VCLE0_F(ctx, &u.f_2misc)) return true;
                        break;
                    case 0x00010200:
                        /* 11110011 1.11..01 ....0110 0..0.... */
                        /* ../git/target/arm/tcg/neon-dp.decode:496 */
                        disas_neon_dp_extract_2misc(ctx, &u.f_2misc, insn);
                        if (trans_VCLT0_F(ctx, &u.f_2misc)) return true;
                        break;
                    case 0x00010300:
                        /* 11110011 1.11..01 ....0111 0..0.... */
                        /* ../git/target/arm/tcg/neon-dp.decode:498 */
                        disas_neon_dp_extract_2misc(ctx, &u.f_2misc, insn);
                        if (trans_VABS_F(ctx, &u.f_2misc)) return true;
                        break;
                    case 0x00010380:
                        /* 11110011 1.11..01 ....0111 1..0.... */
                        /* ../git/target/arm/tcg/neon-dp.decode:499 */
                        disas_neon_dp_extract_2misc(ctx, &u.f_2misc, insn);
                        if (trans_VNEG_F(ctx, &u.f_2misc)) return true;
                        break;
                    case 0x00020000:
                        /* 11110011 1.11..10 ....0100 0..0.... */
                        /* ../git/target/arm/tcg/neon-dp.decode:518 */
                        disas_neon_dp_extract_2misc(ctx, &u.f_2misc, insn);
                        if (trans_VRINTN(ctx, &u.f_2misc)) return true;
                        break;
                    case 0x00020080:
                        /* 11110011 1.11..10 ....0100 1..0.... */
                        /* ../git/target/arm/tcg/neon-dp.decode:519 */
                        disas_neon_dp_extract_2misc(ctx, &u.f_2misc, insn);
                        if (trans_VRINTX(ctx, &u.f_2misc)) return true;
                        break;
                    case 0x00020100:
                        /* 11110011 1.11..10 ....0101 0..0.... */
                        /* ../git/target/arm/tcg/neon-dp.decode:520 */
                        disas_neon_dp_extract_2misc(ctx, &u.f_2misc, insn);
                        if (trans_VRINTA(ctx, &u.f_2misc)) return true;
                        break;
                    case 0x00020180:
                        /* 11110011 1.11..10 ....0101 1..0.... */
                        /* ../git/target/arm/tcg/neon-dp.decode:521 */
                        disas_neon_dp_extract_2misc(ctx, &u.f_2misc, insn);
                        if (trans_VRINTZ(ctx, &u.f_2misc)) return true;
                        break;
                    case 0x00020200:
                        /* 11110011 1.11..10 ....0110 0..0.... */
                        disas_neon_dp_extract_2misc_q0(ctx, &u.f_2misc, insn);
                        switch ((insn >> 6) & 0x1) {
                        case 0x0:
                            /* 11110011 1.11..10 ....0110 00.0.... */
                            /* ../git/target/arm/tcg/neon-dp.decode:523 */
                            if (trans_VCVT_F16_F32(ctx, &u.f_2misc)) return true;
                            break;
                        case 0x1:
                            /* 11110011 1.11..10 ....0110 01.0.... */
                            /* ../git/target/arm/tcg/neon-dp.decode:524 */
                            if (trans_VCVT_B16_F32(ctx, &u.f_2misc)) return true;
                            break;
                        }
                        break;
                    case 0x00020280:
                        /* 11110011 1.11..10 ....0110 1..0.... */
                        /* ../git/target/arm/tcg/neon-dp.decode:526 */
                        disas_neon_dp_extract_2misc(ctx, &u.f_2misc, insn);
                        if (trans_VRINTM(ctx, &u.f_2misc)) return true;
                        break;
                    case 0x00020300:
                        /* 11110011 1.11..10 ....0111 0..0.... */
                        disas_neon_dp_extract_2misc_q0(ctx, &u.f_2misc, insn);
                        switch ((insn >> 6) & 0x1) {
                        case 0x0:
                            /* 11110011 1.11..10 ....0111 00.0.... */
                            /* ../git/target/arm/tcg/neon-dp.decode:528 */
                            if (trans_VCVT_F32_F16(ctx, &u.f_2misc)) return true;
                            break;
                        }
                        break;
                    case 0x00020380:
                        /* 11110011 1.11..10 ....0111 1..0.... */
                        /* ../git/target/arm/tcg/neon-dp.decode:530 */
                        disas_neon_dp_extract_2misc(ctx, &u.f_2misc, insn);
                        if (trans_VRINTP(ctx, &u.f_2misc)) return true;
                        break;
                    case 0x00030000:
                        /* 11110011 1.11..11 ....0100 0..0.... */
                        /* ../git/target/arm/tcg/neon-dp.decode:541 */
                        disas_neon_dp_extract_2misc(ctx, &u.f_2misc, insn);
                        if (trans_VRECPE(ctx, &u.f_2misc)) return true;
                        break;
                    case 0x00030080:
                        /* 11110011 1.11..11 ....0100 1..0.... */
                        /* ../git/target/arm/tcg/neon-dp.decode:542 */
                        disas_neon_dp_extract_2misc(ctx, &u.f_2misc, insn);
                        if (trans_VRSQRTE(ctx, &u.f_2misc)) return true;
                        break;
                    case 0x00030100:
                        /* 11110011 1.11..11 ....0101 0..0.... */
                        /* ../git/target/arm/tcg/neon-dp.decode:543 */
                        disas_neon_dp_extract_2misc(ctx, &u.f_2misc, insn);
                        if (trans_VRECPE_F(ctx, &u.f_2misc)) return true;
                        break;
                    case 0x00030180:
                        /* 11110011 1.11..11 ....0101 1..0.... */
                        /* ../git/target/arm/tcg/neon-dp.decode:544 */
                        disas_neon_dp_extract_2misc(ctx, &u.f_2misc, insn);
                        if (trans_VRSQRTE_F(ctx, &u.f_2misc)) return true;
                        break;
                    case 0x00030200:
                        /* 11110011 1.11..11 ....0110 0..0.... */
                        /* ../git/target/arm/tcg/neon-dp.decode:545 */
                        disas_neon_dp_extract_2misc(ctx, &u.f_2misc, insn);
                        if (trans_VCVT_FS(ctx, &u.f_2misc)) return true;
                        break;
                    case 0x00030280:
                        /* 11110011 1.11..11 ....0110 1..0.... */
                        /* ../git/target/arm/tcg/neon-dp.decode:546 */
                        disas_neon_dp_extract_2misc(ctx, &u.f_2misc, insn);
                        if (trans_VCVT_FU(ctx, &u.f_2misc)) return true;
                        break;
                    case 0x00030300:
                        /* 11110011 1.11..11 ....0111 0..0.... */
                        /* ../git/target/arm/tcg/neon-dp.decode:547 */
                        disas_neon_dp_extract_2misc(ctx, &u.f_2misc, insn);
                        if (trans_VCVT_SF(ctx, &u.f_2misc)) return true;
                        break;
                    case 0x00030380:
                        /* 11110011 1.11..11 ....0111 1..0.... */
                        /* ../git/target/arm/tcg/neon-dp.decode:548 */
                        disas_neon_dp_extract_2misc(ctx, &u.f_2misc, insn);
                        if (trans_VCVT_UF(ctx, &u.f_2misc)) return true;
                        break;
                    }
                    break;
                case 0x2:
                    /* 11110011 1.11.... ....10.. ...0.... */
                    /* ../git/target/arm/tcg/neon-dp.decode:433 */
                    disas_neon_dp_extract_disas_neon_dp_Fmt_26(ctx, &u.f_disas_neon_dp4, insn);
                    if (trans_VTBL(ctx, &u.f_disas_neon_dp4)) return true;
                    break;
                case 0x3:
                    /* 11110011 1.11.... ....11.. ...0.... */
                    switch (insn & 0x00010380) {
                    case 0x00000000:
                        /* 11110011 1.11...0 ....1100 0..0.... */
                        switch ((insn >> 17) & 0x1) {
                        case 0x0:
                            /* 11110011 1.11..00 ....1100 0..0.... */
                            disas_neon_dp_extract_disas_neon_dp_Fmt_29(ctx, &u.f_disas_neon_dp5, insn);
                            switch ((insn >> 18) & 0x1) {
                            case 0x1:
                                /* 11110011 1.11.100 ....1100 0..0.... */
                                /* ../git/target/arm/tcg/neon-dp.decode:440 */
                                if (trans_VDUP_scalar(ctx, &u.f_disas_neon_dp5)) return true;
                                break;
                            }
                            break;
                        case 0x1:
                            /* 11110011 1.11..10 ....1100 0..0.... */
                            /* ../git/target/arm/tcg/neon-dp.decode:438 */
                            disas_neon_dp_extract_disas_neon_dp_Fmt_28(ctx, &u.f_disas_neon_dp5, insn);
                            if (trans_VDUP_scalar(ctx, &u.f_disas_neon_dp5)) return true;
                            break;
                        }
                        break;
                    case 0x00010000:
                        /* 11110011 1.11...1 ....1100 0..0.... */
                        /* ../git/target/arm/tcg/neon-dp.decode:436 */
                        disas_neon_dp_extract_disas_neon_dp_Fmt_27(ctx, &u.f_disas_neon_dp5, insn);
                        if (trans_VDUP_scalar(ctx, &u.f_disas_neon_dp5)) return true;
                        break;
                    }
                    break;
                }
                break;
            }
        }
        switch (insn & 0x00000f40) {
        case 0x00000000:
            /* 1111001. 1....... ....0000 .0.0.... */
            disas_neon_dp_extract_3diff(ctx, &u.f_3diff, insn);
            switch ((insn >> 24) & 0x1) {
            case 0x0:
                /* 11110010 1....... ....0000 .0.0.... */
                /* ../git/target/arm/tcg/neon-dp.decode:563 */
                if (trans_VADDL_S_3d(ctx, &u.f_3diff)) return true;
                break;
            case 0x1:
                /* 11110011 1....... ....0000 .0.0.... */
                /* ../git/target/arm/tcg/neon-dp.decode:564 */
                if (trans_VADDL_U_3d(ctx, &u.f_3diff)) return true;
                break;
            }
            break;
        case 0x00000040:
            /* 1111001. 1....... ....0000 .1.0.... */
            /* ../git/target/arm/tcg/neon-dp.decode:616 */
            disas_neon_dp_extract_2scalar(ctx, &u.f_2scalar, insn);
            if (trans_VMLA_2sc(ctx, &u.f_2scalar)) return true;
            break;
        case 0x00000100:
            /* 1111001. 1....... ....0001 .0.0.... */
            disas_neon_dp_extract_3diff(ctx, &u.f_3diff, insn);
            switch ((insn >> 24) & 0x1) {
            case 0x0:
                /* 11110010 1....... ....0001 .0.0.... */
                /* ../git/target/arm/tcg/neon-dp.decode:566 */
                if (trans_VADDW_S_3d(ctx, &u.f_3diff)) return true;
                break;
            case 0x1:
                /* 11110011 1....... ....0001 .0.0.... */
                /* ../git/target/arm/tcg/neon-dp.decode:567 */
                if (trans_VADDW_U_3d(ctx, &u.f_3diff)) return true;
                break;
            }
            break;
        case 0x00000140:
            /* 1111001. 1....... ....0001 .1.0.... */
            /* ../git/target/arm/tcg/neon-dp.decode:617 */
            disas_neon_dp_extract_2scalar(ctx, &u.f_2scalar, insn);
            if (trans_VMLA_F_2sc(ctx, &u.f_2scalar)) return true;
            break;
        case 0x00000200:
            /* 1111001. 1....... ....0010 .0.0.... */
            disas_neon_dp_extract_3diff(ctx, &u.f_3diff, insn);
            switch ((insn >> 24) & 0x1) {
            case 0x0:
                /* 11110010 1....... ....0010 .0.0.... */
                /* ../git/target/arm/tcg/neon-dp.decode:569 */
                if (trans_VSUBL_S_3d(ctx, &u.f_3diff)) return true;
                break;
            case 0x1:
                /* 11110011 1....... ....0010 .0.0.... */
                /* ../git/target/arm/tcg/neon-dp.decode:570 */
                if (trans_VSUBL_U_3d(ctx, &u.f_3diff)) return true;
                break;
            }
            break;
        case 0x00000240:
            /* 1111001. 1....... ....0010 .1.0.... */
            disas_neon_dp_extract_2scalar_q0(ctx, &u.f_2scalar, insn);
            switch ((insn >> 24) & 0x1) {
            case 0x0:
                /* 11110010 1....... ....0010 .1.0.... */
                /* ../git/target/arm/tcg/neon-dp.decode:619 */
                if (trans_VMLAL_S_2sc(ctx, &u.f_2scalar)) return true;
                break;
            case 0x1:
                /* 11110011 1....... ....0010 .1.0.... */
                /* ../git/target/arm/tcg/neon-dp.decode:620 */
                if (trans_VMLAL_U_2sc(ctx, &u.f_2scalar)) return true;
                break;
            }
            break;
        case 0x00000300:
            /* 1111001. 1....... ....0011 .0.0.... */
            disas_neon_dp_extract_3diff(ctx, &u.f_3diff, insn);
            switch ((insn >> 24) & 0x1) {
            case 0x0:
                /* 11110010 1....... ....0011 .0.0.... */
                /* ../git/target/arm/tcg/neon-dp.decode:572 */
                if (trans_VSUBW_S_3d(ctx, &u.f_3diff)) return true;
                break;
            case 0x1:
                /* 11110011 1....... ....0011 .0.0.... */
                /* ../git/target/arm/tcg/neon-dp.decode:573 */
                if (trans_VSUBW_U_3d(ctx, &u.f_3diff)) return true;
                break;
            }
            break;
        case 0x00000340:
            /* 1111001. 1....... ....0011 .1.0.... */
            disas_neon_dp_extract_2scalar_q0(ctx, &u.f_2scalar, insn);
            switch ((insn >> 24) & 0x1) {
            case 0x0:
                /* 11110010 1....... ....0011 .1.0.... */
                /* ../git/target/arm/tcg/neon-dp.decode:622 */
                if (trans_VQDMLAL_2sc(ctx, &u.f_2scalar)) return true;
                break;
            }
            break;
        case 0x00000400:
            /* 1111001. 1....... ....0100 .0.0.... */
            disas_neon_dp_extract_3diff(ctx, &u.f_3diff, insn);
            switch ((insn >> 24) & 0x1) {
            case 0x0:
                /* 11110010 1....... ....0100 .0.0.... */
                /* ../git/target/arm/tcg/neon-dp.decode:575 */
                if (trans_VADDHN_3d(ctx, &u.f_3diff)) return true;
                break;
            case 0x1:
                /* 11110011 1....... ....0100 .0.0.... */
                /* ../git/target/arm/tcg/neon-dp.decode:576 */
                if (trans_VRADDHN_3d(ctx, &u.f_3diff)) return true;
                break;
            }
            break;
        case 0x00000440:
            /* 1111001. 1....... ....0100 .1.0.... */
            /* ../git/target/arm/tcg/neon-dp.decode:624 */
            disas_neon_dp_extract_2scalar(ctx, &u.f_2scalar, insn);
            if (trans_VMLS_2sc(ctx, &u.f_2scalar)) return true;
            break;
        case 0x00000500:
            /* 1111001. 1....... ....0101 .0.0.... */
            disas_neon_dp_extract_3diff(ctx, &u.f_3diff, insn);
            switch ((insn >> 24) & 0x1) {
            case 0x0:
                /* 11110010 1....... ....0101 .0.0.... */
                /* ../git/target/arm/tcg/neon-dp.decode:578 */
                if (trans_VABAL_S_3d(ctx, &u.f_3diff)) return true;
                break;
            case 0x1:
                /* 11110011 1....... ....0101 .0.0.... */
                /* ../git/target/arm/tcg/neon-dp.decode:579 */
                if (trans_VABAL_U_3d(ctx, &u.f_3diff)) return true;
                break;
            }
            break;
        case 0x00000540:
            /* 1111001. 1....... ....0101 .1.0.... */
            /* ../git/target/arm/tcg/neon-dp.decode:625 */
            disas_neon_dp_extract_2scalar(ctx, &u.f_2scalar, insn);
            if (trans_VMLS_F_2sc(ctx, &u.f_2scalar)) return true;
            break;
        case 0x00000600:
            /* 1111001. 1....... ....0110 .0.0.... */
            disas_neon_dp_extract_3diff(ctx, &u.f_3diff, insn);
            switch ((insn >> 24) & 0x1) {
            case 0x0:
                /* 11110010 1....... ....0110 .0.0.... */
                /* ../git/target/arm/tcg/neon-dp.decode:581 */
                if (trans_VSUBHN_3d(ctx, &u.f_3diff)) return true;
                break;
            case 0x1:
                /* 11110011 1....... ....0110 .0.0.... */
                /* ../git/target/arm/tcg/neon-dp.decode:582 */
                if (trans_VRSUBHN_3d(ctx, &u.f_3diff)) return true;
                break;
            }
            break;
        case 0x00000640:
            /* 1111001. 1....... ....0110 .1.0.... */
            disas_neon_dp_extract_2scalar_q0(ctx, &u.f_2scalar, insn);
            switch ((insn >> 24) & 0x1) {
            case 0x0:
                /* 11110010 1....... ....0110 .1.0.... */
                /* ../git/target/arm/tcg/neon-dp.decode:627 */
                if (trans_VMLSL_S_2sc(ctx, &u.f_2scalar)) return true;
                break;
            case 0x1:
                /* 11110011 1....... ....0110 .1.0.... */
                /* ../git/target/arm/tcg/neon-dp.decode:628 */
                if (trans_VMLSL_U_2sc(ctx, &u.f_2scalar)) return true;
                break;
            }
            break;
        case 0x00000700:
            /* 1111001. 1....... ....0111 .0.0.... */
            disas_neon_dp_extract_3diff(ctx, &u.f_3diff, insn);
            switch ((insn >> 24) & 0x1) {
            case 0x0:
                /* 11110010 1....... ....0111 .0.0.... */
                /* ../git/target/arm/tcg/neon-dp.decode:584 */
                if (trans_VABDL_S_3d(ctx, &u.f_3diff)) return true;
                break;
            case 0x1:
                /* 11110011 1....... ....0111 .0.0.... */
                /* ../git/target/arm/tcg/neon-dp.decode:585 */
                if (trans_VABDL_U_3d(ctx, &u.f_3diff)) return true;
                break;
            }
            break;
        case 0x00000740:
            /* 1111001. 1....... ....0111 .1.0.... */
            disas_neon_dp_extract_2scalar_q0(ctx, &u.f_2scalar, insn);
            switch ((insn >> 24) & 0x1) {
            case 0x0:
                /* 11110010 1....... ....0111 .1.0.... */
                /* ../git/target/arm/tcg/neon-dp.decode:630 */
                if (trans_VQDMLSL_2sc(ctx, &u.f_2scalar)) return true;
                break;
            }
            break;
        case 0x00000800:
            /* 1111001. 1....... ....1000 .0.0.... */
            disas_neon_dp_extract_3diff(ctx, &u.f_3diff, insn);
            switch ((insn >> 24) & 0x1) {
            case 0x0:
                /* 11110010 1....... ....1000 .0.0.... */
                /* ../git/target/arm/tcg/neon-dp.decode:587 */
                if (trans_VMLAL_S_3d(ctx, &u.f_3diff)) return true;
                break;
            case 0x1:
                /* 11110011 1....... ....1000 .0.0.... */
                /* ../git/target/arm/tcg/neon-dp.decode:588 */
                if (trans_VMLAL_U_3d(ctx, &u.f_3diff)) return true;
                break;
            }
            break;
        case 0x00000840:
            /* 1111001. 1....... ....1000 .1.0.... */
            /* ../git/target/arm/tcg/neon-dp.decode:632 */
            disas_neon_dp_extract_2scalar(ctx, &u.f_2scalar, insn);
            if (trans_VMUL_2sc(ctx, &u.f_2scalar)) return true;
            break;
        case 0x00000900:
            /* 1111001. 1....... ....1001 .0.0.... */
            disas_neon_dp_extract_3diff(ctx, &u.f_3diff, insn);
            switch ((insn >> 24) & 0x1) {
            case 0x0:
                /* 11110010 1....... ....1001 .0.0.... */
                /* ../git/target/arm/tcg/neon-dp.decode:590 */
                if (trans_VQDMLAL_3d(ctx, &u.f_3diff)) return true;
                break;
            }
            break;
        case 0x00000940:
            /* 1111001. 1....... ....1001 .1.0.... */
            /* ../git/target/arm/tcg/neon-dp.decode:633 */
            disas_neon_dp_extract_2scalar(ctx, &u.f_2scalar, insn);
            if (trans_VMUL_F_2sc(ctx, &u.f_2scalar)) return true;
            break;
        case 0x00000a00:
            /* 1111001. 1....... ....1010 .0.0.... */
            disas_neon_dp_extract_3diff(ctx, &u.f_3diff, insn);
            switch ((insn >> 24) & 0x1) {
            case 0x0:
                /* 11110010 1....... ....1010 .0.0.... */
                /* ../git/target/arm/tcg/neon-dp.decode:592 */
                if (trans_VMLSL_S_3d(ctx, &u.f_3diff)) return true;
                break;
            case 0x1:
                /* 11110011 1....... ....1010 .0.0.... */
                /* ../git/target/arm/tcg/neon-dp.decode:593 */
                if (trans_VMLSL_U_3d(ctx, &u.f_3diff)) return true;
                break;
            }
            break;
        case 0x00000a40:
            /* 1111001. 1....... ....1010 .1.0.... */
            disas_neon_dp_extract_2scalar_q0(ctx, &u.f_2scalar, insn);
            switch ((insn >> 24) & 0x1) {
            case 0x0:
                /* 11110010 1....... ....1010 .1.0.... */
                /* ../git/target/arm/tcg/neon-dp.decode:635 */
                if (trans_VMULL_S_2sc(ctx, &u.f_2scalar)) return true;
                break;
            case 0x1:
                /* 11110011 1....... ....1010 .1.0.... */
                /* ../git/target/arm/tcg/neon-dp.decode:636 */
                if (trans_VMULL_U_2sc(ctx, &u.f_2scalar)) return true;
                break;
            }
            break;
        case 0x00000b00:
            /* 1111001. 1....... ....1011 .0.0.... */
            disas_neon_dp_extract_3diff(ctx, &u.f_3diff, insn);
            switch ((insn >> 24) & 0x1) {
            case 0x0:
                /* 11110010 1....... ....1011 .0.0.... */
                /* ../git/target/arm/tcg/neon-dp.decode:595 */
                if (trans_VQDMLSL_3d(ctx, &u.f_3diff)) return true;
                break;
            }
            break;
        case 0x00000b40:
            /* 1111001. 1....... ....1011 .1.0.... */
            disas_neon_dp_extract_2scalar_q0(ctx, &u.f_2scalar, insn);
            switch ((insn >> 24) & 0x1) {
            case 0x0:
                /* 11110010 1....... ....1011 .1.0.... */
                /* ../git/target/arm/tcg/neon-dp.decode:638 */
                if (trans_VQDMULL_2sc(ctx, &u.f_2scalar)) return true;
                break;
            }
            break;
        case 0x00000c00:
            /* 1111001. 1....... ....1100 .0.0.... */
            disas_neon_dp_extract_3diff(ctx, &u.f_3diff, insn);
            switch ((insn >> 24) & 0x1) {
            case 0x0:
                /* 11110010 1....... ....1100 .0.0.... */
                /* ../git/target/arm/tcg/neon-dp.decode:597 */
                if (trans_VMULL_S_3d(ctx, &u.f_3diff)) return true;
                break;
            case 0x1:
                /* 11110011 1....... ....1100 .0.0.... */
                /* ../git/target/arm/tcg/neon-dp.decode:598 */
                if (trans_VMULL_U_3d(ctx, &u.f_3diff)) return true;
                break;
            }
            break;
        case 0x00000c40:
            /* 1111001. 1....... ....1100 .1.0.... */
            /* ../git/target/arm/tcg/neon-dp.decode:640 */
            disas_neon_dp_extract_2scalar(ctx, &u.f_2scalar, insn);
            if (trans_VQDMULH_2sc(ctx, &u.f_2scalar)) return true;
            break;
        case 0x00000d00:
            /* 1111001. 1....... ....1101 .0.0.... */
            disas_neon_dp_extract_3diff(ctx, &u.f_3diff, insn);
            switch ((insn >> 24) & 0x1) {
            case 0x0:
                /* 11110010 1....... ....1101 .0.0.... */
                /* ../git/target/arm/tcg/neon-dp.decode:600 */
                if (trans_VQDMULL_3d(ctx, &u.f_3diff)) return true;
                break;
            }
            break;
        case 0x00000d40:
            /* 1111001. 1....... ....1101 .1.0.... */
            /* ../git/target/arm/tcg/neon-dp.decode:641 */
            disas_neon_dp_extract_2scalar(ctx, &u.f_2scalar, insn);
            if (trans_VQRDMULH_2sc(ctx, &u.f_2scalar)) return true;
            break;
        case 0x00000e00:
            /* 1111001. 1....... ....1110 .0.0.... */
            disas_neon_dp_extract_3diff(ctx, &u.f_3diff, insn);
            switch ((insn >> 24) & 0x1) {
            case 0x0:
                /* 11110010 1....... ....1110 .0.0.... */
                /* ../git/target/arm/tcg/neon-dp.decode:602 */
                if (trans_VMULL_P_3d(ctx, &u.f_3diff)) return true;
                break;
            }
            break;
        case 0x00000e40:
            /* 1111001. 1....... ....1110 .1.0.... */
            /* ../git/target/arm/tcg/neon-dp.decode:643 */
            disas_neon_dp_extract_2scalar(ctx, &u.f_2scalar, insn);
            if (trans_VQRDMLAH_2sc(ctx, &u.f_2scalar)) return true;
            break;
        case 0x00000f40:
            /* 1111001. 1....... ....1111 .1.0.... */
            /* ../git/target/arm/tcg/neon-dp.decode:644 */
            disas_neon_dp_extract_2scalar(ctx, &u.f_2scalar, insn);
            if (trans_VQRDMLSH_2sc(ctx, &u.f_2scalar)) return true;
            break;
        }
        break;
    case 0xf2800010u:
        /* 1111001. 1....... ........ ...1.... */
        switch ((insn >> 7) & 0x1) {
        case 0x0:
            /* 1111001. 1....... ........ 0..1.... */
            switch ((insn >> 21) & 0x1) {
            case 0x0:
                /* 1111001. 1.0..... ........ 0..1.... */
                switch ((insn >> 20) & 0x1) {
                case 0x0:
                    /* 1111001. 1.00.... ........ 0..1.... */
                    switch ((insn >> 19) & 0x1) {
                    case 0x0:
                        /* 1111001. 1.000... ........ 0..1.... */
                        /* ../git/target/arm/tcg/neon-dp.decode:409 */
                        disas_neon_dp_extract_1reg_imm(ctx, &u.f_1reg_imm, insn);
                        u.f_1reg_imm.op = extract32(insn, 5, 1);
                        u.f_1reg_imm.cmode = extract32(insn, 8, 4);
                        if (trans_Vimm_1r(ctx, &u.f_1reg_imm)) return true;
                        break;
                    case 0x1:
                        /* 1111001. 1.001... ........ 0..1.... */
                        switch (insn & 0x01000f00) {
                        case 0x00000000:
                            /* 11110010 1.001... ....0000 0..1.... */
                            /* ../git/target/arm/tcg/neon-dp.decode:267 */
                            disas_neon_dp_extract_2reg_shr_b(ctx, &u.f_2reg_shift, insn);
                            if (trans_VSHR_S_2sh(ctx, &u.f_2reg_shift)) return true;
                            break;
                        case 0x00000100:
                            /* 11110010 1.001... ....0001 0..1.... */
                            /* ../git/target/arm/tcg/neon-dp.decode:277 */
                            disas_neon_dp_extract_2reg_shr_b(ctx, &u.f_2reg_shift, insn);
                            if (trans_VSRA_S_2sh(ctx, &u.f_2reg_shift)) return true;
                            break;
                        case 0x00000200:
                            /* 11110010 1.001... ....0010 0..1.... */
                            /* ../git/target/arm/tcg/neon-dp.decode:287 */
                            disas_neon_dp_extract_2reg_shr_b(ctx, &u.f_2reg_shift, insn);
                            if (trans_VRSHR_S_2sh(ctx, &u.f_2reg_shift)) return true;
                            break;
                        case 0x00000300:
                            /* 11110010 1.001... ....0011 0..1.... */
                            /* ../git/target/arm/tcg/neon-dp.decode:297 */
                            disas_neon_dp_extract_2reg_shr_b(ctx, &u.f_2reg_shift, insn);
                            if (trans_VRSRA_S_2sh(ctx, &u.f_2reg_shift)) return true;
                            break;
                        case 0x00000500:
                            /* 11110010 1.001... ....0101 0..1.... */
                            /* ../git/target/arm/tcg/neon-dp.decode:312 */
                            disas_neon_dp_extract_2reg_shl_b(ctx, &u.f_2reg_shift, insn);
                            if (trans_VSHL_2sh(ctx, &u.f_2reg_shift)) return true;
                            break;
                        case 0x00000700:
                            /* 11110010 1.001... ....0111 0..1.... */
                            /* ../git/target/arm/tcg/neon-dp.decode:327 */
                            disas_neon_dp_extract_2reg_shl_b(ctx, &u.f_2reg_shift, insn);
                            if (trans_VQSHL_S_2sh(ctx, &u.f_2reg_shift)) return true;
                            break;
                        case 0x00000800:
                            /* 11110010 1.001... ....1000 0..1.... */
                            disas_neon_dp_extract_2reg_shrn_h(ctx, &u.f_2reg_shift, insn);
                            switch ((insn >> 6) & 0x1) {
                            case 0x0:
                                /* 11110010 1.001... ....1000 00.1.... */
                                /* ../git/target/arm/tcg/neon-dp.decode:336 */
                                if (trans_VSHRN_16_2sh(ctx, &u.f_2reg_shift)) return true;
                                break;
                            case 0x1:
                                /* 11110010 1.001... ....1000 01.1.... */
                                /* ../git/target/arm/tcg/neon-dp.decode:340 */
                                if (trans_VRSHRN_16_2sh(ctx, &u.f_2reg_shift)) return true;
                                break;
                            }
                            break;
                        case 0x00000900:
                            /* 11110010 1.001... ....1001 0..1.... */
                            disas_neon_dp_extract_2reg_shrn_h(ctx, &u.f_2reg_shift, insn);
                            switch ((insn >> 6) & 0x1) {
                            case 0x0:
                                /* 11110010 1.001... ....1001 00.1.... */
                                /* ../git/target/arm/tcg/neon-dp.decode:353 */
                                if (trans_VQSHRN_S16_2sh(ctx, &u.f_2reg_shift)) return true;
                                break;
                            case 0x1:
                                /* 11110010 1.001... ....1001 01.1.... */
                                /* ../git/target/arm/tcg/neon-dp.decode:358 */
                                if (trans_VQRSHRN_S16_2sh(ctx, &u.f_2reg_shift)) return true;
                                break;
                            }
                            break;
                        case 0x00000a00:
                            /* 11110010 1.001... ....1010 0..1.... */
                            disas_neon_dp_extract_2reg_shll_b(ctx, &u.f_2reg_shift, insn);
                            switch ((insn >> 6) & 0x1) {
                            case 0x0:
                                /* 11110010 1.001... ....1010 00.1.... */
                                /* ../git/target/arm/tcg/neon-dp.decode:372 */
                                if (trans_VSHLL_S_2sh(ctx, &u.f_2reg_shift)) return true;
                                break;
                            }
                            break;
                        case 0x01000000:
                            /* 11110011 1.001... ....0000 0..1.... */
                            /* ../git/target/arm/tcg/neon-dp.decode:272 */
                            disas_neon_dp_extract_2reg_shr_b(ctx, &u.f_2reg_shift, insn);
                            if (trans_VSHR_U_2sh(ctx, &u.f_2reg_shift)) return true;
                            break;
                        case 0x01000100:
                            /* 11110011 1.001... ....0001 0..1.... */
                            /* ../git/target/arm/tcg/neon-dp.decode:282 */
                            disas_neon_dp_extract_2reg_shr_b(ctx, &u.f_2reg_shift, insn);
                            if (trans_VSRA_U_2sh(ctx, &u.f_2reg_shift)) return true;
                            break;
                        case 0x01000200:
                            /* 11110011 1.001... ....0010 0..1.... */
                            /* ../git/target/arm/tcg/neon-dp.decode:292 */
                            disas_neon_dp_extract_2reg_shr_b(ctx, &u.f_2reg_shift, insn);
                            if (trans_VRSHR_U_2sh(ctx, &u.f_2reg_shift)) return true;
                            break;
                        case 0x01000300:
                            /* 11110011 1.001... ....0011 0..1.... */
                            /* ../git/target/arm/tcg/neon-dp.decode:302 */
                            disas_neon_dp_extract_2reg_shr_b(ctx, &u.f_2reg_shift, insn);
                            if (trans_VRSRA_U_2sh(ctx, &u.f_2reg_shift)) return true;
                            break;
                        case 0x01000400:
                            /* 11110011 1.001... ....0100 0..1.... */
                            /* ../git/target/arm/tcg/neon-dp.decode:307 */
                            disas_neon_dp_extract_2reg_shr_b(ctx, &u.f_2reg_shift, insn);
                            if (trans_VSRI_2sh(ctx, &u.f_2reg_shift)) return true;
                            break;
                        case 0x01000500:
                            /* 11110011 1.001... ....0101 0..1.... */
                            /* ../git/target/arm/tcg/neon-dp.decode:317 */
                            disas_neon_dp_extract_2reg_shl_b(ctx, &u.f_2reg_shift, insn);
                            if (trans_VSLI_2sh(ctx, &u.f_2reg_shift)) return true;
                            break;
                        case 0x01000600:
                            /* 11110011 1.001... ....0110 0..1.... */
                            /* ../git/target/arm/tcg/neon-dp.decode:322 */
                            disas_neon_dp_extract_2reg_shl_b(ctx, &u.f_2reg_shift, insn);
                            if (trans_VQSHLU_2sh(ctx, &u.f_2reg_shift)) return true;
                            break;
                        case 0x01000700:
                            /* 11110011 1.001... ....0111 0..1.... */
                            /* ../git/target/arm/tcg/neon-dp.decode:332 */
                            disas_neon_dp_extract_2reg_shl_b(ctx, &u.f_2reg_shift, insn);
                            if (trans_VQSHL_U_2sh(ctx, &u.f_2reg_shift)) return true;
                            break;
                        case 0x01000800:
                            /* 11110011 1.001... ....1000 0..1.... */
                            disas_neon_dp_extract_2reg_shrn_h(ctx, &u.f_2reg_shift, insn);
                            switch ((insn >> 6) & 0x1) {
                            case 0x0:
                                /* 11110011 1.001... ....1000 00.1.... */
                                /* ../git/target/arm/tcg/neon-dp.decode:344 */
                                if (trans_VQSHRUN_16_2sh(ctx, &u.f_2reg_shift)) return true;
                                break;
                            case 0x1:
                                /* 11110011 1.001... ....1000 01.1.... */
                                /* ../git/target/arm/tcg/neon-dp.decode:348 */
                                if (trans_VQRSHRUN_16_2sh(ctx, &u.f_2reg_shift)) return true;
                                break;
                            }
                            break;
                        case 0x01000900:
                            /* 11110011 1.001... ....1001 0..1.... */
                            disas_neon_dp_extract_2reg_shrn_h(ctx, &u.f_2reg_shift, insn);
                            switch ((insn >> 6) & 0x1) {
                            case 0x0:
                                /* 11110011 1.001... ....1001 00.1.... */
                                /* ../git/target/arm/tcg/neon-dp.decode:363 */
                                if (trans_VQSHRN_U16_2sh(ctx, &u.f_2reg_shift)) return true;
                                break;
                            case 0x1:
                                /* 11110011 1.001... ....1001 01.1.... */
                                /* ../git/target/arm/tcg/neon-dp.decode:368 */
                                if (trans_VQRSHRN_U16_2sh(ctx, &u.f_2reg_shift)) return true;
                                break;
                            }
                            break;
                        case 0x01000a00:
                            /* 11110011 1.001... ....1010 0..1.... */
                            disas_neon_dp_extract_2reg_shll_b(ctx, &u.f_2reg_shift, insn);
                            switch ((insn >> 6) & 0x1) {
                            case 0x0:
                                /* 11110011 1.001... ....1010 00.1.... */
                                /* ../git/target/arm/tcg/neon-dp.decode:376 */
                                if (trans_VSHLL_U_2sh(ctx, &u.f_2reg_shift)) return true;
                                break;
                            }
                            break;
                        }
                        break;
                    }
                    break;
                case 0x1:
                    /* 1111001. 1.01.... ........ 0..1.... */
                    switch (insn & 0x01000f00) {
                    case 0x00000000:
                        /* 11110010 1.01.... ....0000 0..1.... */
                        /* ../git/target/arm/tcg/neon-dp.decode:266 */
                        disas_neon_dp_extract_2reg_shr_h(ctx, &u.f_2reg_shift, insn);
                        if (trans_VSHR_S_2sh(ctx, &u.f_2reg_shift)) return true;
                        break;
                    case 0x00000100:
                        /* 11110010 1.01.... ....0001 0..1.... */
                        /* ../git/target/arm/tcg/neon-dp.decode:276 */
                        disas_neon_dp_extract_2reg_shr_h(ctx, &u.f_2reg_shift, insn);
                        if (trans_VSRA_S_2sh(ctx, &u.f_2reg_shift)) return true;
                        break;
                    case 0x00000200:
                        /* 11110010 1.01.... ....0010 0..1.... */
                        /* ../git/target/arm/tcg/neon-dp.decode:286 */
                        disas_neon_dp_extract_2reg_shr_h(ctx, &u.f_2reg_shift, insn);
                        if (trans_VRSHR_S_2sh(ctx, &u.f_2reg_shift)) return true;
                        break;
                    case 0x00000300:
                        /* 11110010 1.01.... ....0011 0..1.... */
                        /* ../git/target/arm/tcg/neon-dp.decode:296 */
                        disas_neon_dp_extract_2reg_shr_h(ctx, &u.f_2reg_shift, insn);
                        if (trans_VRSRA_S_2sh(ctx, &u.f_2reg_shift)) return true;
                        break;
                    case 0x00000500:
                        /* 11110010 1.01.... ....0101 0..1.... */
                        /* ../git/target/arm/tcg/neon-dp.decode:311 */
                        disas_neon_dp_extract_2reg_shl_h(ctx, &u.f_2reg_shift, insn);
                        if (trans_VSHL_2sh(ctx, &u.f_2reg_shift)) return true;
                        break;
                    case 0x00000700:
                        /* 11110010 1.01.... ....0111 0..1.... */
                        /* ../git/target/arm/tcg/neon-dp.decode:326 */
                        disas_neon_dp_extract_2reg_shl_h(ctx, &u.f_2reg_shift, insn);
                        if (trans_VQSHL_S_2sh(ctx, &u.f_2reg_shift)) return true;
                        break;
                    case 0x00000800:
                        /* 11110010 1.01.... ....1000 0..1.... */
                        disas_neon_dp_extract_2reg_shrn_s(ctx, &u.f_2reg_shift, insn);
                        switch ((insn >> 6) & 0x1) {
                        case 0x0:
                            /* 11110010 1.01.... ....1000 00.1.... */
                            /* ../git/target/arm/tcg/neon-dp.decode:335 */
                            if (trans_VSHRN_32_2sh(ctx, &u.f_2reg_shift)) return true;
                            break;
                        case 0x1:
                            /* 11110010 1.01.... ....1000 01.1.... */
                            /* ../git/target/arm/tcg/neon-dp.decode:339 */
                            if (trans_VRSHRN_32_2sh(ctx, &u.f_2reg_shift)) return true;
                            break;
                        }
                        break;
                    case 0x00000900:
                        /* 11110010 1.01.... ....1001 0..1.... */
                        disas_neon_dp_extract_2reg_shrn_s(ctx, &u.f_2reg_shift, insn);
                        switch ((insn >> 6) & 0x1) {
                        case 0x0:
                            /* 11110010 1.01.... ....1001 00.1.... */
                            /* ../git/target/arm/tcg/neon-dp.decode:352 */
                            if (trans_VQSHRN_S32_2sh(ctx, &u.f_2reg_shift)) return true;
                            break;
                        case 0x1:
                            /* 11110010 1.01.... ....1001 01.1.... */
                            /* ../git/target/arm/tcg/neon-dp.decode:357 */
                            if (trans_VQRSHRN_S32_2sh(ctx, &u.f_2reg_shift)) return true;
                            break;
                        }
                        break;
                    case 0x00000a00:
                        /* 11110010 1.01.... ....1010 0..1.... */
                        disas_neon_dp_extract_2reg_shll_h(ctx, &u.f_2reg_shift, insn);
                        switch ((insn >> 6) & 0x1) {
                        case 0x0:
                            /* 11110010 1.01.... ....1010 00.1.... */
                            /* ../git/target/arm/tcg/neon-dp.decode:371 */
                            if (trans_VSHLL_S_2sh(ctx, &u.f_2reg_shift)) return true;
                            break;
                        }
                        break;
                    case 0x01000000:
                        /* 11110011 1.01.... ....0000 0..1.... */
                        /* ../git/target/arm/tcg/neon-dp.decode:271 */
                        disas_neon_dp_extract_2reg_shr_h(ctx, &u.f_2reg_shift, insn);
                        if (trans_VSHR_U_2sh(ctx, &u.f_2reg_shift)) return true;
                        break;
                    case 0x01000100:
                        /* 11110011 1.01.... ....0001 0..1.... */
                        /* ../git/target/arm/tcg/neon-dp.decode:281 */
                        disas_neon_dp_extract_2reg_shr_h(ctx, &u.f_2reg_shift, insn);
                        if (trans_VSRA_U_2sh(ctx, &u.f_2reg_shift)) return true;
                        break;
                    case 0x01000200:
                        /* 11110011 1.01.... ....0010 0..1.... */
                        /* ../git/target/arm/tcg/neon-dp.decode:291 */
                        disas_neon_dp_extract_2reg_shr_h(ctx, &u.f_2reg_shift, insn);
                        if (trans_VRSHR_U_2sh(ctx, &u.f_2reg_shift)) return true;
                        break;
                    case 0x01000300:
                        /* 11110011 1.01.... ....0011 0..1.... */
                        /* ../git/target/arm/tcg/neon-dp.decode:301 */
                        disas_neon_dp_extract_2reg_shr_h(ctx, &u.f_2reg_shift, insn);
                        if (trans_VRSRA_U_2sh(ctx, &u.f_2reg_shift)) return true;
                        break;
                    case 0x01000400:
                        /* 11110011 1.01.... ....0100 0..1.... */
                        /* ../git/target/arm/tcg/neon-dp.decode:306 */
                        disas_neon_dp_extract_2reg_shr_h(ctx, &u.f_2reg_shift, insn);
                        if (trans_VSRI_2sh(ctx, &u.f_2reg_shift)) return true;
                        break;
                    case 0x01000500:
                        /* 11110011 1.01.... ....0101 0..1.... */
                        /* ../git/target/arm/tcg/neon-dp.decode:316 */
                        disas_neon_dp_extract_2reg_shl_h(ctx, &u.f_2reg_shift, insn);
                        if (trans_VSLI_2sh(ctx, &u.f_2reg_shift)) return true;
                        break;
                    case 0x01000600:
                        /* 11110011 1.01.... ....0110 0..1.... */
                        /* ../git/target/arm/tcg/neon-dp.decode:321 */
                        disas_neon_dp_extract_2reg_shl_h(ctx, &u.f_2reg_shift, insn);
                        if (trans_VQSHLU_2sh(ctx, &u.f_2reg_shift)) return true;
                        break;
                    case 0x01000700:
                        /* 11110011 1.01.... ....0111 0..1.... */
                        /* ../git/target/arm/tcg/neon-dp.decode:331 */
                        disas_neon_dp_extract_2reg_shl_h(ctx, &u.f_2reg_shift, insn);
                        if (trans_VQSHL_U_2sh(ctx, &u.f_2reg_shift)) return true;
                        break;
                    case 0x01000800:
                        /* 11110011 1.01.... ....1000 0..1.... */
                        disas_neon_dp_extract_2reg_shrn_s(ctx, &u.f_2reg_shift, insn);
                        switch ((insn >> 6) & 0x1) {
                        case 0x0:
                            /* 11110011 1.01.... ....1000 00.1.... */
                            /* ../git/target/arm/tcg/neon-dp.decode:343 */
                            if (trans_VQSHRUN_32_2sh(ctx, &u.f_2reg_shift)) return true;
                            break;
                        case 0x1:
                            /* 11110011 1.01.... ....1000 01.1.... */
                            /* ../git/target/arm/tcg/neon-dp.decode:347 */
                            if (trans_VQRSHRUN_32_2sh(ctx, &u.f_2reg_shift)) return true;
                            break;
                        }
                        break;
                    case 0x01000900:
                        /* 11110011 1.01.... ....1001 0..1.... */
                        disas_neon_dp_extract_2reg_shrn_s(ctx, &u.f_2reg_shift, insn);
                        switch ((insn >> 6) & 0x1) {
                        case 0x0:
                            /* 11110011 1.01.... ....1001 00.1.... */
                            /* ../git/target/arm/tcg/neon-dp.decode:362 */
                            if (trans_VQSHRN_U32_2sh(ctx, &u.f_2reg_shift)) return true;
                            break;
                        case 0x1:
                            /* 11110011 1.01.... ....1001 01.1.... */
                            /* ../git/target/arm/tcg/neon-dp.decode:367 */
                            if (trans_VQRSHRN_U32_2sh(ctx, &u.f_2reg_shift)) return true;
                            break;
                        }
                        break;
                    case 0x01000a00:
                        /* 11110011 1.01.... ....1010 0..1.... */
                        disas_neon_dp_extract_2reg_shll_h(ctx, &u.f_2reg_shift, insn);
                        switch ((insn >> 6) & 0x1) {
                        case 0x0:
                            /* 11110011 1.01.... ....1010 00.1.... */
                            /* ../git/target/arm/tcg/neon-dp.decode:375 */
                            if (trans_VSHLL_U_2sh(ctx, &u.f_2reg_shift)) return true;
                            break;
                        }
                        break;
                    }
                    break;
                }
                break;
            case 0x1:
                /* 1111001. 1.1..... ........ 0..1.... */
                switch (insn & 0x01000f00) {
                case 0x00000000:
                    /* 11110010 1.1..... ....0000 0..1.... */
                    /* ../git/target/arm/tcg/neon-dp.decode:265 */
                    disas_neon_dp_extract_2reg_shr_s(ctx, &u.f_2reg_shift, insn);
                    if (trans_VSHR_S_2sh(ctx, &u.f_2reg_shift)) return true;
                    break;
                case 0x00000100:
                    /* 11110010 1.1..... ....0001 0..1.... */
                    /* ../git/target/arm/tcg/neon-dp.decode:275 */
                    disas_neon_dp_extract_2reg_shr_s(ctx, &u.f_2reg_shift, insn);
                    if (trans_VSRA_S_2sh(ctx, &u.f_2reg_shift)) return true;
                    break;
                case 0x00000200:
                    /* 11110010 1.1..... ....0010 0..1.... */
                    /* ../git/target/arm/tcg/neon-dp.decode:285 */
                    disas_neon_dp_extract_2reg_shr_s(ctx, &u.f_2reg_shift, insn);
                    if (trans_VRSHR_S_2sh(ctx, &u.f_2reg_shift)) return true;
                    break;
                case 0x00000300:
                    /* 11110010 1.1..... ....0011 0..1.... */
                    /* ../git/target/arm/tcg/neon-dp.decode:295 */
                    disas_neon_dp_extract_2reg_shr_s(ctx, &u.f_2reg_shift, insn);
                    if (trans_VRSRA_S_2sh(ctx, &u.f_2reg_shift)) return true;
                    break;
                case 0x00000500:
                    /* 11110010 1.1..... ....0101 0..1.... */
                    /* ../git/target/arm/tcg/neon-dp.decode:310 */
                    disas_neon_dp_extract_2reg_shl_s(ctx, &u.f_2reg_shift, insn);
                    if (trans_VSHL_2sh(ctx, &u.f_2reg_shift)) return true;
                    break;
                case 0x00000700:
                    /* 11110010 1.1..... ....0111 0..1.... */
                    /* ../git/target/arm/tcg/neon-dp.decode:325 */
                    disas_neon_dp_extract_2reg_shl_s(ctx, &u.f_2reg_shift, insn);
                    if (trans_VQSHL_S_2sh(ctx, &u.f_2reg_shift)) return true;
                    break;
                case 0x00000800:
                    /* 11110010 1.1..... ....1000 0..1.... */
                    disas_neon_dp_extract_2reg_shrn_d(ctx, &u.f_2reg_shift, insn);
                    switch ((insn >> 6) & 0x1) {
                    case 0x0:
                        /* 11110010 1.1..... ....1000 00.1.... */
                        /* ../git/target/arm/tcg/neon-dp.decode:334 */
                        if (trans_VSHRN_64_2sh(ctx, &u.f_2reg_shift)) return true;
                        break;
                    case 0x1:
                        /* 11110010 1.1..... ....1000 01.1.... */
                        /* ../git/target/arm/tcg/neon-dp.decode:338 */
                        if (trans_VRSHRN_64_2sh(ctx, &u.f_2reg_shift)) return true;
                        break;
                    }
                    break;
                case 0x00000900:
                    /* 11110010 1.1..... ....1001 0..1.... */
                    disas_neon_dp_extract_2reg_shrn_d(ctx, &u.f_2reg_shift, insn);
                    switch ((insn >> 6) & 0x1) {
                    case 0x0:
                        /* 11110010 1.1..... ....1001 00.1.... */
                        /* ../git/target/arm/tcg/neon-dp.decode:351 */
                        if (trans_VQSHRN_S64_2sh(ctx, &u.f_2reg_shift)) return true;
                        break;
                    case 0x1:
                        /* 11110010 1.1..... ....1001 01.1.... */
                        /* ../git/target/arm/tcg/neon-dp.decode:356 */
                        if (trans_VQRSHRN_S64_2sh(ctx, &u.f_2reg_shift)) return true;
                        break;
                    }
                    break;
                case 0x00000a00:
                    /* 11110010 1.1..... ....1010 0..1.... */
                    disas_neon_dp_extract_2reg_shll_s(ctx, &u.f_2reg_shift, insn);
                    switch ((insn >> 6) & 0x1) {
                    case 0x0:
                        /* 11110010 1.1..... ....1010 00.1.... */
                        /* ../git/target/arm/tcg/neon-dp.decode:370 */
                        if (trans_VSHLL_S_2sh(ctx, &u.f_2reg_shift)) return true;
                        break;
                    }
                    break;
                case 0x00000c00:
                    /* 11110010 1.1..... ....1100 0..1.... */
                    disas_neon_dp_extract_2reg_vcvt_f16(ctx, &u.f_2reg_shift, insn);
                    switch ((insn >> 20) & 0x1) {
                    case 0x1:
                        /* 11110010 1.11.... ....1100 0..1.... */
                        /* ../git/target/arm/tcg/neon-dp.decode:379 */
                        if (trans_VCVT_SH_2sh(ctx, &u.f_2reg_shift)) return true;
                        break;
                    }
                    break;
                case 0x00000d00:
                    /* 11110010 1.1..... ....1101 0..1.... */
                    disas_neon_dp_extract_2reg_vcvt_f16(ctx, &u.f_2reg_shift, insn);
                    switch ((insn >> 20) & 0x1) {
                    case 0x1:
                        /* 11110010 1.11.... ....1101 0..1.... */
                        /* ../git/target/arm/tcg/neon-dp.decode:381 */
                        if (trans_VCVT_HS_2sh(ctx, &u.f_2reg_shift)) return true;
                        break;
                    }
                    break;
                case 0x00000e00:
                    /* 11110010 1.1..... ....1110 0..1.... */
                    /* ../git/target/arm/tcg/neon-dp.decode:384 */
                    disas_neon_dp_extract_2reg_vcvt(ctx, &u.f_2reg_shift, insn);
                    if (trans_VCVT_SF_2sh(ctx, &u.f_2reg_shift)) return true;
                    break;
                case 0x00000f00:
                    /* 11110010 1.1..... ....1111 0..1.... */
                    /* ../git/target/arm/tcg/neon-dp.decode:386 */
                    disas_neon_dp_extract_2reg_vcvt(ctx, &u.f_2reg_shift, insn);
                    if (trans_VCVT_FS_2sh(ctx, &u.f_2reg_shift)) return true;
                    break;
                case 0x01000000:
                    /* 11110011 1.1..... ....0000 0..1.... */
                    /* ../git/target/arm/tcg/neon-dp.decode:270 */
                    disas_neon_dp_extract_2reg_shr_s(ctx, &u.f_2reg_shift, insn);
                    if (trans_VSHR_U_2sh(ctx, &u.f_2reg_shift)) return true;
                    break;
                case 0x01000100:
                    /* 11110011 1.1..... ....0001 0..1.... */
                    /* ../git/target/arm/tcg/neon-dp.decode:280 */
                    disas_neon_dp_extract_2reg_shr_s(ctx, &u.f_2reg_shift, insn);
                    if (trans_VSRA_U_2sh(ctx, &u.f_2reg_shift)) return true;
                    break;
                case 0x01000200:
                    /* 11110011 1.1..... ....0010 0..1.... */
                    /* ../git/target/arm/tcg/neon-dp.decode:290 */
                    disas_neon_dp_extract_2reg_shr_s(ctx, &u.f_2reg_shift, insn);
                    if (trans_VRSHR_U_2sh(ctx, &u.f_2reg_shift)) return true;
                    break;
                case 0x01000300:
                    /* 11110011 1.1..... ....0011 0..1.... */
                    /* ../git/target/arm/tcg/neon-dp.decode:300 */
                    disas_neon_dp_extract_2reg_shr_s(ctx, &u.f_2reg_shift, insn);
                    if (trans_VRSRA_U_2sh(ctx, &u.f_2reg_shift)) return true;
                    break;
                case 0x01000400:
                    /* 11110011 1.1..... ....0100 0..1.... */
                    /* ../git/target/arm/tcg/neon-dp.decode:305 */
                    disas_neon_dp_extract_2reg_shr_s(ctx, &u.f_2reg_shift, insn);
                    if (trans_VSRI_2sh(ctx, &u.f_2reg_shift)) return true;
                    break;
                case 0x01000500:
                    /* 11110011 1.1..... ....0101 0..1.... */
                    /* ../git/target/arm/tcg/neon-dp.decode:315 */
                    disas_neon_dp_extract_2reg_shl_s(ctx, &u.f_2reg_shift, insn);
                    if (trans_VSLI_2sh(ctx, &u.f_2reg_shift)) return true;
                    break;
                case 0x01000600:
                    /* 11110011 1.1..... ....0110 0..1.... */
                    /* ../git/target/arm/tcg/neon-dp.decode:320 */
                    disas_neon_dp_extract_2reg_shl_s(ctx, &u.f_2reg_shift, insn);
                    if (trans_VQSHLU_2sh(ctx, &u.f_2reg_shift)) return true;
                    break;
                case 0x01000700:
                    /* 11110011 1.1..... ....0111 0..1.... */
                    /* ../git/target/arm/tcg/neon-dp.decode:330 */
                    disas_neon_dp_extract_2reg_shl_s(ctx, &u.f_2reg_shift, insn);
                    if (trans_VQSHL_U_2sh(ctx, &u.f_2reg_shift)) return true;
                    break;
                case 0x01000800:
                    /* 11110011 1.1..... ....1000 0..1.... */
                    disas_neon_dp_extract_2reg_shrn_d(ctx, &u.f_2reg_shift, insn);
                    switch ((insn >> 6) & 0x1) {
                    case 0x0:
                        /* 11110011 1.1..... ....1000 00.1.... */
                        /* ../git/target/arm/tcg/neon-dp.decode:342 */
                        if (trans_VQSHRUN_64_2sh(ctx, &u.f_2reg_shift)) return true;
                        break;
                    case 0x1:
                        /* 11110011 1.1..... ....1000 01.1.... */
                        /* ../git/target/arm/tcg/neon-dp.decode:346 */
                        if (trans_VQRSHRUN_64_2sh(ctx, &u.f_2reg_shift)) return true;
                        break;
                    }
                    break;
                case 0x01000900:
                    /* 11110011 1.1..... ....1001 0..1.... */
                    disas_neon_dp_extract_2reg_shrn_d(ctx, &u.f_2reg_shift, insn);
                    switch ((insn >> 6) & 0x1) {
                    case 0x0:
                        /* 11110011 1.1..... ....1001 00.1.... */
                        /* ../git/target/arm/tcg/neon-dp.decode:361 */
                        if (trans_VQSHRN_U64_2sh(ctx, &u.f_2reg_shift)) return true;
                        break;
                    case 0x1:
                        /* 11110011 1.1..... ....1001 01.1.... */
                        /* ../git/target/arm/tcg/neon-dp.decode:366 */
                        if (trans_VQRSHRN_U64_2sh(ctx, &u.f_2reg_shift)) return true;
                        break;
                    }
                    break;
                case 0x01000a00:
                    /* 11110011 1.1..... ....1010 0..1.... */
                    disas_neon_dp_extract_2reg_shll_s(ctx, &u.f_2reg_shift, insn);
                    switch ((insn >> 6) & 0x1) {
                    case 0x0:
                        /* 11110011 1.1..... ....1010 00.1.... */
                        /* ../git/target/arm/tcg/neon-dp.decode:374 */
                        if (trans_VSHLL_U_2sh(ctx, &u.f_2reg_shift)) return true;
                        break;
                    }
                    break;
                case 0x01000c00:
                    /* 11110011 1.1..... ....1100 0..1.... */
                    disas_neon_dp_extract_2reg_vcvt_f16(ctx, &u.f_2reg_shift, insn);
                    switch ((insn >> 20) & 0x1) {
                    case 0x1:
                        /* 11110011 1.11.... ....1100 0..1.... */
                        /* ../git/target/arm/tcg/neon-dp.decode:380 */
                        if (trans_VCVT_UH_2sh(ctx, &u.f_2reg_shift)) return true;
                        break;
                    }
                    break;
                case 0x01000d00:
                    /* 11110011 1.1..... ....1101 0..1.... */
                    disas_neon_dp_extract_2reg_vcvt_f16(ctx, &u.f_2reg_shift, insn);
                    switch ((insn >> 20) & 0x1) {
                    case 0x1:
                        /* 11110011 1.11.... ....1101 0..1.... */
                        /* ../git/target/arm/tcg/neon-dp.decode:382 */
                        if (trans_VCVT_HU_2sh(ctx, &u.f_2reg_shift)) return true;
                        break;
                    }
                    break;
                case 0x01000e00:
                    /* 11110011 1.1..... ....1110 0..1.... */
                    /* ../git/target/arm/tcg/neon-dp.decode:385 */
                    disas_neon_dp_extract_2reg_vcvt(ctx, &u.f_2reg_shift, insn);
                    if (trans_VCVT_UF_2sh(ctx, &u.f_2reg_shift)) return true;
                    break;
                case 0x01000f00:
                    /* 11110011 1.1..... ....1111 0..1.... */
                    /* ../git/target/arm/tcg/neon-dp.decode:387 */
                    disas_neon_dp_extract_2reg_vcvt(ctx, &u.f_2reg_shift, insn);
                    if (trans_VCVT_FU_2sh(ctx, &u.f_2reg_shift)) return true;
                    break;
                }
                break;
            }
            break;
        case 0x1:
            /* 1111001. 1....... ........ 1..1.... */
            switch (insn & 0x01000f00) {
            case 0x00000000:
                /* 11110010 1....... ....0000 1..1.... */
                /* ../git/target/arm/tcg/neon-dp.decode:264 */
                disas_neon_dp_extract_2reg_shr_d(ctx, &u.f_2reg_shift, insn);
                if (trans_VSHR_S_2sh(ctx, &u.f_2reg_shift)) return true;
                break;
            case 0x00000100:
                /* 11110010 1....... ....0001 1..1.... */
                /* ../git/target/arm/tcg/neon-dp.decode:274 */
                disas_neon_dp_extract_2reg_shr_d(ctx, &u.f_2reg_shift, insn);
                if (trans_VSRA_S_2sh(ctx, &u.f_2reg_shift)) return true;
                break;
            case 0x00000200:
                /* 11110010 1....... ....0010 1..1.... */
                /* ../git/target/arm/tcg/neon-dp.decode:284 */
                disas_neon_dp_extract_2reg_shr_d(ctx, &u.f_2reg_shift, insn);
                if (trans_VRSHR_S_2sh(ctx, &u.f_2reg_shift)) return true;
                break;
            case 0x00000300:
                /* 11110010 1....... ....0011 1..1.... */
                /* ../git/target/arm/tcg/neon-dp.decode:294 */
                disas_neon_dp_extract_2reg_shr_d(ctx, &u.f_2reg_shift, insn);
                if (trans_VRSRA_S_2sh(ctx, &u.f_2reg_shift)) return true;
                break;
            case 0x00000500:
                /* 11110010 1....... ....0101 1..1.... */
                /* ../git/target/arm/tcg/neon-dp.decode:309 */
                disas_neon_dp_extract_2reg_shl_d(ctx, &u.f_2reg_shift, insn);
                if (trans_VSHL_2sh(ctx, &u.f_2reg_shift)) return true;
                break;
            case 0x00000700:
                /* 11110010 1....... ....0111 1..1.... */
                /* ../git/target/arm/tcg/neon-dp.decode:324 */
                disas_neon_dp_extract_2reg_shl_d(ctx, &u.f_2reg_shift, insn);
                if (trans_VQSHL_S_64_2sh(ctx, &u.f_2reg_shift)) return true;
                break;
            case 0x01000000:
                /* 11110011 1....... ....0000 1..1.... */
                /* ../git/target/arm/tcg/neon-dp.decode:269 */
                disas_neon_dp_extract_2reg_shr_d(ctx, &u.f_2reg_shift, insn);
                if (trans_VSHR_U_2sh(ctx, &u.f_2reg_shift)) return true;
                break;
            case 0x01000100:
                /* 11110011 1....... ....0001 1..1.... */
                /* ../git/target/arm/tcg/neon-dp.decode:279 */
                disas_neon_dp_extract_2reg_shr_d(ctx, &u.f_2reg_shift, insn);
                if (trans_VSRA_U_2sh(ctx, &u.f_2reg_shift)) return true;
                break;
            case 0x01000200:
                /* 11110011 1....... ....0010 1..1.... */
                /* ../git/target/arm/tcg/neon-dp.decode:289 */
                disas_neon_dp_extract_2reg_shr_d(ctx, &u.f_2reg_shift, insn);
                if (trans_VRSHR_U_2sh(ctx, &u.f_2reg_shift)) return true;
                break;
            case 0x01000300:
                /* 11110011 1....... ....0011 1..1.... */
                /* ../git/target/arm/tcg/neon-dp.decode:299 */
                disas_neon_dp_extract_2reg_shr_d(ctx, &u.f_2reg_shift, insn);
                if (trans_VRSRA_U_2sh(ctx, &u.f_2reg_shift)) return true;
                break;
            case 0x01000400:
                /* 11110011 1....... ....0100 1..1.... */
                /* ../git/target/arm/tcg/neon-dp.decode:304 */
                disas_neon_dp_extract_2reg_shr_d(ctx, &u.f_2reg_shift, insn);
                if (trans_VSRI_2sh(ctx, &u.f_2reg_shift)) return true;
                break;
            case 0x01000500:
                /* 11110011 1....... ....0101 1..1.... */
                /* ../git/target/arm/tcg/neon-dp.decode:314 */
                disas_neon_dp_extract_2reg_shl_d(ctx, &u.f_2reg_shift, insn);
                if (trans_VSLI_2sh(ctx, &u.f_2reg_shift)) return true;
                break;
            case 0x01000600:
                /* 11110011 1....... ....0110 1..1.... */
                /* ../git/target/arm/tcg/neon-dp.decode:319 */
                disas_neon_dp_extract_2reg_shl_d(ctx, &u.f_2reg_shift, insn);
                if (trans_VQSHLU_64_2sh(ctx, &u.f_2reg_shift)) return true;
                break;
            case 0x01000700:
                /* 11110011 1....... ....0111 1..1.... */
                /* ../git/target/arm/tcg/neon-dp.decode:329 */
                disas_neon_dp_extract_2reg_shl_d(ctx, &u.f_2reg_shift, insn);
                if (trans_VQSHL_U_64_2sh(ctx, &u.f_2reg_shift)) return true;
                break;
            }
            break;
        }
        break;
    }
    return false;
}
