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

typedef struct {
    int aq;
    int rl;
    int rs2;
    int rs1;
    int rd;
} arg_atomic;

typedef struct {
    int imm;
    int rs2;
    int rs1;
} arg_b;

typedef struct {
    int csr;
    int rs1;
    int rd;
} arg_decode_insn3216;

typedef struct {
    int rs3;
    int rs2;
    int rs1;
    int rm;
    int rd;
} arg_decode_insn3217;

typedef struct {
    int rs2;
    int rs1;
    int rm;
    int rd;
} arg_decode_insn3218;

typedef struct {
    int rs1;
    int rm;
    int rd;
} arg_decode_insn3219;

typedef struct {
    int vm;
    int rd;
} arg_decode_insn3220;

typedef struct {
    int rs2;
    int rd;
} arg_decode_insn3221;

typedef struct {
    int zimm;
    int rs1;
    int rd;
} arg_decode_insn3222;

typedef struct {
    int rs1;
} arg_decode_insn3223;

typedef struct {
    int pred;
    int succ;
} arg_decode_insn3224;

typedef struct {
} arg_empty;

typedef struct {
    int imm;
    int rs1;
    int rd;
} arg_i;

typedef struct {
    int imm;
    int rd;
} arg_j;

typedef struct {
    int shamt;
    int rs2;
    int rs1;
    int rd;
} arg_k_aes;

typedef struct {
    int rd;
    int rs1;
    int rs2;
} arg_r;

typedef struct {
    int rd;
    int rs1;
} arg_r2;

typedef struct {
    int rs1;
    int rs2;
} arg_r2_s;

typedef struct {
    int vm;
    int rd;
    int rs1;
    int nf;
} arg_r2nfvm;

typedef struct {
    int vm;
    int rd;
    int rs2;
} arg_rmr;

typedef struct {
    int vm;
    int rd;
    int rs1;
    int rs2;
} arg_rmrr;

typedef struct {
    int vm;
    int rd;
    int rs1;
    int rs2;
    int nf;
} arg_rnfvm;

typedef struct {
    int imm;
    int rs1;
    int rs2;
} arg_s;

typedef struct {
    int shamt;
    int rs1;
    int rd;
} arg_shift;

typedef struct {
    int imm;
    int rd;
} arg_u;

typedef arg_empty arg_ecall;
static bool trans_ecall(DisasContext *ctx, arg_ecall *a);
typedef arg_empty arg_ebreak;
static bool trans_ebreak(DisasContext *ctx, arg_ebreak *a);
typedef arg_empty arg_uret;
static bool trans_uret(DisasContext *ctx, arg_uret *a);
typedef arg_empty arg_sret;
static bool trans_sret(DisasContext *ctx, arg_sret *a);
typedef arg_empty arg_mret;
static bool trans_mret(DisasContext *ctx, arg_mret *a);
typedef arg_empty arg_wfi;
static bool trans_wfi(DisasContext *ctx, arg_wfi *a);
typedef arg_r2_s arg_sfence_vma;
static bool trans_sfence_vma(DisasContext *ctx, arg_sfence_vma *a);
typedef arg_decode_insn3223 arg_sfence_vm;
static bool trans_sfence_vm(DisasContext *ctx, arg_sfence_vm *a);
typedef arg_u arg_lui;
static bool trans_lui(DisasContext *ctx, arg_lui *a);
typedef arg_u arg_auipc;
static bool trans_auipc(DisasContext *ctx, arg_auipc *a);
typedef arg_j arg_jal;
static bool trans_jal(DisasContext *ctx, arg_jal *a);
typedef arg_i arg_jalr;
static bool trans_jalr(DisasContext *ctx, arg_jalr *a);
typedef arg_b arg_beq;
static bool trans_beq(DisasContext *ctx, arg_beq *a);
typedef arg_b arg_bne;
static bool trans_bne(DisasContext *ctx, arg_bne *a);
typedef arg_b arg_blt;
static bool trans_blt(DisasContext *ctx, arg_blt *a);
typedef arg_b arg_bge;
static bool trans_bge(DisasContext *ctx, arg_bge *a);
typedef arg_b arg_bltu;
static bool trans_bltu(DisasContext *ctx, arg_bltu *a);
typedef arg_b arg_bgeu;
static bool trans_bgeu(DisasContext *ctx, arg_bgeu *a);
typedef arg_i arg_lb;
static bool trans_lb(DisasContext *ctx, arg_lb *a);
typedef arg_i arg_lh;
static bool trans_lh(DisasContext *ctx, arg_lh *a);
typedef arg_i arg_lw;
static bool trans_lw(DisasContext *ctx, arg_lw *a);
typedef arg_i arg_lbu;
static bool trans_lbu(DisasContext *ctx, arg_lbu *a);
typedef arg_i arg_lhu;
static bool trans_lhu(DisasContext *ctx, arg_lhu *a);
typedef arg_s arg_sb;
static bool trans_sb(DisasContext *ctx, arg_sb *a);
typedef arg_s arg_sh;
static bool trans_sh(DisasContext *ctx, arg_sh *a);
typedef arg_s arg_sw;
static bool trans_sw(DisasContext *ctx, arg_sw *a);
typedef arg_i arg_addi;
static bool trans_addi(DisasContext *ctx, arg_addi *a);
typedef arg_i arg_slti;
static bool trans_slti(DisasContext *ctx, arg_slti *a);
typedef arg_i arg_sltiu;
static bool trans_sltiu(DisasContext *ctx, arg_sltiu *a);
typedef arg_i arg_xori;
static bool trans_xori(DisasContext *ctx, arg_xori *a);
typedef arg_i arg_ori;
static bool trans_ori(DisasContext *ctx, arg_ori *a);
typedef arg_i arg_andi;
static bool trans_andi(DisasContext *ctx, arg_andi *a);
typedef arg_shift arg_slli;
static bool trans_slli(DisasContext *ctx, arg_slli *a);
typedef arg_shift arg_srli;
static bool trans_srli(DisasContext *ctx, arg_srli *a);
typedef arg_shift arg_srai;
static bool trans_srai(DisasContext *ctx, arg_srai *a);
typedef arg_r arg_add;
static bool trans_add(DisasContext *ctx, arg_add *a);
typedef arg_r arg_sub;
static bool trans_sub(DisasContext *ctx, arg_sub *a);
typedef arg_r arg_sll;
static bool trans_sll(DisasContext *ctx, arg_sll *a);
typedef arg_r arg_slt;
static bool trans_slt(DisasContext *ctx, arg_slt *a);
typedef arg_r arg_sltu;
static bool trans_sltu(DisasContext *ctx, arg_sltu *a);
typedef arg_r arg_xor;
static bool trans_xor(DisasContext *ctx, arg_xor *a);
typedef arg_r arg_srl;
static bool trans_srl(DisasContext *ctx, arg_srl *a);
typedef arg_r arg_sra;
static bool trans_sra(DisasContext *ctx, arg_sra *a);
typedef arg_r arg_or;
static bool trans_or(DisasContext *ctx, arg_or *a);
typedef arg_r arg_and;
static bool trans_and(DisasContext *ctx, arg_and *a);
typedef arg_empty arg_pause;
static bool trans_pause(DisasContext *ctx, arg_pause *a);
typedef arg_decode_insn3224 arg_fence;
static bool trans_fence(DisasContext *ctx, arg_fence *a);
typedef arg_empty arg_fence_i;
static bool trans_fence_i(DisasContext *ctx, arg_fence_i *a);
typedef arg_decode_insn3216 arg_csrrw;
static bool trans_csrrw(DisasContext *ctx, arg_csrrw *a);
typedef arg_decode_insn3216 arg_csrrs;
static bool trans_csrrs(DisasContext *ctx, arg_csrrs *a);
typedef arg_decode_insn3216 arg_csrrc;
static bool trans_csrrc(DisasContext *ctx, arg_csrrc *a);
typedef arg_decode_insn3216 arg_csrrwi;
static bool trans_csrrwi(DisasContext *ctx, arg_csrrwi *a);
typedef arg_decode_insn3216 arg_csrrsi;
static bool trans_csrrsi(DisasContext *ctx, arg_csrrsi *a);
typedef arg_decode_insn3216 arg_csrrci;
static bool trans_csrrci(DisasContext *ctx, arg_csrrci *a);
typedef arg_i arg_lwu;
static bool trans_lwu(DisasContext *ctx, arg_lwu *a);
typedef arg_i arg_ld;
static bool trans_ld(DisasContext *ctx, arg_ld *a);
typedef arg_s arg_sd;
static bool trans_sd(DisasContext *ctx, arg_sd *a);
typedef arg_i arg_addiw;
static bool trans_addiw(DisasContext *ctx, arg_addiw *a);
typedef arg_shift arg_slliw;
static bool trans_slliw(DisasContext *ctx, arg_slliw *a);
typedef arg_shift arg_srliw;
static bool trans_srliw(DisasContext *ctx, arg_srliw *a);
typedef arg_shift arg_sraiw;
static bool trans_sraiw(DisasContext *ctx, arg_sraiw *a);
typedef arg_r arg_addw;
static bool trans_addw(DisasContext *ctx, arg_addw *a);
typedef arg_r arg_subw;
static bool trans_subw(DisasContext *ctx, arg_subw *a);
typedef arg_r arg_sllw;
static bool trans_sllw(DisasContext *ctx, arg_sllw *a);
typedef arg_r arg_srlw;
static bool trans_srlw(DisasContext *ctx, arg_srlw *a);
typedef arg_r arg_sraw;
static bool trans_sraw(DisasContext *ctx, arg_sraw *a);
typedef arg_i arg_ldu;
static bool trans_ldu(DisasContext *ctx, arg_ldu *a);
typedef arg_decode_insn3223 arg_cbo_clean;
static bool trans_cbo_clean(DisasContext *ctx, arg_cbo_clean *a);
typedef arg_decode_insn3223 arg_cbo_flush;
static bool trans_cbo_flush(DisasContext *ctx, arg_cbo_flush *a);
typedef arg_decode_insn3223 arg_cbo_inval;
static bool trans_cbo_inval(DisasContext *ctx, arg_cbo_inval *a);
typedef arg_decode_insn3223 arg_cbo_zero;
static bool trans_cbo_zero(DisasContext *ctx, arg_cbo_zero *a);
typedef arg_i arg_lq;
static bool trans_lq(DisasContext *ctx, arg_lq *a);
typedef arg_s arg_sq;
static bool trans_sq(DisasContext *ctx, arg_sq *a);
typedef arg_i arg_addid;
static bool trans_addid(DisasContext *ctx, arg_addid *a);
typedef arg_shift arg_sllid;
static bool trans_sllid(DisasContext *ctx, arg_sllid *a);
typedef arg_shift arg_srlid;
static bool trans_srlid(DisasContext *ctx, arg_srlid *a);
typedef arg_shift arg_sraid;
static bool trans_sraid(DisasContext *ctx, arg_sraid *a);
typedef arg_r arg_addd;
static bool trans_addd(DisasContext *ctx, arg_addd *a);
typedef arg_r arg_subd;
static bool trans_subd(DisasContext *ctx, arg_subd *a);
typedef arg_r arg_slld;
static bool trans_slld(DisasContext *ctx, arg_slld *a);
typedef arg_r arg_srld;
static bool trans_srld(DisasContext *ctx, arg_srld *a);
typedef arg_r arg_srad;
static bool trans_srad(DisasContext *ctx, arg_srad *a);
typedef arg_r arg_mul;
static bool trans_mul(DisasContext *ctx, arg_mul *a);
typedef arg_r arg_mulh;
static bool trans_mulh(DisasContext *ctx, arg_mulh *a);
typedef arg_r arg_mulhsu;
static bool trans_mulhsu(DisasContext *ctx, arg_mulhsu *a);
typedef arg_r arg_mulhu;
static bool trans_mulhu(DisasContext *ctx, arg_mulhu *a);
typedef arg_r arg_div;
static bool trans_div(DisasContext *ctx, arg_div *a);
typedef arg_r arg_divu;
static bool trans_divu(DisasContext *ctx, arg_divu *a);
typedef arg_r arg_rem;
static bool trans_rem(DisasContext *ctx, arg_rem *a);
typedef arg_r arg_remu;
static bool trans_remu(DisasContext *ctx, arg_remu *a);
typedef arg_r arg_mulw;
static bool trans_mulw(DisasContext *ctx, arg_mulw *a);
typedef arg_r arg_divw;
static bool trans_divw(DisasContext *ctx, arg_divw *a);
typedef arg_r arg_divuw;
static bool trans_divuw(DisasContext *ctx, arg_divuw *a);
typedef arg_r arg_remw;
static bool trans_remw(DisasContext *ctx, arg_remw *a);
typedef arg_r arg_remuw;
static bool trans_remuw(DisasContext *ctx, arg_remuw *a);
typedef arg_r arg_muld;
static bool trans_muld(DisasContext *ctx, arg_muld *a);
typedef arg_r arg_divd;
static bool trans_divd(DisasContext *ctx, arg_divd *a);
typedef arg_r arg_divud;
static bool trans_divud(DisasContext *ctx, arg_divud *a);
typedef arg_r arg_remd;
static bool trans_remd(DisasContext *ctx, arg_remd *a);
typedef arg_r arg_remud;
static bool trans_remud(DisasContext *ctx, arg_remud *a);
typedef arg_atomic arg_lr_w;
static bool trans_lr_w(DisasContext *ctx, arg_lr_w *a);
typedef arg_atomic arg_sc_w;
static bool trans_sc_w(DisasContext *ctx, arg_sc_w *a);
typedef arg_atomic arg_amoswap_w;
static bool trans_amoswap_w(DisasContext *ctx, arg_amoswap_w *a);
typedef arg_atomic arg_amoadd_w;
static bool trans_amoadd_w(DisasContext *ctx, arg_amoadd_w *a);
typedef arg_atomic arg_amoxor_w;
static bool trans_amoxor_w(DisasContext *ctx, arg_amoxor_w *a);
typedef arg_atomic arg_amoand_w;
static bool trans_amoand_w(DisasContext *ctx, arg_amoand_w *a);
typedef arg_atomic arg_amoor_w;
static bool trans_amoor_w(DisasContext *ctx, arg_amoor_w *a);
typedef arg_atomic arg_amomin_w;
static bool trans_amomin_w(DisasContext *ctx, arg_amomin_w *a);
typedef arg_atomic arg_amomax_w;
static bool trans_amomax_w(DisasContext *ctx, arg_amomax_w *a);
typedef arg_atomic arg_amominu_w;
static bool trans_amominu_w(DisasContext *ctx, arg_amominu_w *a);
typedef arg_atomic arg_amomaxu_w;
static bool trans_amomaxu_w(DisasContext *ctx, arg_amomaxu_w *a);
typedef arg_atomic arg_lr_d;
static bool trans_lr_d(DisasContext *ctx, arg_lr_d *a);
typedef arg_atomic arg_sc_d;
static bool trans_sc_d(DisasContext *ctx, arg_sc_d *a);
typedef arg_atomic arg_amoswap_d;
static bool trans_amoswap_d(DisasContext *ctx, arg_amoswap_d *a);
typedef arg_atomic arg_amoadd_d;
static bool trans_amoadd_d(DisasContext *ctx, arg_amoadd_d *a);
typedef arg_atomic arg_amoxor_d;
static bool trans_amoxor_d(DisasContext *ctx, arg_amoxor_d *a);
typedef arg_atomic arg_amoand_d;
static bool trans_amoand_d(DisasContext *ctx, arg_amoand_d *a);
typedef arg_atomic arg_amoor_d;
static bool trans_amoor_d(DisasContext *ctx, arg_amoor_d *a);
typedef arg_atomic arg_amomin_d;
static bool trans_amomin_d(DisasContext *ctx, arg_amomin_d *a);
typedef arg_atomic arg_amomax_d;
static bool trans_amomax_d(DisasContext *ctx, arg_amomax_d *a);
typedef arg_atomic arg_amominu_d;
static bool trans_amominu_d(DisasContext *ctx, arg_amominu_d *a);
typedef arg_atomic arg_amomaxu_d;
static bool trans_amomaxu_d(DisasContext *ctx, arg_amomaxu_d *a);
typedef arg_i arg_flw;
static bool trans_flw(DisasContext *ctx, arg_flw *a);
typedef arg_s arg_fsw;
static bool trans_fsw(DisasContext *ctx, arg_fsw *a);
typedef arg_decode_insn3217 arg_fmadd_s;
static bool trans_fmadd_s(DisasContext *ctx, arg_fmadd_s *a);
typedef arg_decode_insn3217 arg_fmsub_s;
static bool trans_fmsub_s(DisasContext *ctx, arg_fmsub_s *a);
typedef arg_decode_insn3217 arg_fnmsub_s;
static bool trans_fnmsub_s(DisasContext *ctx, arg_fnmsub_s *a);
typedef arg_decode_insn3217 arg_fnmadd_s;
static bool trans_fnmadd_s(DisasContext *ctx, arg_fnmadd_s *a);
typedef arg_decode_insn3218 arg_fadd_s;
static bool trans_fadd_s(DisasContext *ctx, arg_fadd_s *a);
typedef arg_decode_insn3218 arg_fsub_s;
static bool trans_fsub_s(DisasContext *ctx, arg_fsub_s *a);
typedef arg_decode_insn3218 arg_fmul_s;
static bool trans_fmul_s(DisasContext *ctx, arg_fmul_s *a);
typedef arg_decode_insn3218 arg_fdiv_s;
static bool trans_fdiv_s(DisasContext *ctx, arg_fdiv_s *a);
typedef arg_decode_insn3219 arg_fsqrt_s;
static bool trans_fsqrt_s(DisasContext *ctx, arg_fsqrt_s *a);
typedef arg_r arg_fsgnj_s;
static bool trans_fsgnj_s(DisasContext *ctx, arg_fsgnj_s *a);
typedef arg_r arg_fsgnjn_s;
static bool trans_fsgnjn_s(DisasContext *ctx, arg_fsgnjn_s *a);
typedef arg_r arg_fsgnjx_s;
static bool trans_fsgnjx_s(DisasContext *ctx, arg_fsgnjx_s *a);
typedef arg_r arg_fmin_s;
static bool trans_fmin_s(DisasContext *ctx, arg_fmin_s *a);
typedef arg_r arg_fmax_s;
static bool trans_fmax_s(DisasContext *ctx, arg_fmax_s *a);
typedef arg_decode_insn3219 arg_fcvt_w_s;
static bool trans_fcvt_w_s(DisasContext *ctx, arg_fcvt_w_s *a);
typedef arg_decode_insn3219 arg_fcvt_wu_s;
static bool trans_fcvt_wu_s(DisasContext *ctx, arg_fcvt_wu_s *a);
typedef arg_r2 arg_fmv_x_w;
static bool trans_fmv_x_w(DisasContext *ctx, arg_fmv_x_w *a);
typedef arg_r arg_feq_s;
static bool trans_feq_s(DisasContext *ctx, arg_feq_s *a);
typedef arg_r arg_flt_s;
static bool trans_flt_s(DisasContext *ctx, arg_flt_s *a);
typedef arg_r arg_fle_s;
static bool trans_fle_s(DisasContext *ctx, arg_fle_s *a);
typedef arg_r2 arg_fclass_s;
static bool trans_fclass_s(DisasContext *ctx, arg_fclass_s *a);
typedef arg_decode_insn3219 arg_fcvt_s_w;
static bool trans_fcvt_s_w(DisasContext *ctx, arg_fcvt_s_w *a);
typedef arg_decode_insn3219 arg_fcvt_s_wu;
static bool trans_fcvt_s_wu(DisasContext *ctx, arg_fcvt_s_wu *a);
typedef arg_r2 arg_fmv_w_x;
static bool trans_fmv_w_x(DisasContext *ctx, arg_fmv_w_x *a);
typedef arg_decode_insn3219 arg_fcvt_l_s;
static bool trans_fcvt_l_s(DisasContext *ctx, arg_fcvt_l_s *a);
typedef arg_decode_insn3219 arg_fcvt_lu_s;
static bool trans_fcvt_lu_s(DisasContext *ctx, arg_fcvt_lu_s *a);
typedef arg_decode_insn3219 arg_fcvt_s_l;
static bool trans_fcvt_s_l(DisasContext *ctx, arg_fcvt_s_l *a);
typedef arg_decode_insn3219 arg_fcvt_s_lu;
static bool trans_fcvt_s_lu(DisasContext *ctx, arg_fcvt_s_lu *a);
typedef arg_i arg_fld;
static bool trans_fld(DisasContext *ctx, arg_fld *a);
typedef arg_s arg_fsd;
static bool trans_fsd(DisasContext *ctx, arg_fsd *a);
typedef arg_decode_insn3217 arg_fmadd_d;
static bool trans_fmadd_d(DisasContext *ctx, arg_fmadd_d *a);
typedef arg_decode_insn3217 arg_fmsub_d;
static bool trans_fmsub_d(DisasContext *ctx, arg_fmsub_d *a);
typedef arg_decode_insn3217 arg_fnmsub_d;
static bool trans_fnmsub_d(DisasContext *ctx, arg_fnmsub_d *a);
typedef arg_decode_insn3217 arg_fnmadd_d;
static bool trans_fnmadd_d(DisasContext *ctx, arg_fnmadd_d *a);
typedef arg_decode_insn3218 arg_fadd_d;
static bool trans_fadd_d(DisasContext *ctx, arg_fadd_d *a);
typedef arg_decode_insn3218 arg_fsub_d;
static bool trans_fsub_d(DisasContext *ctx, arg_fsub_d *a);
typedef arg_decode_insn3218 arg_fmul_d;
static bool trans_fmul_d(DisasContext *ctx, arg_fmul_d *a);
typedef arg_decode_insn3218 arg_fdiv_d;
static bool trans_fdiv_d(DisasContext *ctx, arg_fdiv_d *a);
typedef arg_decode_insn3219 arg_fsqrt_d;
static bool trans_fsqrt_d(DisasContext *ctx, arg_fsqrt_d *a);
typedef arg_r arg_fsgnj_d;
static bool trans_fsgnj_d(DisasContext *ctx, arg_fsgnj_d *a);
typedef arg_r arg_fsgnjn_d;
static bool trans_fsgnjn_d(DisasContext *ctx, arg_fsgnjn_d *a);
typedef arg_r arg_fsgnjx_d;
static bool trans_fsgnjx_d(DisasContext *ctx, arg_fsgnjx_d *a);
typedef arg_r arg_fmin_d;
static bool trans_fmin_d(DisasContext *ctx, arg_fmin_d *a);
typedef arg_r arg_fmax_d;
static bool trans_fmax_d(DisasContext *ctx, arg_fmax_d *a);
typedef arg_decode_insn3219 arg_fcvt_s_d;
static bool trans_fcvt_s_d(DisasContext *ctx, arg_fcvt_s_d *a);
typedef arg_decode_insn3219 arg_fcvt_d_s;
static bool trans_fcvt_d_s(DisasContext *ctx, arg_fcvt_d_s *a);
typedef arg_r arg_feq_d;
static bool trans_feq_d(DisasContext *ctx, arg_feq_d *a);
typedef arg_r arg_flt_d;
static bool trans_flt_d(DisasContext *ctx, arg_flt_d *a);
typedef arg_r arg_fle_d;
static bool trans_fle_d(DisasContext *ctx, arg_fle_d *a);
typedef arg_r2 arg_fclass_d;
static bool trans_fclass_d(DisasContext *ctx, arg_fclass_d *a);
typedef arg_decode_insn3219 arg_fcvt_w_d;
static bool trans_fcvt_w_d(DisasContext *ctx, arg_fcvt_w_d *a);
typedef arg_decode_insn3219 arg_fcvt_wu_d;
static bool trans_fcvt_wu_d(DisasContext *ctx, arg_fcvt_wu_d *a);
typedef arg_decode_insn3219 arg_fcvt_d_w;
static bool trans_fcvt_d_w(DisasContext *ctx, arg_fcvt_d_w *a);
typedef arg_decode_insn3219 arg_fcvt_d_wu;
static bool trans_fcvt_d_wu(DisasContext *ctx, arg_fcvt_d_wu *a);
typedef arg_decode_insn3219 arg_fcvt_l_d;
static bool trans_fcvt_l_d(DisasContext *ctx, arg_fcvt_l_d *a);
typedef arg_decode_insn3219 arg_fcvt_lu_d;
static bool trans_fcvt_lu_d(DisasContext *ctx, arg_fcvt_lu_d *a);
typedef arg_r2 arg_fmv_x_d;
static bool trans_fmv_x_d(DisasContext *ctx, arg_fmv_x_d *a);
typedef arg_decode_insn3219 arg_fcvt_d_l;
static bool trans_fcvt_d_l(DisasContext *ctx, arg_fcvt_d_l *a);
typedef arg_decode_insn3219 arg_fcvt_d_lu;
static bool trans_fcvt_d_lu(DisasContext *ctx, arg_fcvt_d_lu *a);
typedef arg_r2 arg_fmv_d_x;
static bool trans_fmv_d_x(DisasContext *ctx, arg_fmv_d_x *a);
typedef arg_r2 arg_hlv_b;
static bool trans_hlv_b(DisasContext *ctx, arg_hlv_b *a);
typedef arg_r2 arg_hlv_bu;
static bool trans_hlv_bu(DisasContext *ctx, arg_hlv_bu *a);
typedef arg_r2 arg_hlv_h;
static bool trans_hlv_h(DisasContext *ctx, arg_hlv_h *a);
typedef arg_r2 arg_hlv_hu;
static bool trans_hlv_hu(DisasContext *ctx, arg_hlv_hu *a);
typedef arg_r2 arg_hlvx_hu;
static bool trans_hlvx_hu(DisasContext *ctx, arg_hlvx_hu *a);
typedef arg_r2 arg_hlv_w;
static bool trans_hlv_w(DisasContext *ctx, arg_hlv_w *a);
typedef arg_r2 arg_hlvx_wu;
static bool trans_hlvx_wu(DisasContext *ctx, arg_hlvx_wu *a);
typedef arg_r2_s arg_hsv_b;
static bool trans_hsv_b(DisasContext *ctx, arg_hsv_b *a);
typedef arg_r2_s arg_hsv_h;
static bool trans_hsv_h(DisasContext *ctx, arg_hsv_h *a);
typedef arg_r2_s arg_hsv_w;
static bool trans_hsv_w(DisasContext *ctx, arg_hsv_w *a);
typedef arg_r2_s arg_hfence_gvma;
static bool trans_hfence_gvma(DisasContext *ctx, arg_hfence_gvma *a);
typedef arg_r2_s arg_hfence_vvma;
static bool trans_hfence_vvma(DisasContext *ctx, arg_hfence_vvma *a);
typedef arg_r2 arg_hlv_wu;
static bool trans_hlv_wu(DisasContext *ctx, arg_hlv_wu *a);
typedef arg_r2 arg_hlv_d;
static bool trans_hlv_d(DisasContext *ctx, arg_hlv_d *a);
typedef arg_r2_s arg_hsv_d;
static bool trans_hsv_d(DisasContext *ctx, arg_hsv_d *a);
typedef arg_r2nfvm arg_vle8_v;
static bool trans_vle8_v(DisasContext *ctx, arg_vle8_v *a);
typedef arg_r2nfvm arg_vle16_v;
static bool trans_vle16_v(DisasContext *ctx, arg_vle16_v *a);
typedef arg_r2nfvm arg_vle32_v;
static bool trans_vle32_v(DisasContext *ctx, arg_vle32_v *a);
typedef arg_r2nfvm arg_vle64_v;
static bool trans_vle64_v(DisasContext *ctx, arg_vle64_v *a);
typedef arg_r2nfvm arg_vse8_v;
static bool trans_vse8_v(DisasContext *ctx, arg_vse8_v *a);
typedef arg_r2nfvm arg_vse16_v;
static bool trans_vse16_v(DisasContext *ctx, arg_vse16_v *a);
typedef arg_r2nfvm arg_vse32_v;
static bool trans_vse32_v(DisasContext *ctx, arg_vse32_v *a);
typedef arg_r2nfvm arg_vse64_v;
static bool trans_vse64_v(DisasContext *ctx, arg_vse64_v *a);
typedef arg_r2 arg_vlm_v;
static bool trans_vlm_v(DisasContext *ctx, arg_vlm_v *a);
typedef arg_r2 arg_vsm_v;
static bool trans_vsm_v(DisasContext *ctx, arg_vsm_v *a);
typedef arg_rnfvm arg_vlse8_v;
static bool trans_vlse8_v(DisasContext *ctx, arg_vlse8_v *a);
typedef arg_rnfvm arg_vlse16_v;
static bool trans_vlse16_v(DisasContext *ctx, arg_vlse16_v *a);
typedef arg_rnfvm arg_vlse32_v;
static bool trans_vlse32_v(DisasContext *ctx, arg_vlse32_v *a);
typedef arg_rnfvm arg_vlse64_v;
static bool trans_vlse64_v(DisasContext *ctx, arg_vlse64_v *a);
typedef arg_rnfvm arg_vsse8_v;
static bool trans_vsse8_v(DisasContext *ctx, arg_vsse8_v *a);
typedef arg_rnfvm arg_vsse16_v;
static bool trans_vsse16_v(DisasContext *ctx, arg_vsse16_v *a);
typedef arg_rnfvm arg_vsse32_v;
static bool trans_vsse32_v(DisasContext *ctx, arg_vsse32_v *a);
typedef arg_rnfvm arg_vsse64_v;
static bool trans_vsse64_v(DisasContext *ctx, arg_vsse64_v *a);
typedef arg_rnfvm arg_vlxei8_v;
static bool trans_vlxei8_v(DisasContext *ctx, arg_vlxei8_v *a);
typedef arg_rnfvm arg_vlxei16_v;
static bool trans_vlxei16_v(DisasContext *ctx, arg_vlxei16_v *a);
typedef arg_rnfvm arg_vlxei32_v;
static bool trans_vlxei32_v(DisasContext *ctx, arg_vlxei32_v *a);
typedef arg_rnfvm arg_vlxei64_v;
static bool trans_vlxei64_v(DisasContext *ctx, arg_vlxei64_v *a);
typedef arg_rnfvm arg_vsxei8_v;
static bool trans_vsxei8_v(DisasContext *ctx, arg_vsxei8_v *a);
typedef arg_rnfvm arg_vsxei16_v;
static bool trans_vsxei16_v(DisasContext *ctx, arg_vsxei16_v *a);
typedef arg_rnfvm arg_vsxei32_v;
static bool trans_vsxei32_v(DisasContext *ctx, arg_vsxei32_v *a);
typedef arg_rnfvm arg_vsxei64_v;
static bool trans_vsxei64_v(DisasContext *ctx, arg_vsxei64_v *a);
typedef arg_r2nfvm arg_vle8ff_v;
static bool trans_vle8ff_v(DisasContext *ctx, arg_vle8ff_v *a);
typedef arg_r2nfvm arg_vle16ff_v;
static bool trans_vle16ff_v(DisasContext *ctx, arg_vle16ff_v *a);
typedef arg_r2nfvm arg_vle32ff_v;
static bool trans_vle32ff_v(DisasContext *ctx, arg_vle32ff_v *a);
typedef arg_r2nfvm arg_vle64ff_v;
static bool trans_vle64ff_v(DisasContext *ctx, arg_vle64ff_v *a);
typedef arg_r2 arg_vl1re8_v;
static bool trans_vl1re8_v(DisasContext *ctx, arg_vl1re8_v *a);
typedef arg_r2 arg_vl1re16_v;
static bool trans_vl1re16_v(DisasContext *ctx, arg_vl1re16_v *a);
typedef arg_r2 arg_vl1re32_v;
static bool trans_vl1re32_v(DisasContext *ctx, arg_vl1re32_v *a);
typedef arg_r2 arg_vl1re64_v;
static bool trans_vl1re64_v(DisasContext *ctx, arg_vl1re64_v *a);
typedef arg_r2 arg_vl2re8_v;
static bool trans_vl2re8_v(DisasContext *ctx, arg_vl2re8_v *a);
typedef arg_r2 arg_vl2re16_v;
static bool trans_vl2re16_v(DisasContext *ctx, arg_vl2re16_v *a);
typedef arg_r2 arg_vl2re32_v;
static bool trans_vl2re32_v(DisasContext *ctx, arg_vl2re32_v *a);
typedef arg_r2 arg_vl2re64_v;
static bool trans_vl2re64_v(DisasContext *ctx, arg_vl2re64_v *a);
typedef arg_r2 arg_vl4re8_v;
static bool trans_vl4re8_v(DisasContext *ctx, arg_vl4re8_v *a);
typedef arg_r2 arg_vl4re16_v;
static bool trans_vl4re16_v(DisasContext *ctx, arg_vl4re16_v *a);
typedef arg_r2 arg_vl4re32_v;
static bool trans_vl4re32_v(DisasContext *ctx, arg_vl4re32_v *a);
typedef arg_r2 arg_vl4re64_v;
static bool trans_vl4re64_v(DisasContext *ctx, arg_vl4re64_v *a);
typedef arg_r2 arg_vl8re8_v;
static bool trans_vl8re8_v(DisasContext *ctx, arg_vl8re8_v *a);
typedef arg_r2 arg_vl8re16_v;
static bool trans_vl8re16_v(DisasContext *ctx, arg_vl8re16_v *a);
typedef arg_r2 arg_vl8re32_v;
static bool trans_vl8re32_v(DisasContext *ctx, arg_vl8re32_v *a);
typedef arg_r2 arg_vl8re64_v;
static bool trans_vl8re64_v(DisasContext *ctx, arg_vl8re64_v *a);
typedef arg_r2 arg_vs1r_v;
static bool trans_vs1r_v(DisasContext *ctx, arg_vs1r_v *a);
typedef arg_r2 arg_vs2r_v;
static bool trans_vs2r_v(DisasContext *ctx, arg_vs2r_v *a);
typedef arg_r2 arg_vs4r_v;
static bool trans_vs4r_v(DisasContext *ctx, arg_vs4r_v *a);
typedef arg_r2 arg_vs8r_v;
static bool trans_vs8r_v(DisasContext *ctx, arg_vs8r_v *a);
typedef arg_rmrr arg_vadd_vv;
static bool trans_vadd_vv(DisasContext *ctx, arg_vadd_vv *a);
typedef arg_rmrr arg_vadd_vx;
static bool trans_vadd_vx(DisasContext *ctx, arg_vadd_vx *a);
typedef arg_rmrr arg_vadd_vi;
static bool trans_vadd_vi(DisasContext *ctx, arg_vadd_vi *a);
typedef arg_rmrr arg_vsub_vv;
static bool trans_vsub_vv(DisasContext *ctx, arg_vsub_vv *a);
typedef arg_rmrr arg_vsub_vx;
static bool trans_vsub_vx(DisasContext *ctx, arg_vsub_vx *a);
typedef arg_rmrr arg_vrsub_vx;
static bool trans_vrsub_vx(DisasContext *ctx, arg_vrsub_vx *a);
typedef arg_rmrr arg_vrsub_vi;
static bool trans_vrsub_vi(DisasContext *ctx, arg_vrsub_vi *a);
typedef arg_rmrr arg_vwaddu_vv;
static bool trans_vwaddu_vv(DisasContext *ctx, arg_vwaddu_vv *a);
typedef arg_rmrr arg_vwaddu_vx;
static bool trans_vwaddu_vx(DisasContext *ctx, arg_vwaddu_vx *a);
typedef arg_rmrr arg_vwadd_vv;
static bool trans_vwadd_vv(DisasContext *ctx, arg_vwadd_vv *a);
typedef arg_rmrr arg_vwadd_vx;
static bool trans_vwadd_vx(DisasContext *ctx, arg_vwadd_vx *a);
typedef arg_rmrr arg_vwsubu_vv;
static bool trans_vwsubu_vv(DisasContext *ctx, arg_vwsubu_vv *a);
typedef arg_rmrr arg_vwsubu_vx;
static bool trans_vwsubu_vx(DisasContext *ctx, arg_vwsubu_vx *a);
typedef arg_rmrr arg_vwsub_vv;
static bool trans_vwsub_vv(DisasContext *ctx, arg_vwsub_vv *a);
typedef arg_rmrr arg_vwsub_vx;
static bool trans_vwsub_vx(DisasContext *ctx, arg_vwsub_vx *a);
typedef arg_rmrr arg_vwaddu_wv;
static bool trans_vwaddu_wv(DisasContext *ctx, arg_vwaddu_wv *a);
typedef arg_rmrr arg_vwaddu_wx;
static bool trans_vwaddu_wx(DisasContext *ctx, arg_vwaddu_wx *a);
typedef arg_rmrr arg_vwadd_wv;
static bool trans_vwadd_wv(DisasContext *ctx, arg_vwadd_wv *a);
typedef arg_rmrr arg_vwadd_wx;
static bool trans_vwadd_wx(DisasContext *ctx, arg_vwadd_wx *a);
typedef arg_rmrr arg_vwsubu_wv;
static bool trans_vwsubu_wv(DisasContext *ctx, arg_vwsubu_wv *a);
typedef arg_rmrr arg_vwsubu_wx;
static bool trans_vwsubu_wx(DisasContext *ctx, arg_vwsubu_wx *a);
typedef arg_rmrr arg_vwsub_wv;
static bool trans_vwsub_wv(DisasContext *ctx, arg_vwsub_wv *a);
typedef arg_rmrr arg_vwsub_wx;
static bool trans_vwsub_wx(DisasContext *ctx, arg_vwsub_wx *a);
typedef arg_rmrr arg_vadc_vvm;
static bool trans_vadc_vvm(DisasContext *ctx, arg_vadc_vvm *a);
typedef arg_rmrr arg_vadc_vxm;
static bool trans_vadc_vxm(DisasContext *ctx, arg_vadc_vxm *a);
typedef arg_rmrr arg_vadc_vim;
static bool trans_vadc_vim(DisasContext *ctx, arg_vadc_vim *a);
typedef arg_rmrr arg_vmadc_vvm;
static bool trans_vmadc_vvm(DisasContext *ctx, arg_vmadc_vvm *a);
typedef arg_rmrr arg_vmadc_vxm;
static bool trans_vmadc_vxm(DisasContext *ctx, arg_vmadc_vxm *a);
typedef arg_rmrr arg_vmadc_vim;
static bool trans_vmadc_vim(DisasContext *ctx, arg_vmadc_vim *a);
typedef arg_rmrr arg_vsbc_vvm;
static bool trans_vsbc_vvm(DisasContext *ctx, arg_vsbc_vvm *a);
typedef arg_rmrr arg_vsbc_vxm;
static bool trans_vsbc_vxm(DisasContext *ctx, arg_vsbc_vxm *a);
typedef arg_rmrr arg_vmsbc_vvm;
static bool trans_vmsbc_vvm(DisasContext *ctx, arg_vmsbc_vvm *a);
typedef arg_rmrr arg_vmsbc_vxm;
static bool trans_vmsbc_vxm(DisasContext *ctx, arg_vmsbc_vxm *a);
typedef arg_rmrr arg_vand_vv;
static bool trans_vand_vv(DisasContext *ctx, arg_vand_vv *a);
typedef arg_rmrr arg_vand_vx;
static bool trans_vand_vx(DisasContext *ctx, arg_vand_vx *a);
typedef arg_rmrr arg_vand_vi;
static bool trans_vand_vi(DisasContext *ctx, arg_vand_vi *a);
typedef arg_rmrr arg_vor_vv;
static bool trans_vor_vv(DisasContext *ctx, arg_vor_vv *a);
typedef arg_rmrr arg_vor_vx;
static bool trans_vor_vx(DisasContext *ctx, arg_vor_vx *a);
typedef arg_rmrr arg_vor_vi;
static bool trans_vor_vi(DisasContext *ctx, arg_vor_vi *a);
typedef arg_rmrr arg_vxor_vv;
static bool trans_vxor_vv(DisasContext *ctx, arg_vxor_vv *a);
typedef arg_rmrr arg_vxor_vx;
static bool trans_vxor_vx(DisasContext *ctx, arg_vxor_vx *a);
typedef arg_rmrr arg_vxor_vi;
static bool trans_vxor_vi(DisasContext *ctx, arg_vxor_vi *a);
typedef arg_rmrr arg_vsll_vv;
static bool trans_vsll_vv(DisasContext *ctx, arg_vsll_vv *a);
typedef arg_rmrr arg_vsll_vx;
static bool trans_vsll_vx(DisasContext *ctx, arg_vsll_vx *a);
typedef arg_rmrr arg_vsll_vi;
static bool trans_vsll_vi(DisasContext *ctx, arg_vsll_vi *a);
typedef arg_rmrr arg_vsrl_vv;
static bool trans_vsrl_vv(DisasContext *ctx, arg_vsrl_vv *a);
typedef arg_rmrr arg_vsrl_vx;
static bool trans_vsrl_vx(DisasContext *ctx, arg_vsrl_vx *a);
typedef arg_rmrr arg_vsrl_vi;
static bool trans_vsrl_vi(DisasContext *ctx, arg_vsrl_vi *a);
typedef arg_rmrr arg_vsra_vv;
static bool trans_vsra_vv(DisasContext *ctx, arg_vsra_vv *a);
typedef arg_rmrr arg_vsra_vx;
static bool trans_vsra_vx(DisasContext *ctx, arg_vsra_vx *a);
typedef arg_rmrr arg_vsra_vi;
static bool trans_vsra_vi(DisasContext *ctx, arg_vsra_vi *a);
typedef arg_rmrr arg_vnsrl_wv;
static bool trans_vnsrl_wv(DisasContext *ctx, arg_vnsrl_wv *a);
typedef arg_rmrr arg_vnsrl_wx;
static bool trans_vnsrl_wx(DisasContext *ctx, arg_vnsrl_wx *a);
typedef arg_rmrr arg_vnsrl_wi;
static bool trans_vnsrl_wi(DisasContext *ctx, arg_vnsrl_wi *a);
typedef arg_rmrr arg_vnsra_wv;
static bool trans_vnsra_wv(DisasContext *ctx, arg_vnsra_wv *a);
typedef arg_rmrr arg_vnsra_wx;
static bool trans_vnsra_wx(DisasContext *ctx, arg_vnsra_wx *a);
typedef arg_rmrr arg_vnsra_wi;
static bool trans_vnsra_wi(DisasContext *ctx, arg_vnsra_wi *a);
typedef arg_rmrr arg_vmseq_vv;
static bool trans_vmseq_vv(DisasContext *ctx, arg_vmseq_vv *a);
typedef arg_rmrr arg_vmseq_vx;
static bool trans_vmseq_vx(DisasContext *ctx, arg_vmseq_vx *a);
typedef arg_rmrr arg_vmseq_vi;
static bool trans_vmseq_vi(DisasContext *ctx, arg_vmseq_vi *a);
typedef arg_rmrr arg_vmsne_vv;
static bool trans_vmsne_vv(DisasContext *ctx, arg_vmsne_vv *a);
typedef arg_rmrr arg_vmsne_vx;
static bool trans_vmsne_vx(DisasContext *ctx, arg_vmsne_vx *a);
typedef arg_rmrr arg_vmsne_vi;
static bool trans_vmsne_vi(DisasContext *ctx, arg_vmsne_vi *a);
typedef arg_rmrr arg_vmsltu_vv;
static bool trans_vmsltu_vv(DisasContext *ctx, arg_vmsltu_vv *a);
typedef arg_rmrr arg_vmsltu_vx;
static bool trans_vmsltu_vx(DisasContext *ctx, arg_vmsltu_vx *a);
typedef arg_rmrr arg_vmslt_vv;
static bool trans_vmslt_vv(DisasContext *ctx, arg_vmslt_vv *a);
typedef arg_rmrr arg_vmslt_vx;
static bool trans_vmslt_vx(DisasContext *ctx, arg_vmslt_vx *a);
typedef arg_rmrr arg_vmsleu_vv;
static bool trans_vmsleu_vv(DisasContext *ctx, arg_vmsleu_vv *a);
typedef arg_rmrr arg_vmsleu_vx;
static bool trans_vmsleu_vx(DisasContext *ctx, arg_vmsleu_vx *a);
typedef arg_rmrr arg_vmsleu_vi;
static bool trans_vmsleu_vi(DisasContext *ctx, arg_vmsleu_vi *a);
typedef arg_rmrr arg_vmsle_vv;
static bool trans_vmsle_vv(DisasContext *ctx, arg_vmsle_vv *a);
typedef arg_rmrr arg_vmsle_vx;
static bool trans_vmsle_vx(DisasContext *ctx, arg_vmsle_vx *a);
typedef arg_rmrr arg_vmsle_vi;
static bool trans_vmsle_vi(DisasContext *ctx, arg_vmsle_vi *a);
typedef arg_rmrr arg_vmsgtu_vx;
static bool trans_vmsgtu_vx(DisasContext *ctx, arg_vmsgtu_vx *a);
typedef arg_rmrr arg_vmsgtu_vi;
static bool trans_vmsgtu_vi(DisasContext *ctx, arg_vmsgtu_vi *a);
typedef arg_rmrr arg_vmsgt_vx;
static bool trans_vmsgt_vx(DisasContext *ctx, arg_vmsgt_vx *a);
typedef arg_rmrr arg_vmsgt_vi;
static bool trans_vmsgt_vi(DisasContext *ctx, arg_vmsgt_vi *a);
typedef arg_rmrr arg_vminu_vv;
static bool trans_vminu_vv(DisasContext *ctx, arg_vminu_vv *a);
typedef arg_rmrr arg_vminu_vx;
static bool trans_vminu_vx(DisasContext *ctx, arg_vminu_vx *a);
typedef arg_rmrr arg_vmin_vv;
static bool trans_vmin_vv(DisasContext *ctx, arg_vmin_vv *a);
typedef arg_rmrr arg_vmin_vx;
static bool trans_vmin_vx(DisasContext *ctx, arg_vmin_vx *a);
typedef arg_rmrr arg_vmaxu_vv;
static bool trans_vmaxu_vv(DisasContext *ctx, arg_vmaxu_vv *a);
typedef arg_rmrr arg_vmaxu_vx;
static bool trans_vmaxu_vx(DisasContext *ctx, arg_vmaxu_vx *a);
typedef arg_rmrr arg_vmax_vv;
static bool trans_vmax_vv(DisasContext *ctx, arg_vmax_vv *a);
typedef arg_rmrr arg_vmax_vx;
static bool trans_vmax_vx(DisasContext *ctx, arg_vmax_vx *a);
typedef arg_rmrr arg_vmul_vv;
static bool trans_vmul_vv(DisasContext *ctx, arg_vmul_vv *a);
typedef arg_rmrr arg_vmul_vx;
static bool trans_vmul_vx(DisasContext *ctx, arg_vmul_vx *a);
typedef arg_rmrr arg_vmulh_vv;
static bool trans_vmulh_vv(DisasContext *ctx, arg_vmulh_vv *a);
typedef arg_rmrr arg_vmulh_vx;
static bool trans_vmulh_vx(DisasContext *ctx, arg_vmulh_vx *a);
typedef arg_rmrr arg_vmulhu_vv;
static bool trans_vmulhu_vv(DisasContext *ctx, arg_vmulhu_vv *a);
typedef arg_rmrr arg_vmulhu_vx;
static bool trans_vmulhu_vx(DisasContext *ctx, arg_vmulhu_vx *a);
typedef arg_rmrr arg_vmulhsu_vv;
static bool trans_vmulhsu_vv(DisasContext *ctx, arg_vmulhsu_vv *a);
typedef arg_rmrr arg_vmulhsu_vx;
static bool trans_vmulhsu_vx(DisasContext *ctx, arg_vmulhsu_vx *a);
typedef arg_rmrr arg_vdivu_vv;
static bool trans_vdivu_vv(DisasContext *ctx, arg_vdivu_vv *a);
typedef arg_rmrr arg_vdivu_vx;
static bool trans_vdivu_vx(DisasContext *ctx, arg_vdivu_vx *a);
typedef arg_rmrr arg_vdiv_vv;
static bool trans_vdiv_vv(DisasContext *ctx, arg_vdiv_vv *a);
typedef arg_rmrr arg_vdiv_vx;
static bool trans_vdiv_vx(DisasContext *ctx, arg_vdiv_vx *a);
typedef arg_rmrr arg_vremu_vv;
static bool trans_vremu_vv(DisasContext *ctx, arg_vremu_vv *a);
typedef arg_rmrr arg_vremu_vx;
static bool trans_vremu_vx(DisasContext *ctx, arg_vremu_vx *a);
typedef arg_rmrr arg_vrem_vv;
static bool trans_vrem_vv(DisasContext *ctx, arg_vrem_vv *a);
typedef arg_rmrr arg_vrem_vx;
static bool trans_vrem_vx(DisasContext *ctx, arg_vrem_vx *a);
typedef arg_rmrr arg_vwmulu_vv;
static bool trans_vwmulu_vv(DisasContext *ctx, arg_vwmulu_vv *a);
typedef arg_rmrr arg_vwmulu_vx;
static bool trans_vwmulu_vx(DisasContext *ctx, arg_vwmulu_vx *a);
typedef arg_rmrr arg_vwmulsu_vv;
static bool trans_vwmulsu_vv(DisasContext *ctx, arg_vwmulsu_vv *a);
typedef arg_rmrr arg_vwmulsu_vx;
static bool trans_vwmulsu_vx(DisasContext *ctx, arg_vwmulsu_vx *a);
typedef arg_rmrr arg_vwmul_vv;
static bool trans_vwmul_vv(DisasContext *ctx, arg_vwmul_vv *a);
typedef arg_rmrr arg_vwmul_vx;
static bool trans_vwmul_vx(DisasContext *ctx, arg_vwmul_vx *a);
typedef arg_rmrr arg_vmacc_vv;
static bool trans_vmacc_vv(DisasContext *ctx, arg_vmacc_vv *a);
typedef arg_rmrr arg_vmacc_vx;
static bool trans_vmacc_vx(DisasContext *ctx, arg_vmacc_vx *a);
typedef arg_rmrr arg_vnmsac_vv;
static bool trans_vnmsac_vv(DisasContext *ctx, arg_vnmsac_vv *a);
typedef arg_rmrr arg_vnmsac_vx;
static bool trans_vnmsac_vx(DisasContext *ctx, arg_vnmsac_vx *a);
typedef arg_rmrr arg_vmadd_vv;
static bool trans_vmadd_vv(DisasContext *ctx, arg_vmadd_vv *a);
typedef arg_rmrr arg_vmadd_vx;
static bool trans_vmadd_vx(DisasContext *ctx, arg_vmadd_vx *a);
typedef arg_rmrr arg_vnmsub_vv;
static bool trans_vnmsub_vv(DisasContext *ctx, arg_vnmsub_vv *a);
typedef arg_rmrr arg_vnmsub_vx;
static bool trans_vnmsub_vx(DisasContext *ctx, arg_vnmsub_vx *a);
typedef arg_rmrr arg_vwmaccu_vv;
static bool trans_vwmaccu_vv(DisasContext *ctx, arg_vwmaccu_vv *a);
typedef arg_rmrr arg_vwmaccu_vx;
static bool trans_vwmaccu_vx(DisasContext *ctx, arg_vwmaccu_vx *a);
typedef arg_rmrr arg_vwmacc_vv;
static bool trans_vwmacc_vv(DisasContext *ctx, arg_vwmacc_vv *a);
typedef arg_rmrr arg_vwmacc_vx;
static bool trans_vwmacc_vx(DisasContext *ctx, arg_vwmacc_vx *a);
typedef arg_rmrr arg_vwmaccsu_vv;
static bool trans_vwmaccsu_vv(DisasContext *ctx, arg_vwmaccsu_vv *a);
typedef arg_rmrr arg_vwmaccsu_vx;
static bool trans_vwmaccsu_vx(DisasContext *ctx, arg_vwmaccsu_vx *a);
typedef arg_rmrr arg_vwmaccus_vx;
static bool trans_vwmaccus_vx(DisasContext *ctx, arg_vwmaccus_vx *a);
typedef arg_r2 arg_vmv_v_v;
static bool trans_vmv_v_v(DisasContext *ctx, arg_vmv_v_v *a);
typedef arg_r2 arg_vmv_v_x;
static bool trans_vmv_v_x(DisasContext *ctx, arg_vmv_v_x *a);
typedef arg_r2 arg_vmv_v_i;
static bool trans_vmv_v_i(DisasContext *ctx, arg_vmv_v_i *a);
typedef arg_rmrr arg_vmerge_vvm;
static bool trans_vmerge_vvm(DisasContext *ctx, arg_vmerge_vvm *a);
typedef arg_rmrr arg_vmerge_vxm;
static bool trans_vmerge_vxm(DisasContext *ctx, arg_vmerge_vxm *a);
typedef arg_rmrr arg_vmerge_vim;
static bool trans_vmerge_vim(DisasContext *ctx, arg_vmerge_vim *a);
typedef arg_rmrr arg_vsaddu_vv;
static bool trans_vsaddu_vv(DisasContext *ctx, arg_vsaddu_vv *a);
typedef arg_rmrr arg_vsaddu_vx;
static bool trans_vsaddu_vx(DisasContext *ctx, arg_vsaddu_vx *a);
typedef arg_rmrr arg_vsaddu_vi;
static bool trans_vsaddu_vi(DisasContext *ctx, arg_vsaddu_vi *a);
typedef arg_rmrr arg_vsadd_vv;
static bool trans_vsadd_vv(DisasContext *ctx, arg_vsadd_vv *a);
typedef arg_rmrr arg_vsadd_vx;
static bool trans_vsadd_vx(DisasContext *ctx, arg_vsadd_vx *a);
typedef arg_rmrr arg_vsadd_vi;
static bool trans_vsadd_vi(DisasContext *ctx, arg_vsadd_vi *a);
typedef arg_rmrr arg_vssubu_vv;
static bool trans_vssubu_vv(DisasContext *ctx, arg_vssubu_vv *a);
typedef arg_rmrr arg_vssubu_vx;
static bool trans_vssubu_vx(DisasContext *ctx, arg_vssubu_vx *a);
typedef arg_rmrr arg_vssub_vv;
static bool trans_vssub_vv(DisasContext *ctx, arg_vssub_vv *a);
typedef arg_rmrr arg_vssub_vx;
static bool trans_vssub_vx(DisasContext *ctx, arg_vssub_vx *a);
typedef arg_rmrr arg_vaadd_vv;
static bool trans_vaadd_vv(DisasContext *ctx, arg_vaadd_vv *a);
typedef arg_rmrr arg_vaadd_vx;
static bool trans_vaadd_vx(DisasContext *ctx, arg_vaadd_vx *a);
typedef arg_rmrr arg_vaaddu_vv;
static bool trans_vaaddu_vv(DisasContext *ctx, arg_vaaddu_vv *a);
typedef arg_rmrr arg_vaaddu_vx;
static bool trans_vaaddu_vx(DisasContext *ctx, arg_vaaddu_vx *a);
typedef arg_rmrr arg_vasub_vv;
static bool trans_vasub_vv(DisasContext *ctx, arg_vasub_vv *a);
typedef arg_rmrr arg_vasub_vx;
static bool trans_vasub_vx(DisasContext *ctx, arg_vasub_vx *a);
typedef arg_rmrr arg_vasubu_vv;
static bool trans_vasubu_vv(DisasContext *ctx, arg_vasubu_vv *a);
typedef arg_rmrr arg_vasubu_vx;
static bool trans_vasubu_vx(DisasContext *ctx, arg_vasubu_vx *a);
typedef arg_rmrr arg_vsmul_vv;
static bool trans_vsmul_vv(DisasContext *ctx, arg_vsmul_vv *a);
typedef arg_rmrr arg_vsmul_vx;
static bool trans_vsmul_vx(DisasContext *ctx, arg_vsmul_vx *a);
typedef arg_rmrr arg_vssrl_vv;
static bool trans_vssrl_vv(DisasContext *ctx, arg_vssrl_vv *a);
typedef arg_rmrr arg_vssrl_vx;
static bool trans_vssrl_vx(DisasContext *ctx, arg_vssrl_vx *a);
typedef arg_rmrr arg_vssrl_vi;
static bool trans_vssrl_vi(DisasContext *ctx, arg_vssrl_vi *a);
typedef arg_rmrr arg_vssra_vv;
static bool trans_vssra_vv(DisasContext *ctx, arg_vssra_vv *a);
typedef arg_rmrr arg_vssra_vx;
static bool trans_vssra_vx(DisasContext *ctx, arg_vssra_vx *a);
typedef arg_rmrr arg_vssra_vi;
static bool trans_vssra_vi(DisasContext *ctx, arg_vssra_vi *a);
typedef arg_rmrr arg_vnclipu_wv;
static bool trans_vnclipu_wv(DisasContext *ctx, arg_vnclipu_wv *a);
typedef arg_rmrr arg_vnclipu_wx;
static bool trans_vnclipu_wx(DisasContext *ctx, arg_vnclipu_wx *a);
typedef arg_rmrr arg_vnclipu_wi;
static bool trans_vnclipu_wi(DisasContext *ctx, arg_vnclipu_wi *a);
typedef arg_rmrr arg_vnclip_wv;
static bool trans_vnclip_wv(DisasContext *ctx, arg_vnclip_wv *a);
typedef arg_rmrr arg_vnclip_wx;
static bool trans_vnclip_wx(DisasContext *ctx, arg_vnclip_wx *a);
typedef arg_rmrr arg_vnclip_wi;
static bool trans_vnclip_wi(DisasContext *ctx, arg_vnclip_wi *a);
typedef arg_rmrr arg_vfadd_vv;
static bool trans_vfadd_vv(DisasContext *ctx, arg_vfadd_vv *a);
typedef arg_rmrr arg_vfadd_vf;
static bool trans_vfadd_vf(DisasContext *ctx, arg_vfadd_vf *a);
typedef arg_rmrr arg_vfsub_vv;
static bool trans_vfsub_vv(DisasContext *ctx, arg_vfsub_vv *a);
typedef arg_rmrr arg_vfsub_vf;
static bool trans_vfsub_vf(DisasContext *ctx, arg_vfsub_vf *a);
typedef arg_rmrr arg_vfrsub_vf;
static bool trans_vfrsub_vf(DisasContext *ctx, arg_vfrsub_vf *a);
typedef arg_rmrr arg_vfwadd_vv;
static bool trans_vfwadd_vv(DisasContext *ctx, arg_vfwadd_vv *a);
typedef arg_rmrr arg_vfwadd_vf;
static bool trans_vfwadd_vf(DisasContext *ctx, arg_vfwadd_vf *a);
typedef arg_rmrr arg_vfwadd_wv;
static bool trans_vfwadd_wv(DisasContext *ctx, arg_vfwadd_wv *a);
typedef arg_rmrr arg_vfwadd_wf;
static bool trans_vfwadd_wf(DisasContext *ctx, arg_vfwadd_wf *a);
typedef arg_rmrr arg_vfwsub_vv;
static bool trans_vfwsub_vv(DisasContext *ctx, arg_vfwsub_vv *a);
typedef arg_rmrr arg_vfwsub_vf;
static bool trans_vfwsub_vf(DisasContext *ctx, arg_vfwsub_vf *a);
typedef arg_rmrr arg_vfwsub_wv;
static bool trans_vfwsub_wv(DisasContext *ctx, arg_vfwsub_wv *a);
typedef arg_rmrr arg_vfwsub_wf;
static bool trans_vfwsub_wf(DisasContext *ctx, arg_vfwsub_wf *a);
typedef arg_rmrr arg_vfmul_vv;
static bool trans_vfmul_vv(DisasContext *ctx, arg_vfmul_vv *a);
typedef arg_rmrr arg_vfmul_vf;
static bool trans_vfmul_vf(DisasContext *ctx, arg_vfmul_vf *a);
typedef arg_rmrr arg_vfdiv_vv;
static bool trans_vfdiv_vv(DisasContext *ctx, arg_vfdiv_vv *a);
typedef arg_rmrr arg_vfdiv_vf;
static bool trans_vfdiv_vf(DisasContext *ctx, arg_vfdiv_vf *a);
typedef arg_rmrr arg_vfrdiv_vf;
static bool trans_vfrdiv_vf(DisasContext *ctx, arg_vfrdiv_vf *a);
typedef arg_rmrr arg_vfwmul_vv;
static bool trans_vfwmul_vv(DisasContext *ctx, arg_vfwmul_vv *a);
typedef arg_rmrr arg_vfwmul_vf;
static bool trans_vfwmul_vf(DisasContext *ctx, arg_vfwmul_vf *a);
typedef arg_rmrr arg_vfmacc_vv;
static bool trans_vfmacc_vv(DisasContext *ctx, arg_vfmacc_vv *a);
typedef arg_rmrr arg_vfnmacc_vv;
static bool trans_vfnmacc_vv(DisasContext *ctx, arg_vfnmacc_vv *a);
typedef arg_rmrr arg_vfnmacc_vf;
static bool trans_vfnmacc_vf(DisasContext *ctx, arg_vfnmacc_vf *a);
typedef arg_rmrr arg_vfmacc_vf;
static bool trans_vfmacc_vf(DisasContext *ctx, arg_vfmacc_vf *a);
typedef arg_rmrr arg_vfmsac_vv;
static bool trans_vfmsac_vv(DisasContext *ctx, arg_vfmsac_vv *a);
typedef arg_rmrr arg_vfmsac_vf;
static bool trans_vfmsac_vf(DisasContext *ctx, arg_vfmsac_vf *a);
typedef arg_rmrr arg_vfnmsac_vv;
static bool trans_vfnmsac_vv(DisasContext *ctx, arg_vfnmsac_vv *a);
typedef arg_rmrr arg_vfnmsac_vf;
static bool trans_vfnmsac_vf(DisasContext *ctx, arg_vfnmsac_vf *a);
typedef arg_rmrr arg_vfmadd_vv;
static bool trans_vfmadd_vv(DisasContext *ctx, arg_vfmadd_vv *a);
typedef arg_rmrr arg_vfmadd_vf;
static bool trans_vfmadd_vf(DisasContext *ctx, arg_vfmadd_vf *a);
typedef arg_rmrr arg_vfnmadd_vv;
static bool trans_vfnmadd_vv(DisasContext *ctx, arg_vfnmadd_vv *a);
typedef arg_rmrr arg_vfnmadd_vf;
static bool trans_vfnmadd_vf(DisasContext *ctx, arg_vfnmadd_vf *a);
typedef arg_rmrr arg_vfmsub_vv;
static bool trans_vfmsub_vv(DisasContext *ctx, arg_vfmsub_vv *a);
typedef arg_rmrr arg_vfmsub_vf;
static bool trans_vfmsub_vf(DisasContext *ctx, arg_vfmsub_vf *a);
typedef arg_rmrr arg_vfnmsub_vv;
static bool trans_vfnmsub_vv(DisasContext *ctx, arg_vfnmsub_vv *a);
typedef arg_rmrr arg_vfnmsub_vf;
static bool trans_vfnmsub_vf(DisasContext *ctx, arg_vfnmsub_vf *a);
typedef arg_rmrr arg_vfwmacc_vv;
static bool trans_vfwmacc_vv(DisasContext *ctx, arg_vfwmacc_vv *a);
typedef arg_rmrr arg_vfwmacc_vf;
static bool trans_vfwmacc_vf(DisasContext *ctx, arg_vfwmacc_vf *a);
typedef arg_rmrr arg_vfwnmacc_vv;
static bool trans_vfwnmacc_vv(DisasContext *ctx, arg_vfwnmacc_vv *a);
typedef arg_rmrr arg_vfwnmacc_vf;
static bool trans_vfwnmacc_vf(DisasContext *ctx, arg_vfwnmacc_vf *a);
typedef arg_rmrr arg_vfwmsac_vv;
static bool trans_vfwmsac_vv(DisasContext *ctx, arg_vfwmsac_vv *a);
typedef arg_rmrr arg_vfwmsac_vf;
static bool trans_vfwmsac_vf(DisasContext *ctx, arg_vfwmsac_vf *a);
typedef arg_rmrr arg_vfwnmsac_vv;
static bool trans_vfwnmsac_vv(DisasContext *ctx, arg_vfwnmsac_vv *a);
typedef arg_rmrr arg_vfwnmsac_vf;
static bool trans_vfwnmsac_vf(DisasContext *ctx, arg_vfwnmsac_vf *a);
typedef arg_rmr arg_vfsqrt_v;
static bool trans_vfsqrt_v(DisasContext *ctx, arg_vfsqrt_v *a);
typedef arg_rmr arg_vfrsqrt7_v;
static bool trans_vfrsqrt7_v(DisasContext *ctx, arg_vfrsqrt7_v *a);
typedef arg_rmr arg_vfrec7_v;
static bool trans_vfrec7_v(DisasContext *ctx, arg_vfrec7_v *a);
typedef arg_rmrr arg_vfmin_vv;
static bool trans_vfmin_vv(DisasContext *ctx, arg_vfmin_vv *a);
typedef arg_rmrr arg_vfmin_vf;
static bool trans_vfmin_vf(DisasContext *ctx, arg_vfmin_vf *a);
typedef arg_rmrr arg_vfmax_vv;
static bool trans_vfmax_vv(DisasContext *ctx, arg_vfmax_vv *a);
typedef arg_rmrr arg_vfmax_vf;
static bool trans_vfmax_vf(DisasContext *ctx, arg_vfmax_vf *a);
typedef arg_rmrr arg_vfsgnj_vv;
static bool trans_vfsgnj_vv(DisasContext *ctx, arg_vfsgnj_vv *a);
typedef arg_rmrr arg_vfsgnj_vf;
static bool trans_vfsgnj_vf(DisasContext *ctx, arg_vfsgnj_vf *a);
typedef arg_rmrr arg_vfsgnjn_vv;
static bool trans_vfsgnjn_vv(DisasContext *ctx, arg_vfsgnjn_vv *a);
typedef arg_rmrr arg_vfsgnjn_vf;
static bool trans_vfsgnjn_vf(DisasContext *ctx, arg_vfsgnjn_vf *a);
typedef arg_rmrr arg_vfsgnjx_vv;
static bool trans_vfsgnjx_vv(DisasContext *ctx, arg_vfsgnjx_vv *a);
typedef arg_rmrr arg_vfsgnjx_vf;
static bool trans_vfsgnjx_vf(DisasContext *ctx, arg_vfsgnjx_vf *a);
typedef arg_rmrr arg_vfslide1up_vf;
static bool trans_vfslide1up_vf(DisasContext *ctx, arg_vfslide1up_vf *a);
typedef arg_rmrr arg_vfslide1down_vf;
static bool trans_vfslide1down_vf(DisasContext *ctx, arg_vfslide1down_vf *a);
typedef arg_rmrr arg_vmfeq_vv;
static bool trans_vmfeq_vv(DisasContext *ctx, arg_vmfeq_vv *a);
typedef arg_rmrr arg_vmfeq_vf;
static bool trans_vmfeq_vf(DisasContext *ctx, arg_vmfeq_vf *a);
typedef arg_rmrr arg_vmfne_vv;
static bool trans_vmfne_vv(DisasContext *ctx, arg_vmfne_vv *a);
typedef arg_rmrr arg_vmfne_vf;
static bool trans_vmfne_vf(DisasContext *ctx, arg_vmfne_vf *a);
typedef arg_rmrr arg_vmflt_vv;
static bool trans_vmflt_vv(DisasContext *ctx, arg_vmflt_vv *a);
typedef arg_rmrr arg_vmflt_vf;
static bool trans_vmflt_vf(DisasContext *ctx, arg_vmflt_vf *a);
typedef arg_rmrr arg_vmfle_vv;
static bool trans_vmfle_vv(DisasContext *ctx, arg_vmfle_vv *a);
typedef arg_rmrr arg_vmfle_vf;
static bool trans_vmfle_vf(DisasContext *ctx, arg_vmfle_vf *a);
typedef arg_rmrr arg_vmfgt_vf;
static bool trans_vmfgt_vf(DisasContext *ctx, arg_vmfgt_vf *a);
typedef arg_rmrr arg_vmfge_vf;
static bool trans_vmfge_vf(DisasContext *ctx, arg_vmfge_vf *a);
typedef arg_rmr arg_vfclass_v;
static bool trans_vfclass_v(DisasContext *ctx, arg_vfclass_v *a);
typedef arg_rmrr arg_vfmerge_vfm;
static bool trans_vfmerge_vfm(DisasContext *ctx, arg_vfmerge_vfm *a);
typedef arg_r2 arg_vfmv_v_f;
static bool trans_vfmv_v_f(DisasContext *ctx, arg_vfmv_v_f *a);
typedef arg_rmr arg_vfcvt_xu_f_v;
static bool trans_vfcvt_xu_f_v(DisasContext *ctx, arg_vfcvt_xu_f_v *a);
typedef arg_rmr arg_vfcvt_x_f_v;
static bool trans_vfcvt_x_f_v(DisasContext *ctx, arg_vfcvt_x_f_v *a);
typedef arg_rmr arg_vfcvt_f_xu_v;
static bool trans_vfcvt_f_xu_v(DisasContext *ctx, arg_vfcvt_f_xu_v *a);
typedef arg_rmr arg_vfcvt_f_x_v;
static bool trans_vfcvt_f_x_v(DisasContext *ctx, arg_vfcvt_f_x_v *a);
typedef arg_rmr arg_vfcvt_rtz_xu_f_v;
static bool trans_vfcvt_rtz_xu_f_v(DisasContext *ctx, arg_vfcvt_rtz_xu_f_v *a);
typedef arg_rmr arg_vfcvt_rtz_x_f_v;
static bool trans_vfcvt_rtz_x_f_v(DisasContext *ctx, arg_vfcvt_rtz_x_f_v *a);
typedef arg_rmr arg_vfwcvt_xu_f_v;
static bool trans_vfwcvt_xu_f_v(DisasContext *ctx, arg_vfwcvt_xu_f_v *a);
typedef arg_rmr arg_vfwcvt_x_f_v;
static bool trans_vfwcvt_x_f_v(DisasContext *ctx, arg_vfwcvt_x_f_v *a);
typedef arg_rmr arg_vfwcvt_f_xu_v;
static bool trans_vfwcvt_f_xu_v(DisasContext *ctx, arg_vfwcvt_f_xu_v *a);
typedef arg_rmr arg_vfwcvt_f_x_v;
static bool trans_vfwcvt_f_x_v(DisasContext *ctx, arg_vfwcvt_f_x_v *a);
typedef arg_rmr arg_vfwcvt_f_f_v;
static bool trans_vfwcvt_f_f_v(DisasContext *ctx, arg_vfwcvt_f_f_v *a);
typedef arg_rmr arg_vfwcvt_rtz_xu_f_v;
static bool trans_vfwcvt_rtz_xu_f_v(DisasContext *ctx, arg_vfwcvt_rtz_xu_f_v *a);
typedef arg_rmr arg_vfwcvt_rtz_x_f_v;
static bool trans_vfwcvt_rtz_x_f_v(DisasContext *ctx, arg_vfwcvt_rtz_x_f_v *a);
typedef arg_rmr arg_vfncvt_xu_f_w;
static bool trans_vfncvt_xu_f_w(DisasContext *ctx, arg_vfncvt_xu_f_w *a);
typedef arg_rmr arg_vfncvt_x_f_w;
static bool trans_vfncvt_x_f_w(DisasContext *ctx, arg_vfncvt_x_f_w *a);
typedef arg_rmr arg_vfncvt_f_xu_w;
static bool trans_vfncvt_f_xu_w(DisasContext *ctx, arg_vfncvt_f_xu_w *a);
typedef arg_rmr arg_vfncvt_f_x_w;
static bool trans_vfncvt_f_x_w(DisasContext *ctx, arg_vfncvt_f_x_w *a);
typedef arg_rmr arg_vfncvt_f_f_w;
static bool trans_vfncvt_f_f_w(DisasContext *ctx, arg_vfncvt_f_f_w *a);
typedef arg_rmr arg_vfncvt_rod_f_f_w;
static bool trans_vfncvt_rod_f_f_w(DisasContext *ctx, arg_vfncvt_rod_f_f_w *a);
typedef arg_rmr arg_vfncvt_rtz_xu_f_w;
static bool trans_vfncvt_rtz_xu_f_w(DisasContext *ctx, arg_vfncvt_rtz_xu_f_w *a);
typedef arg_rmr arg_vfncvt_rtz_x_f_w;
static bool trans_vfncvt_rtz_x_f_w(DisasContext *ctx, arg_vfncvt_rtz_x_f_w *a);
typedef arg_rmrr arg_vredsum_vs;
static bool trans_vredsum_vs(DisasContext *ctx, arg_vredsum_vs *a);
typedef arg_rmrr arg_vredand_vs;
static bool trans_vredand_vs(DisasContext *ctx, arg_vredand_vs *a);
typedef arg_rmrr arg_vredor_vs;
static bool trans_vredor_vs(DisasContext *ctx, arg_vredor_vs *a);
typedef arg_rmrr arg_vredxor_vs;
static bool trans_vredxor_vs(DisasContext *ctx, arg_vredxor_vs *a);
typedef arg_rmrr arg_vredminu_vs;
static bool trans_vredminu_vs(DisasContext *ctx, arg_vredminu_vs *a);
typedef arg_rmrr arg_vredmin_vs;
static bool trans_vredmin_vs(DisasContext *ctx, arg_vredmin_vs *a);
typedef arg_rmrr arg_vredmaxu_vs;
static bool trans_vredmaxu_vs(DisasContext *ctx, arg_vredmaxu_vs *a);
typedef arg_rmrr arg_vredmax_vs;
static bool trans_vredmax_vs(DisasContext *ctx, arg_vredmax_vs *a);
typedef arg_rmrr arg_vwredsumu_vs;
static bool trans_vwredsumu_vs(DisasContext *ctx, arg_vwredsumu_vs *a);
typedef arg_rmrr arg_vwredsum_vs;
static bool trans_vwredsum_vs(DisasContext *ctx, arg_vwredsum_vs *a);
typedef arg_rmrr arg_vfredusum_vs;
static bool trans_vfredusum_vs(DisasContext *ctx, arg_vfredusum_vs *a);
typedef arg_rmrr arg_vfredosum_vs;
static bool trans_vfredosum_vs(DisasContext *ctx, arg_vfredosum_vs *a);
typedef arg_rmrr arg_vfredmin_vs;
static bool trans_vfredmin_vs(DisasContext *ctx, arg_vfredmin_vs *a);
typedef arg_rmrr arg_vfredmax_vs;
static bool trans_vfredmax_vs(DisasContext *ctx, arg_vfredmax_vs *a);
typedef arg_rmrr arg_vfwredusum_vs;
static bool trans_vfwredusum_vs(DisasContext *ctx, arg_vfwredusum_vs *a);
typedef arg_rmrr arg_vfwredosum_vs;
static bool trans_vfwredosum_vs(DisasContext *ctx, arg_vfwredosum_vs *a);
typedef arg_r arg_vmand_mm;
static bool trans_vmand_mm(DisasContext *ctx, arg_vmand_mm *a);
typedef arg_r arg_vmnand_mm;
static bool trans_vmnand_mm(DisasContext *ctx, arg_vmnand_mm *a);
typedef arg_r arg_vmandn_mm;
static bool trans_vmandn_mm(DisasContext *ctx, arg_vmandn_mm *a);
typedef arg_r arg_vmxor_mm;
static bool trans_vmxor_mm(DisasContext *ctx, arg_vmxor_mm *a);
typedef arg_r arg_vmor_mm;
static bool trans_vmor_mm(DisasContext *ctx, arg_vmor_mm *a);
typedef arg_r arg_vmnor_mm;
static bool trans_vmnor_mm(DisasContext *ctx, arg_vmnor_mm *a);
typedef arg_r arg_vmorn_mm;
static bool trans_vmorn_mm(DisasContext *ctx, arg_vmorn_mm *a);
typedef arg_r arg_vmxnor_mm;
static bool trans_vmxnor_mm(DisasContext *ctx, arg_vmxnor_mm *a);
typedef arg_rmr arg_vcpop_m;
static bool trans_vcpop_m(DisasContext *ctx, arg_vcpop_m *a);
typedef arg_rmr arg_vfirst_m;
static bool trans_vfirst_m(DisasContext *ctx, arg_vfirst_m *a);
typedef arg_rmr arg_vmsbf_m;
static bool trans_vmsbf_m(DisasContext *ctx, arg_vmsbf_m *a);
typedef arg_rmr arg_vmsif_m;
static bool trans_vmsif_m(DisasContext *ctx, arg_vmsif_m *a);
typedef arg_rmr arg_vmsof_m;
static bool trans_vmsof_m(DisasContext *ctx, arg_vmsof_m *a);
typedef arg_rmr arg_viota_m;
static bool trans_viota_m(DisasContext *ctx, arg_viota_m *a);
typedef arg_decode_insn3220 arg_vid_v;
static bool trans_vid_v(DisasContext *ctx, arg_vid_v *a);
typedef arg_decode_insn3221 arg_vmv_x_s;
static bool trans_vmv_x_s(DisasContext *ctx, arg_vmv_x_s *a);
typedef arg_r2 arg_vmv_s_x;
static bool trans_vmv_s_x(DisasContext *ctx, arg_vmv_s_x *a);
typedef arg_decode_insn3221 arg_vfmv_f_s;
static bool trans_vfmv_f_s(DisasContext *ctx, arg_vfmv_f_s *a);
typedef arg_r2 arg_vfmv_s_f;
static bool trans_vfmv_s_f(DisasContext *ctx, arg_vfmv_s_f *a);
typedef arg_rmrr arg_vslideup_vx;
static bool trans_vslideup_vx(DisasContext *ctx, arg_vslideup_vx *a);
typedef arg_rmrr arg_vslideup_vi;
static bool trans_vslideup_vi(DisasContext *ctx, arg_vslideup_vi *a);
typedef arg_rmrr arg_vslide1up_vx;
static bool trans_vslide1up_vx(DisasContext *ctx, arg_vslide1up_vx *a);
typedef arg_rmrr arg_vslidedown_vx;
static bool trans_vslidedown_vx(DisasContext *ctx, arg_vslidedown_vx *a);
typedef arg_rmrr arg_vslidedown_vi;
static bool trans_vslidedown_vi(DisasContext *ctx, arg_vslidedown_vi *a);
typedef arg_rmrr arg_vslide1down_vx;
static bool trans_vslide1down_vx(DisasContext *ctx, arg_vslide1down_vx *a);
typedef arg_rmrr arg_vrgather_vv;
static bool trans_vrgather_vv(DisasContext *ctx, arg_vrgather_vv *a);
typedef arg_rmrr arg_vrgatherei16_vv;
static bool trans_vrgatherei16_vv(DisasContext *ctx, arg_vrgatherei16_vv *a);
typedef arg_rmrr arg_vrgather_vx;
static bool trans_vrgather_vx(DisasContext *ctx, arg_vrgather_vx *a);
typedef arg_rmrr arg_vrgather_vi;
static bool trans_vrgather_vi(DisasContext *ctx, arg_vrgather_vi *a);
typedef arg_r arg_vcompress_vm;
static bool trans_vcompress_vm(DisasContext *ctx, arg_vcompress_vm *a);
typedef arg_decode_insn3221 arg_vmv1r_v;
static bool trans_vmv1r_v(DisasContext *ctx, arg_vmv1r_v *a);
typedef arg_decode_insn3221 arg_vmv2r_v;
static bool trans_vmv2r_v(DisasContext *ctx, arg_vmv2r_v *a);
typedef arg_decode_insn3221 arg_vmv4r_v;
static bool trans_vmv4r_v(DisasContext *ctx, arg_vmv4r_v *a);
typedef arg_decode_insn3221 arg_vmv8r_v;
static bool trans_vmv8r_v(DisasContext *ctx, arg_vmv8r_v *a);
typedef arg_rmr arg_vzext_vf2;
static bool trans_vzext_vf2(DisasContext *ctx, arg_vzext_vf2 *a);
typedef arg_rmr arg_vzext_vf4;
static bool trans_vzext_vf4(DisasContext *ctx, arg_vzext_vf4 *a);
typedef arg_rmr arg_vzext_vf8;
static bool trans_vzext_vf8(DisasContext *ctx, arg_vzext_vf8 *a);
typedef arg_rmr arg_vsext_vf2;
static bool trans_vsext_vf2(DisasContext *ctx, arg_vsext_vf2 *a);
typedef arg_rmr arg_vsext_vf4;
static bool trans_vsext_vf4(DisasContext *ctx, arg_vsext_vf4 *a);
typedef arg_rmr arg_vsext_vf8;
static bool trans_vsext_vf8(DisasContext *ctx, arg_vsext_vf8 *a);
typedef arg_decode_insn3222 arg_vsetvli;
static bool trans_vsetvli(DisasContext *ctx, arg_vsetvli *a);
typedef arg_decode_insn3222 arg_vsetivli;
static bool trans_vsetivli(DisasContext *ctx, arg_vsetivli *a);
typedef arg_r arg_vsetvl;
static bool trans_vsetvl(DisasContext *ctx, arg_vsetvl *a);
typedef arg_empty arg_wrs_nto;
static bool trans_wrs_nto(DisasContext *ctx, arg_wrs_nto *a);
typedef arg_empty arg_wrs_sto;
static bool trans_wrs_sto(DisasContext *ctx, arg_wrs_sto *a);
typedef arg_r arg_sh1add;
static bool trans_sh1add(DisasContext *ctx, arg_sh1add *a);
typedef arg_r arg_sh2add;
static bool trans_sh2add(DisasContext *ctx, arg_sh2add *a);
typedef arg_r arg_sh3add;
static bool trans_sh3add(DisasContext *ctx, arg_sh3add *a);
typedef arg_r arg_add_uw;
static bool trans_add_uw(DisasContext *ctx, arg_add_uw *a);
typedef arg_r arg_sh1add_uw;
static bool trans_sh1add_uw(DisasContext *ctx, arg_sh1add_uw *a);
typedef arg_r arg_sh2add_uw;
static bool trans_sh2add_uw(DisasContext *ctx, arg_sh2add_uw *a);
typedef arg_r arg_sh3add_uw;
static bool trans_sh3add_uw(DisasContext *ctx, arg_sh3add_uw *a);
typedef arg_shift arg_slli_uw;
static bool trans_slli_uw(DisasContext *ctx, arg_slli_uw *a);
typedef arg_r arg_andn;
static bool trans_andn(DisasContext *ctx, arg_andn *a);
typedef arg_r arg_rol;
static bool trans_rol(DisasContext *ctx, arg_rol *a);
typedef arg_r arg_ror;
static bool trans_ror(DisasContext *ctx, arg_ror *a);
typedef arg_shift arg_rori;
static bool trans_rori(DisasContext *ctx, arg_rori *a);
typedef arg_r2 arg_rev8_32;
static bool trans_rev8_32(DisasContext *ctx, arg_rev8_32 *a);
typedef arg_r2 arg_zext_h_32;
static bool trans_zext_h_32(DisasContext *ctx, arg_zext_h_32 *a);
typedef arg_r arg_pack;
static bool trans_pack(DisasContext *ctx, arg_pack *a);
typedef arg_r arg_xnor;
static bool trans_xnor(DisasContext *ctx, arg_xnor *a);
typedef arg_r2 arg_clz;
static bool trans_clz(DisasContext *ctx, arg_clz *a);
typedef arg_r2 arg_cpop;
static bool trans_cpop(DisasContext *ctx, arg_cpop *a);
typedef arg_r2 arg_ctz;
static bool trans_ctz(DisasContext *ctx, arg_ctz *a);
typedef arg_r arg_max;
static bool trans_max(DisasContext *ctx, arg_max *a);
typedef arg_r arg_maxu;
static bool trans_maxu(DisasContext *ctx, arg_maxu *a);
typedef arg_r arg_min;
static bool trans_min(DisasContext *ctx, arg_min *a);
typedef arg_r arg_minu;
static bool trans_minu(DisasContext *ctx, arg_minu *a);
typedef arg_r2 arg_orc_b;
static bool trans_orc_b(DisasContext *ctx, arg_orc_b *a);
typedef arg_r arg_orn;
static bool trans_orn(DisasContext *ctx, arg_orn *a);
typedef arg_r2 arg_sext_b;
static bool trans_sext_b(DisasContext *ctx, arg_sext_b *a);
typedef arg_r2 arg_sext_h;
static bool trans_sext_h(DisasContext *ctx, arg_sext_h *a);
typedef arg_r2 arg_brev8;
static bool trans_brev8(DisasContext *ctx, arg_brev8 *a);
typedef arg_r arg_packh;
static bool trans_packh(DisasContext *ctx, arg_packh *a);
typedef arg_r2 arg_unzip;
static bool trans_unzip(DisasContext *ctx, arg_unzip *a);
typedef arg_r2 arg_zip;
static bool trans_zip(DisasContext *ctx, arg_zip *a);
typedef arg_r2 arg_rev8_64;
static bool trans_rev8_64(DisasContext *ctx, arg_rev8_64 *a);
typedef arg_r arg_rolw;
static bool trans_rolw(DisasContext *ctx, arg_rolw *a);
typedef arg_shift arg_roriw;
static bool trans_roriw(DisasContext *ctx, arg_roriw *a);
typedef arg_r arg_rorw;
static bool trans_rorw(DisasContext *ctx, arg_rorw *a);
typedef arg_r2 arg_zext_h_64;
static bool trans_zext_h_64(DisasContext *ctx, arg_zext_h_64 *a);
typedef arg_r arg_packw;
static bool trans_packw(DisasContext *ctx, arg_packw *a);
typedef arg_r2 arg_clzw;
static bool trans_clzw(DisasContext *ctx, arg_clzw *a);
typedef arg_r2 arg_ctzw;
static bool trans_ctzw(DisasContext *ctx, arg_ctzw *a);
typedef arg_r2 arg_cpopw;
static bool trans_cpopw(DisasContext *ctx, arg_cpopw *a);
typedef arg_r arg_clmul;
static bool trans_clmul(DisasContext *ctx, arg_clmul *a);
typedef arg_r arg_clmulh;
static bool trans_clmulh(DisasContext *ctx, arg_clmulh *a);
typedef arg_r arg_clmulr;
static bool trans_clmulr(DisasContext *ctx, arg_clmulr *a);
typedef arg_r arg_xperm4;
static bool trans_xperm4(DisasContext *ctx, arg_xperm4 *a);
typedef arg_r arg_xperm8;
static bool trans_xperm8(DisasContext *ctx, arg_xperm8 *a);
typedef arg_r arg_bclr;
static bool trans_bclr(DisasContext *ctx, arg_bclr *a);
typedef arg_shift arg_bclri;
static bool trans_bclri(DisasContext *ctx, arg_bclri *a);
typedef arg_r arg_bext;
static bool trans_bext(DisasContext *ctx, arg_bext *a);
typedef arg_shift arg_bexti;
static bool trans_bexti(DisasContext *ctx, arg_bexti *a);
typedef arg_r arg_binv;
static bool trans_binv(DisasContext *ctx, arg_binv *a);
typedef arg_shift arg_binvi;
static bool trans_binvi(DisasContext *ctx, arg_binvi *a);
typedef arg_r arg_bset;
static bool trans_bset(DisasContext *ctx, arg_bset *a);
typedef arg_shift arg_bseti;
static bool trans_bseti(DisasContext *ctx, arg_bseti *a);
typedef arg_r2 arg_fli_s;
static bool trans_fli_s(DisasContext *ctx, arg_fli_s *a);
typedef arg_r2 arg_fli_d;
static bool trans_fli_d(DisasContext *ctx, arg_fli_d *a);
typedef arg_r2 arg_fli_h;
static bool trans_fli_h(DisasContext *ctx, arg_fli_h *a);
typedef arg_r arg_fminm_s;
static bool trans_fminm_s(DisasContext *ctx, arg_fminm_s *a);
typedef arg_r arg_fmaxm_s;
static bool trans_fmaxm_s(DisasContext *ctx, arg_fmaxm_s *a);
typedef arg_r arg_fminm_d;
static bool trans_fminm_d(DisasContext *ctx, arg_fminm_d *a);
typedef arg_r arg_fmaxm_d;
static bool trans_fmaxm_d(DisasContext *ctx, arg_fmaxm_d *a);
typedef arg_r arg_fminm_h;
static bool trans_fminm_h(DisasContext *ctx, arg_fminm_h *a);
typedef arg_r arg_fmaxm_h;
static bool trans_fmaxm_h(DisasContext *ctx, arg_fmaxm_h *a);
typedef arg_decode_insn3219 arg_fround_s;
static bool trans_fround_s(DisasContext *ctx, arg_fround_s *a);
typedef arg_decode_insn3219 arg_froundnx_s;
static bool trans_froundnx_s(DisasContext *ctx, arg_froundnx_s *a);
typedef arg_decode_insn3219 arg_fround_d;
static bool trans_fround_d(DisasContext *ctx, arg_fround_d *a);
typedef arg_decode_insn3219 arg_froundnx_d;
static bool trans_froundnx_d(DisasContext *ctx, arg_froundnx_d *a);
typedef arg_decode_insn3219 arg_fround_h;
static bool trans_fround_h(DisasContext *ctx, arg_fround_h *a);
typedef arg_decode_insn3219 arg_froundnx_h;
static bool trans_froundnx_h(DisasContext *ctx, arg_froundnx_h *a);
typedef arg_r2 arg_fcvtmod_w_d;
static bool trans_fcvtmod_w_d(DisasContext *ctx, arg_fcvtmod_w_d *a);
typedef arg_r2 arg_fmvh_x_d;
static bool trans_fmvh_x_d(DisasContext *ctx, arg_fmvh_x_d *a);
typedef arg_r arg_fmvp_d_x;
static bool trans_fmvp_d_x(DisasContext *ctx, arg_fmvp_d_x *a);
typedef arg_r arg_fleq_s;
static bool trans_fleq_s(DisasContext *ctx, arg_fleq_s *a);
typedef arg_r arg_fltq_s;
static bool trans_fltq_s(DisasContext *ctx, arg_fltq_s *a);
typedef arg_r arg_fleq_d;
static bool trans_fleq_d(DisasContext *ctx, arg_fleq_d *a);
typedef arg_r arg_fltq_d;
static bool trans_fltq_d(DisasContext *ctx, arg_fltq_d *a);
typedef arg_r arg_fleq_h;
static bool trans_fleq_h(DisasContext *ctx, arg_fleq_h *a);
typedef arg_r arg_fltq_h;
static bool trans_fltq_h(DisasContext *ctx, arg_fltq_h *a);
typedef arg_i arg_flh;
static bool trans_flh(DisasContext *ctx, arg_flh *a);
typedef arg_s arg_fsh;
static bool trans_fsh(DisasContext *ctx, arg_fsh *a);
typedef arg_decode_insn3217 arg_fmadd_h;
static bool trans_fmadd_h(DisasContext *ctx, arg_fmadd_h *a);
typedef arg_decode_insn3217 arg_fmsub_h;
static bool trans_fmsub_h(DisasContext *ctx, arg_fmsub_h *a);
typedef arg_decode_insn3217 arg_fnmsub_h;
static bool trans_fnmsub_h(DisasContext *ctx, arg_fnmsub_h *a);
typedef arg_decode_insn3217 arg_fnmadd_h;
static bool trans_fnmadd_h(DisasContext *ctx, arg_fnmadd_h *a);
typedef arg_decode_insn3218 arg_fadd_h;
static bool trans_fadd_h(DisasContext *ctx, arg_fadd_h *a);
typedef arg_decode_insn3218 arg_fsub_h;
static bool trans_fsub_h(DisasContext *ctx, arg_fsub_h *a);
typedef arg_decode_insn3218 arg_fmul_h;
static bool trans_fmul_h(DisasContext *ctx, arg_fmul_h *a);
typedef arg_decode_insn3218 arg_fdiv_h;
static bool trans_fdiv_h(DisasContext *ctx, arg_fdiv_h *a);
typedef arg_decode_insn3219 arg_fsqrt_h;
static bool trans_fsqrt_h(DisasContext *ctx, arg_fsqrt_h *a);
typedef arg_r arg_fsgnj_h;
static bool trans_fsgnj_h(DisasContext *ctx, arg_fsgnj_h *a);
typedef arg_r arg_fsgnjn_h;
static bool trans_fsgnjn_h(DisasContext *ctx, arg_fsgnjn_h *a);
typedef arg_r arg_fsgnjx_h;
static bool trans_fsgnjx_h(DisasContext *ctx, arg_fsgnjx_h *a);
typedef arg_r arg_fmin_h;
static bool trans_fmin_h(DisasContext *ctx, arg_fmin_h *a);
typedef arg_r arg_fmax_h;
static bool trans_fmax_h(DisasContext *ctx, arg_fmax_h *a);
typedef arg_decode_insn3219 arg_fcvt_h_s;
static bool trans_fcvt_h_s(DisasContext *ctx, arg_fcvt_h_s *a);
typedef arg_decode_insn3219 arg_fcvt_s_h;
static bool trans_fcvt_s_h(DisasContext *ctx, arg_fcvt_s_h *a);
typedef arg_decode_insn3219 arg_fcvt_h_d;
static bool trans_fcvt_h_d(DisasContext *ctx, arg_fcvt_h_d *a);
typedef arg_decode_insn3219 arg_fcvt_d_h;
static bool trans_fcvt_d_h(DisasContext *ctx, arg_fcvt_d_h *a);
typedef arg_decode_insn3219 arg_fcvt_w_h;
static bool trans_fcvt_w_h(DisasContext *ctx, arg_fcvt_w_h *a);
typedef arg_decode_insn3219 arg_fcvt_wu_h;
static bool trans_fcvt_wu_h(DisasContext *ctx, arg_fcvt_wu_h *a);
typedef arg_r2 arg_fmv_x_h;
static bool trans_fmv_x_h(DisasContext *ctx, arg_fmv_x_h *a);
typedef arg_r arg_feq_h;
static bool trans_feq_h(DisasContext *ctx, arg_feq_h *a);
typedef arg_r arg_flt_h;
static bool trans_flt_h(DisasContext *ctx, arg_flt_h *a);
typedef arg_r arg_fle_h;
static bool trans_fle_h(DisasContext *ctx, arg_fle_h *a);
typedef arg_r2 arg_fclass_h;
static bool trans_fclass_h(DisasContext *ctx, arg_fclass_h *a);
typedef arg_decode_insn3219 arg_fcvt_h_w;
static bool trans_fcvt_h_w(DisasContext *ctx, arg_fcvt_h_w *a);
typedef arg_decode_insn3219 arg_fcvt_h_wu;
static bool trans_fcvt_h_wu(DisasContext *ctx, arg_fcvt_h_wu *a);
typedef arg_r2 arg_fmv_h_x;
static bool trans_fmv_h_x(DisasContext *ctx, arg_fmv_h_x *a);
typedef arg_decode_insn3219 arg_fcvt_l_h;
static bool trans_fcvt_l_h(DisasContext *ctx, arg_fcvt_l_h *a);
typedef arg_decode_insn3219 arg_fcvt_lu_h;
static bool trans_fcvt_lu_h(DisasContext *ctx, arg_fcvt_lu_h *a);
typedef arg_decode_insn3219 arg_fcvt_h_l;
static bool trans_fcvt_h_l(DisasContext *ctx, arg_fcvt_h_l *a);
typedef arg_decode_insn3219 arg_fcvt_h_lu;
static bool trans_fcvt_h_lu(DisasContext *ctx, arg_fcvt_h_lu *a);
typedef arg_r2_s arg_sinval_vma;
static bool trans_sinval_vma(DisasContext *ctx, arg_sinval_vma *a);
typedef arg_empty arg_sfence_w_inval;
static bool trans_sfence_w_inval(DisasContext *ctx, arg_sfence_w_inval *a);
typedef arg_empty arg_sfence_inval_ir;
static bool trans_sfence_inval_ir(DisasContext *ctx, arg_sfence_inval_ir *a);
typedef arg_r2_s arg_hinval_vvma;
static bool trans_hinval_vvma(DisasContext *ctx, arg_hinval_vvma *a);
typedef arg_r2_s arg_hinval_gvma;
static bool trans_hinval_gvma(DisasContext *ctx, arg_hinval_gvma *a);
typedef arg_k_aes arg_aes32dsmi;
static bool trans_aes32dsmi(DisasContext *ctx, arg_aes32dsmi *a);
typedef arg_k_aes arg_aes32dsi;
static bool trans_aes32dsi(DisasContext *ctx, arg_aes32dsi *a);
typedef arg_r arg_aes64dsm;
static bool trans_aes64dsm(DisasContext *ctx, arg_aes64dsm *a);
typedef arg_r arg_aes64ds;
static bool trans_aes64ds(DisasContext *ctx, arg_aes64ds *a);
typedef arg_r2 arg_aes64im;
static bool trans_aes64im(DisasContext *ctx, arg_aes64im *a);
typedef arg_k_aes arg_aes32esmi;
static bool trans_aes32esmi(DisasContext *ctx, arg_aes32esmi *a);
typedef arg_k_aes arg_aes32esi;
static bool trans_aes32esi(DisasContext *ctx, arg_aes32esi *a);
typedef arg_r arg_aes64es;
static bool trans_aes64es(DisasContext *ctx, arg_aes64es *a);
typedef arg_r arg_aes64esm;
static bool trans_aes64esm(DisasContext *ctx, arg_aes64esm *a);
typedef arg_r arg_aes64ks2;
static bool trans_aes64ks2(DisasContext *ctx, arg_aes64ks2 *a);
typedef arg_i arg_aes64ks1i;
static bool trans_aes64ks1i(DisasContext *ctx, arg_aes64ks1i *a);
typedef arg_r2 arg_sha256sig0;
static bool trans_sha256sig0(DisasContext *ctx, arg_sha256sig0 *a);
typedef arg_r2 arg_sha256sig1;
static bool trans_sha256sig1(DisasContext *ctx, arg_sha256sig1 *a);
typedef arg_r2 arg_sha256sum0;
static bool trans_sha256sum0(DisasContext *ctx, arg_sha256sum0 *a);
typedef arg_r2 arg_sha256sum1;
static bool trans_sha256sum1(DisasContext *ctx, arg_sha256sum1 *a);
typedef arg_r arg_sha512sum0r;
static bool trans_sha512sum0r(DisasContext *ctx, arg_sha512sum0r *a);
typedef arg_r arg_sha512sum1r;
static bool trans_sha512sum1r(DisasContext *ctx, arg_sha512sum1r *a);
typedef arg_r arg_sha512sig0l;
static bool trans_sha512sig0l(DisasContext *ctx, arg_sha512sig0l *a);
typedef arg_r arg_sha512sig0h;
static bool trans_sha512sig0h(DisasContext *ctx, arg_sha512sig0h *a);
typedef arg_r arg_sha512sig1l;
static bool trans_sha512sig1l(DisasContext *ctx, arg_sha512sig1l *a);
typedef arg_r arg_sha512sig1h;
static bool trans_sha512sig1h(DisasContext *ctx, arg_sha512sig1h *a);
typedef arg_r2 arg_sha512sig0;
static bool trans_sha512sig0(DisasContext *ctx, arg_sha512sig0 *a);
typedef arg_r2 arg_sha512sig1;
static bool trans_sha512sig1(DisasContext *ctx, arg_sha512sig1 *a);
typedef arg_r2 arg_sha512sum0;
static bool trans_sha512sum0(DisasContext *ctx, arg_sha512sum0 *a);
typedef arg_r2 arg_sha512sum1;
static bool trans_sha512sum1(DisasContext *ctx, arg_sha512sum1 *a);
typedef arg_r2 arg_sm3p0;
static bool trans_sm3p0(DisasContext *ctx, arg_sm3p0 *a);
typedef arg_r2 arg_sm3p1;
static bool trans_sm3p1(DisasContext *ctx, arg_sm3p1 *a);
typedef arg_k_aes arg_sm4ed;
static bool trans_sm4ed(DisasContext *ctx, arg_sm4ed *a);
typedef arg_k_aes arg_sm4ks;
static bool trans_sm4ks(DisasContext *ctx, arg_sm4ks *a);
typedef arg_r arg_czero_eqz;
static bool trans_czero_eqz(DisasContext *ctx, arg_czero_eqz *a);
typedef arg_r arg_czero_nez;
static bool trans_czero_nez(DisasContext *ctx, arg_czero_nez *a);
typedef arg_decode_insn3219 arg_fcvt_bf16_s;
static bool trans_fcvt_bf16_s(DisasContext *ctx, arg_fcvt_bf16_s *a);
typedef arg_decode_insn3219 arg_fcvt_s_bf16;
static bool trans_fcvt_s_bf16(DisasContext *ctx, arg_fcvt_s_bf16 *a);
typedef arg_rmr arg_vfncvtbf16_f_f_w;
static bool trans_vfncvtbf16_f_f_w(DisasContext *ctx, arg_vfncvtbf16_f_f_w *a);
typedef arg_rmr arg_vfwcvtbf16_f_f_v;
static bool trans_vfwcvtbf16_f_f_v(DisasContext *ctx, arg_vfwcvtbf16_f_f_v *a);
typedef arg_rmrr arg_vfwmaccbf16_vv;
static bool trans_vfwmaccbf16_vv(DisasContext *ctx, arg_vfwmaccbf16_vv *a);
typedef arg_rmrr arg_vfwmaccbf16_vf;
static bool trans_vfwmaccbf16_vf(DisasContext *ctx, arg_vfwmaccbf16_vf *a);
typedef arg_rmrr arg_vclmul_vv;
static bool trans_vclmul_vv(DisasContext *ctx, arg_vclmul_vv *a);
typedef arg_rmrr arg_vclmul_vx;
static bool trans_vclmul_vx(DisasContext *ctx, arg_vclmul_vx *a);
typedef arg_rmrr arg_vclmulh_vv;
static bool trans_vclmulh_vv(DisasContext *ctx, arg_vclmulh_vv *a);
typedef arg_rmrr arg_vclmulh_vx;
static bool trans_vclmulh_vx(DisasContext *ctx, arg_vclmulh_vx *a);
typedef arg_rmrr arg_vrol_vv;
static bool trans_vrol_vv(DisasContext *ctx, arg_vrol_vv *a);
typedef arg_rmrr arg_vrol_vx;
static bool trans_vrol_vx(DisasContext *ctx, arg_vrol_vx *a);
typedef arg_rmrr arg_vror_vv;
static bool trans_vror_vv(DisasContext *ctx, arg_vror_vv *a);
typedef arg_rmrr arg_vror_vx;
static bool trans_vror_vx(DisasContext *ctx, arg_vror_vx *a);
typedef arg_rmrr arg_vror_vi;
static bool trans_vror_vi(DisasContext *ctx, arg_vror_vi *a);
typedef arg_rmr arg_vbrev8_v;
static bool trans_vbrev8_v(DisasContext *ctx, arg_vbrev8_v *a);
typedef arg_rmr arg_vrev8_v;
static bool trans_vrev8_v(DisasContext *ctx, arg_vrev8_v *a);
typedef arg_rmrr arg_vandn_vv;
static bool trans_vandn_vv(DisasContext *ctx, arg_vandn_vv *a);
typedef arg_rmrr arg_vandn_vx;
static bool trans_vandn_vx(DisasContext *ctx, arg_vandn_vx *a);
typedef arg_rmr arg_vbrev_v;
static bool trans_vbrev_v(DisasContext *ctx, arg_vbrev_v *a);
typedef arg_rmr arg_vclz_v;
static bool trans_vclz_v(DisasContext *ctx, arg_vclz_v *a);
typedef arg_rmr arg_vctz_v;
static bool trans_vctz_v(DisasContext *ctx, arg_vctz_v *a);
typedef arg_rmr arg_vcpop_v;
static bool trans_vcpop_v(DisasContext *ctx, arg_vcpop_v *a);
typedef arg_rmrr arg_vwsll_vv;
static bool trans_vwsll_vv(DisasContext *ctx, arg_vwsll_vv *a);
typedef arg_rmrr arg_vwsll_vx;
static bool trans_vwsll_vx(DisasContext *ctx, arg_vwsll_vx *a);
typedef arg_rmrr arg_vwsll_vi;
static bool trans_vwsll_vi(DisasContext *ctx, arg_vwsll_vi *a);
typedef arg_rmr arg_vaesef_vv;
static bool trans_vaesef_vv(DisasContext *ctx, arg_vaesef_vv *a);
typedef arg_rmr arg_vaesef_vs;
static bool trans_vaesef_vs(DisasContext *ctx, arg_vaesef_vs *a);
typedef arg_rmr arg_vaesdf_vv;
static bool trans_vaesdf_vv(DisasContext *ctx, arg_vaesdf_vv *a);
typedef arg_rmr arg_vaesdf_vs;
static bool trans_vaesdf_vs(DisasContext *ctx, arg_vaesdf_vs *a);
typedef arg_rmr arg_vaesem_vv;
static bool trans_vaesem_vv(DisasContext *ctx, arg_vaesem_vv *a);
typedef arg_rmr arg_vaesem_vs;
static bool trans_vaesem_vs(DisasContext *ctx, arg_vaesem_vs *a);
typedef arg_rmr arg_vaesdm_vv;
static bool trans_vaesdm_vv(DisasContext *ctx, arg_vaesdm_vv *a);
typedef arg_rmr arg_vaesdm_vs;
static bool trans_vaesdm_vs(DisasContext *ctx, arg_vaesdm_vs *a);
typedef arg_rmr arg_vaesz_vs;
static bool trans_vaesz_vs(DisasContext *ctx, arg_vaesz_vs *a);
typedef arg_rmrr arg_vaeskf1_vi;
static bool trans_vaeskf1_vi(DisasContext *ctx, arg_vaeskf1_vi *a);
typedef arg_rmrr arg_vaeskf2_vi;
static bool trans_vaeskf2_vi(DisasContext *ctx, arg_vaeskf2_vi *a);
typedef arg_rmrr arg_vsha2ms_vv;
static bool trans_vsha2ms_vv(DisasContext *ctx, arg_vsha2ms_vv *a);
typedef arg_rmrr arg_vsha2ch_vv;
static bool trans_vsha2ch_vv(DisasContext *ctx, arg_vsha2ch_vv *a);
typedef arg_rmrr arg_vsha2cl_vv;
static bool trans_vsha2cl_vv(DisasContext *ctx, arg_vsha2cl_vv *a);
typedef arg_rmrr arg_vsm3me_vv;
static bool trans_vsm3me_vv(DisasContext *ctx, arg_vsm3me_vv *a);
typedef arg_rmrr arg_vsm3c_vi;
static bool trans_vsm3c_vi(DisasContext *ctx, arg_vsm3c_vi *a);
typedef arg_rmrr arg_vghsh_vv;
static bool trans_vghsh_vv(DisasContext *ctx, arg_vghsh_vv *a);
typedef arg_rmr arg_vgmul_vv;
static bool trans_vgmul_vv(DisasContext *ctx, arg_vgmul_vv *a);
typedef arg_rmrr arg_vsm4k_vi;
static bool trans_vsm4k_vi(DisasContext *ctx, arg_vsm4k_vi *a);
typedef arg_rmr arg_vsm4r_vv;
static bool trans_vsm4r_vv(DisasContext *ctx, arg_vsm4r_vv *a);
typedef arg_rmr arg_vsm4r_vs;
static bool trans_vsm4r_vs(DisasContext *ctx, arg_vsm4r_vs *a);

static void decode_insn32_extract_atom_ld(DisasContext *ctx, arg_atomic *a, uint32_t insn)
{
    a->aq = extract32(insn, 26, 1);
    a->rs1 = extract32(insn, 15, 5);
    a->rl = extract32(insn, 25, 1);
    a->rd = extract32(insn, 7, 5);
    a->rs2 = 0;
}

static void decode_insn32_extract_atom_st(DisasContext *ctx, arg_atomic *a, uint32_t insn)
{
    a->aq = extract32(insn, 26, 1);
    a->rs1 = extract32(insn, 15, 5);
    a->rl = extract32(insn, 25, 1);
    a->rd = extract32(insn, 7, 5);
    a->rs2 = extract32(insn, 20, 5);
}

static void decode_insn32_extract_b(DisasContext *ctx, arg_b *a, uint32_t insn)
{
    a->rs1 = extract32(insn, 15, 5);
    a->rs2 = extract32(insn, 20, 5);
    a->imm = ex_shift_1(ctx, deposit32(deposit32(deposit32(extract32(insn, 8, 4), 4, 28, extract32(insn, 25, 6)), 10, 22, extract32(insn, 7, 1)), 11, 21, sextract32(insn, 31, 1)));
}

static void decode_insn32_extract_csr(DisasContext *ctx, arg_decode_insn3216 *a, uint32_t insn)
{
    a->csr = extract32(insn, 20, 12);
    a->rs1 = extract32(insn, 15, 5);
    a->rd = extract32(insn, 7, 5);
}

static void decode_insn32_extract_decode_insn32_Fmt_35(DisasContext *ctx, arg_empty *a, uint32_t insn)
{
}

static void decode_insn32_extract_decode_insn32_Fmt_36(DisasContext *ctx, arg_decode_insn3224 *a, uint32_t insn)
{
    a->succ = extract32(insn, 20, 4);
    a->pred = extract32(insn, 24, 4);
}

static void decode_insn32_extract_hfence_gvma(DisasContext *ctx, arg_r2_s *a, uint32_t insn)
{
    a->rs1 = extract32(insn, 15, 5);
    a->rs2 = extract32(insn, 20, 5);
}

static void decode_insn32_extract_hfence_vvma(DisasContext *ctx, arg_r2_s *a, uint32_t insn)
{
    a->rs1 = extract32(insn, 15, 5);
    a->rs2 = extract32(insn, 20, 5);
}

static void decode_insn32_extract_i(DisasContext *ctx, arg_i *a, uint32_t insn)
{
    a->rd = extract32(insn, 7, 5);
    a->rs1 = extract32(insn, 15, 5);
    a->imm = sextract32(insn, 20, 12);
}

static void decode_insn32_extract_i_aes(DisasContext *ctx, arg_i *a, uint32_t insn)
{
    a->rd = extract32(insn, 7, 5);
    a->rs1 = extract32(insn, 15, 5);
    a->imm = extract32(insn, 20, 4);
}

static void decode_insn32_extract_j(DisasContext *ctx, arg_j *a, uint32_t insn)
{
    a->rd = extract32(insn, 7, 5);
    a->imm = ex_shift_1(ctx, deposit32(deposit32(deposit32(extract32(insn, 21, 10), 10, 22, extract32(insn, 20, 1)), 11, 21, extract32(insn, 12, 8)), 19, 13, sextract32(insn, 31, 1)));
}

static void decode_insn32_extract_k_aes(DisasContext *ctx, arg_k_aes *a, uint32_t insn)
{
    a->rd = extract32(insn, 7, 5);
    a->rs1 = extract32(insn, 15, 5);
    a->shamt = ex_shift_3(ctx, extract32(insn, 30, 2));
    a->rs2 = extract32(insn, 20, 5);
}

static void decode_insn32_extract_r(DisasContext *ctx, arg_r *a, uint32_t insn)
{
    a->rd = extract32(insn, 7, 5);
    a->rs1 = extract32(insn, 15, 5);
    a->rs2 = extract32(insn, 20, 5);
}

static void decode_insn32_extract_r1_vm(DisasContext *ctx, arg_decode_insn3220 *a, uint32_t insn)
{
    a->rd = extract32(insn, 7, 5);
    a->vm = extract32(insn, 25, 1);
}

static void decode_insn32_extract_r2(DisasContext *ctx, arg_r2 *a, uint32_t insn)
{
    a->rd = extract32(insn, 7, 5);
    a->rs1 = extract32(insn, 15, 5);
}

static void decode_insn32_extract_r2_nfvm(DisasContext *ctx, arg_r2nfvm *a, uint32_t insn)
{
    a->rd = extract32(insn, 7, 5);
    a->nf = ex_plus_1(ctx, extract32(insn, 29, 3));
    a->vm = extract32(insn, 25, 1);
    a->rs1 = extract32(insn, 15, 5);
}

static void decode_insn32_extract_r2_rm(DisasContext *ctx, arg_decode_insn3219 *a, uint32_t insn)
{
    a->rd = extract32(insn, 7, 5);
    a->rs1 = extract32(insn, 15, 5);
    a->rm = extract32(insn, 12, 3);
}

static void decode_insn32_extract_r2_s(DisasContext *ctx, arg_r2_s *a, uint32_t insn)
{
    a->rs1 = extract32(insn, 15, 5);
    a->rs2 = extract32(insn, 20, 5);
}

static void decode_insn32_extract_r2_vm(DisasContext *ctx, arg_rmr *a, uint32_t insn)
{
    a->rd = extract32(insn, 7, 5);
    a->vm = extract32(insn, 25, 1);
    a->rs2 = extract32(insn, 20, 5);
}

static void decode_insn32_extract_r2_vm_1(DisasContext *ctx, arg_rmr *a, uint32_t insn)
{
    a->rd = extract32(insn, 7, 5);
    a->vm = 1;
    a->rs2 = extract32(insn, 20, 5);
}

static void decode_insn32_extract_r2_zimm10(DisasContext *ctx, arg_decode_insn3222 *a, uint32_t insn)
{
    a->rd = extract32(insn, 7, 5);
    a->rs1 = extract32(insn, 15, 5);
    a->zimm = extract32(insn, 20, 10);
}

static void decode_insn32_extract_r2_zimm11(DisasContext *ctx, arg_decode_insn3222 *a, uint32_t insn)
{
    a->rd = extract32(insn, 7, 5);
    a->rs1 = extract32(insn, 15, 5);
    a->zimm = extract32(insn, 20, 11);
}

static void decode_insn32_extract_r2_zimm6(DisasContext *ctx, arg_rmrr *a, uint32_t insn)
{
    a->rd = extract32(insn, 7, 5);
    a->rs1 = deposit32(extract32(insn, 15, 5), 5, 27, extract32(insn, 26, 1));
    a->vm = extract32(insn, 25, 1);
    a->rs2 = extract32(insn, 20, 5);
}

static void decode_insn32_extract_r2rd(DisasContext *ctx, arg_decode_insn3221 *a, uint32_t insn)
{
    a->rd = extract32(insn, 7, 5);
    a->rs2 = extract32(insn, 20, 5);
}

static void decode_insn32_extract_r4_rm(DisasContext *ctx, arg_decode_insn3217 *a, uint32_t insn)
{
    a->rs1 = extract32(insn, 15, 5);
    a->rs3 = extract32(insn, 27, 5);
    a->rm = extract32(insn, 12, 3);
    a->rd = extract32(insn, 7, 5);
    a->rs2 = extract32(insn, 20, 5);
}

static void decode_insn32_extract_r_nfvm(DisasContext *ctx, arg_rnfvm *a, uint32_t insn)
{
    a->rs1 = extract32(insn, 15, 5);
    a->vm = extract32(insn, 25, 1);
    a->rd = extract32(insn, 7, 5);
    a->nf = ex_plus_1(ctx, extract32(insn, 29, 3));
    a->rs2 = extract32(insn, 20, 5);
}

static void decode_insn32_extract_r_rm(DisasContext *ctx, arg_decode_insn3218 *a, uint32_t insn)
{
    a->rd = extract32(insn, 7, 5);
    a->rs1 = extract32(insn, 15, 5);
    a->rm = extract32(insn, 12, 3);
    a->rs2 = extract32(insn, 20, 5);
}

static void decode_insn32_extract_r_vm(DisasContext *ctx, arg_rmrr *a, uint32_t insn)
{
    a->rd = extract32(insn, 7, 5);
    a->rs1 = extract32(insn, 15, 5);
    a->vm = extract32(insn, 25, 1);
    a->rs2 = extract32(insn, 20, 5);
}

static void decode_insn32_extract_r_vm_0(DisasContext *ctx, arg_rmrr *a, uint32_t insn)
{
    a->rd = extract32(insn, 7, 5);
    a->rs1 = extract32(insn, 15, 5);
    a->vm = 0;
    a->rs2 = extract32(insn, 20, 5);
}

static void decode_insn32_extract_r_vm_1(DisasContext *ctx, arg_rmrr *a, uint32_t insn)
{
    a->rd = extract32(insn, 7, 5);
    a->rs1 = extract32(insn, 15, 5);
    a->vm = 1;
    a->rs2 = extract32(insn, 20, 5);
}

static void decode_insn32_extract_s(DisasContext *ctx, arg_s *a, uint32_t insn)
{
    a->rs1 = extract32(insn, 15, 5);
    a->rs2 = extract32(insn, 20, 5);
    a->imm = deposit32(extract32(insn, 7, 5), 5, 27, sextract32(insn, 25, 7));
}

static void decode_insn32_extract_sfence_vm(DisasContext *ctx, arg_decode_insn3223 *a, uint32_t insn)
{
    a->rs1 = extract32(insn, 15, 5);
}

static void decode_insn32_extract_sfence_vma(DisasContext *ctx, arg_r2_s *a, uint32_t insn)
{
    a->rs1 = extract32(insn, 15, 5);
    a->rs2 = extract32(insn, 20, 5);
}

static void decode_insn32_extract_sh(DisasContext *ctx, arg_shift *a, uint32_t insn)
{
    a->rd = extract32(insn, 7, 5);
    a->rs1 = extract32(insn, 15, 5);
    a->shamt = extract32(insn, 20, 7);
}

static void decode_insn32_extract_sh5(DisasContext *ctx, arg_shift *a, uint32_t insn)
{
    a->rd = extract32(insn, 7, 5);
    a->rs1 = extract32(insn, 15, 5);
    a->shamt = extract32(insn, 20, 5);
}

static void decode_insn32_extract_sh6(DisasContext *ctx, arg_shift *a, uint32_t insn)
{
    a->rd = extract32(insn, 7, 5);
    a->rs1 = extract32(insn, 15, 5);
    a->shamt = extract32(insn, 20, 6);
}

static void decode_insn32_extract_u(DisasContext *ctx, arg_u *a, uint32_t insn)
{
    a->rd = extract32(insn, 7, 5);
    a->imm = ex_shift_12(ctx, sextract32(insn, 12, 20));
}

static bool decode_insn32(DisasContext *ctx, uint32_t insn)
{
    union {
        arg_atomic f_atomic;
        arg_b f_b;
        arg_decode_insn3216 f_decode_insn3216;
        arg_decode_insn3217 f_decode_insn3217;
        arg_decode_insn3218 f_decode_insn3218;
        arg_decode_insn3219 f_decode_insn3219;
        arg_decode_insn3220 f_decode_insn3220;
        arg_decode_insn3221 f_decode_insn3221;
        arg_decode_insn3222 f_decode_insn3222;
        arg_decode_insn3223 f_decode_insn3223;
        arg_decode_insn3224 f_decode_insn3224;
        arg_empty f_empty;
        arg_i f_i;
        arg_j f_j;
        arg_k_aes f_k_aes;
        arg_r f_r;
        arg_r2 f_r2;
        arg_r2_s f_r2_s;
        arg_r2nfvm f_r2nfvm;
        arg_rmr f_rmr;
        arg_rmrr f_rmrr;
        arg_rnfvm f_rnfvm;
        arg_s f_s;
        arg_shift f_shift;
        arg_u f_u;
    } u;

    switch (insn & 0x0000007f) {
    case 0x00000003:
        /* ........ ........ ........ .0000011 */
        decode_insn32_extract_i(ctx, &u.f_i, insn);
        switch ((insn >> 12) & 0x7) {
        case 0x0:
            /* ........ ........ .000.... .0000011 */
            /* ../git/target/riscv/insn32.decode:128 */
            if (trans_lb(ctx, &u.f_i)) return true;
            break;
        case 0x1:
            /* ........ ........ .001.... .0000011 */
            /* ../git/target/riscv/insn32.decode:129 */
            if (trans_lh(ctx, &u.f_i)) return true;
            break;
        case 0x2:
            /* ........ ........ .010.... .0000011 */
            /* ../git/target/riscv/insn32.decode:130 */
            if (trans_lw(ctx, &u.f_i)) return true;
            break;
        case 0x3:
            /* ........ ........ .011.... .0000011 */
            /* ../git/target/riscv/insn32.decode:172 */
            if (trans_ld(ctx, &u.f_i)) return true;
            break;
        case 0x4:
            /* ........ ........ .100.... .0000011 */
            /* ../git/target/riscv/insn32.decode:131 */
            if (trans_lbu(ctx, &u.f_i)) return true;
            break;
        case 0x5:
            /* ........ ........ .101.... .0000011 */
            /* ../git/target/riscv/insn32.decode:132 */
            if (trans_lhu(ctx, &u.f_i)) return true;
            break;
        case 0x6:
            /* ........ ........ .110.... .0000011 */
            /* ../git/target/riscv/insn32.decode:171 */
            if (trans_lwu(ctx, &u.f_i)) return true;
            break;
        case 0x7:
            /* ........ ........ .111.... .0000011 */
            /* ../git/target/riscv/insn32.decode:185 */
            if (trans_ldu(ctx, &u.f_i)) return true;
            break;
        }
        break;
    case 0x00000007:
        /* ........ ........ ........ .0000111 */
        switch ((insn >> 12) & 0x7) {
        case 0x0:
            /* ........ ........ .000.... .0000111 */
            switch (insn & 0x14000000) {
            case 0x00000000:
                /* ...0.0.. ........ .000.... .0000111 */
                switch ((insn >> 27) & 0x1) {
                case 0x0:
                    /* ...000.. ........ .000.... .0000111 */
                    switch ((insn >> 20) & 0x1f) {
                    case 0x0:
                        /* ...000.0 0000.... .000.... .0000111 */
                        /* ../git/target/riscv/insn32.decode:352 */
                        decode_insn32_extract_r2_nfvm(ctx, &u.f_r2nfvm, insn);
                        if (trans_vle8_v(ctx, &u.f_r2nfvm)) return true;
                        break;
                    case 0x8:
                        /* ...000.0 1000.... .000.... .0000111 */
                        decode_insn32_extract_r2(ctx, &u.f_r2, insn);
                        switch (insn & 0xe2000000u) {
                        case 0x02000000:
                            /* 00000010 1000.... .000.... .0000111 */
                            /* ../git/target/riscv/insn32.decode:394 */
                            if (trans_vl1re8_v(ctx, &u.f_r2)) return true;
                            break;
                        case 0x22000000:
                            /* 00100010 1000.... .000.... .0000111 */
                            /* ../git/target/riscv/insn32.decode:398 */
                            if (trans_vl2re8_v(ctx, &u.f_r2)) return true;
                            break;
                        case 0x62000000:
                            /* 01100010 1000.... .000.... .0000111 */
                            /* ../git/target/riscv/insn32.decode:402 */
                            if (trans_vl4re8_v(ctx, &u.f_r2)) return true;
                            break;
                        case 0xe2000000u:
                            /* 11100010 1000.... .000.... .0000111 */
                            /* ../git/target/riscv/insn32.decode:406 */
                            if (trans_vl8re8_v(ctx, &u.f_r2)) return true;
                            break;
                        }
                        break;
                    case 0xb:
                        /* ...000.0 1011.... .000.... .0000111 */
                        decode_insn32_extract_r2(ctx, &u.f_r2, insn);
                        switch (insn & 0xe2000000u) {
                        case 0x02000000:
                            /* 00000010 1011.... .000.... .0000111 */
                            /* ../git/target/riscv/insn32.decode:362 */
                            if (trans_vlm_v(ctx, &u.f_r2)) return true;
                            break;
                        }
                        break;
                    case 0x10:
                        /* ...000.1 0000.... .000.... .0000111 */
                        /* ../git/target/riscv/insn32.decode:388 */
                        decode_insn32_extract_r2_nfvm(ctx, &u.f_r2nfvm, insn);
                        if (trans_vle8ff_v(ctx, &u.f_r2nfvm)) return true;
                        break;
                    }
                    break;
                case 0x1:
                    /* ...010.. ........ .000.... .0000111 */
                    /* ../git/target/riscv/insn32.decode:366 */
                    decode_insn32_extract_r_nfvm(ctx, &u.f_rnfvm, insn);
                    if (trans_vlse8_v(ctx, &u.f_rnfvm)) return true;
                    break;
                }
                break;
            case 0x04000000:
                /* ...0.1.. ........ .000.... .0000111 */
                /* ../git/target/riscv/insn32.decode:376 */
                decode_insn32_extract_r_nfvm(ctx, &u.f_rnfvm, insn);
                if (trans_vlxei8_v(ctx, &u.f_rnfvm)) return true;
                break;
            }
            break;
        case 0x1:
            /* ........ ........ .001.... .0000111 */
            /* ../git/target/riscv/insn32.decode:854 */
            decode_insn32_extract_i(ctx, &u.f_i, insn);
            if (trans_flh(ctx, &u.f_i)) return true;
            break;
        case 0x2:
            /* ........ ........ .010.... .0000111 */
            /* ../git/target/riscv/insn32.decode:262 */
            decode_insn32_extract_i(ctx, &u.f_i, insn);
            if (trans_flw(ctx, &u.f_i)) return true;
            break;
        case 0x3:
            /* ........ ........ .011.... .0000111 */
            /* ../git/target/riscv/insn32.decode:296 */
            decode_insn32_extract_i(ctx, &u.f_i, insn);
            if (trans_fld(ctx, &u.f_i)) return true;
            break;
        case 0x5:
            /* ........ ........ .101.... .0000111 */
            switch (insn & 0x14000000) {
            case 0x00000000:
                /* ...0.0.. ........ .101.... .0000111 */
                switch ((insn >> 27) & 0x1) {
                case 0x0:
                    /* ...000.. ........ .101.... .0000111 */
                    switch ((insn >> 20) & 0x1f) {
                    case 0x0:
                        /* ...000.0 0000.... .101.... .0000111 */
                        /* ../git/target/riscv/insn32.decode:353 */
                        decode_insn32_extract_r2_nfvm(ctx, &u.f_r2nfvm, insn);
                        if (trans_vle16_v(ctx, &u.f_r2nfvm)) return true;
                        break;
                    case 0x8:
                        /* ...000.0 1000.... .101.... .0000111 */
                        decode_insn32_extract_r2(ctx, &u.f_r2, insn);
                        switch (insn & 0xe2000000u) {
                        case 0x02000000:
                            /* 00000010 1000.... .101.... .0000111 */
                            /* ../git/target/riscv/insn32.decode:395 */
                            if (trans_vl1re16_v(ctx, &u.f_r2)) return true;
                            break;
                        case 0x22000000:
                            /* 00100010 1000.... .101.... .0000111 */
                            /* ../git/target/riscv/insn32.decode:399 */
                            if (trans_vl2re16_v(ctx, &u.f_r2)) return true;
                            break;
                        case 0x62000000:
                            /* 01100010 1000.... .101.... .0000111 */
                            /* ../git/target/riscv/insn32.decode:403 */
                            if (trans_vl4re16_v(ctx, &u.f_r2)) return true;
                            break;
                        case 0xe2000000u:
                            /* 11100010 1000.... .101.... .0000111 */
                            /* ../git/target/riscv/insn32.decode:407 */
                            if (trans_vl8re16_v(ctx, &u.f_r2)) return true;
                            break;
                        }
                        break;
                    case 0x10:
                        /* ...000.1 0000.... .101.... .0000111 */
                        /* ../git/target/riscv/insn32.decode:389 */
                        decode_insn32_extract_r2_nfvm(ctx, &u.f_r2nfvm, insn);
                        if (trans_vle16ff_v(ctx, &u.f_r2nfvm)) return true;
                        break;
                    }
                    break;
                case 0x1:
                    /* ...010.. ........ .101.... .0000111 */
                    /* ../git/target/riscv/insn32.decode:367 */
                    decode_insn32_extract_r_nfvm(ctx, &u.f_rnfvm, insn);
                    if (trans_vlse16_v(ctx, &u.f_rnfvm)) return true;
                    break;
                }
                break;
            case 0x04000000:
                /* ...0.1.. ........ .101.... .0000111 */
                /* ../git/target/riscv/insn32.decode:377 */
                decode_insn32_extract_r_nfvm(ctx, &u.f_rnfvm, insn);
                if (trans_vlxei16_v(ctx, &u.f_rnfvm)) return true;
                break;
            }
            break;
        case 0x6:
            /* ........ ........ .110.... .0000111 */
            switch (insn & 0x14000000) {
            case 0x00000000:
                /* ...0.0.. ........ .110.... .0000111 */
                switch ((insn >> 27) & 0x1) {
                case 0x0:
                    /* ...000.. ........ .110.... .0000111 */
                    switch ((insn >> 20) & 0x1f) {
                    case 0x0:
                        /* ...000.0 0000.... .110.... .0000111 */
                        /* ../git/target/riscv/insn32.decode:354 */
                        decode_insn32_extract_r2_nfvm(ctx, &u.f_r2nfvm, insn);
                        if (trans_vle32_v(ctx, &u.f_r2nfvm)) return true;
                        break;
                    case 0x8:
                        /* ...000.0 1000.... .110.... .0000111 */
                        decode_insn32_extract_r2(ctx, &u.f_r2, insn);
                        switch (insn & 0xe2000000u) {
                        case 0x02000000:
                            /* 00000010 1000.... .110.... .0000111 */
                            /* ../git/target/riscv/insn32.decode:396 */
                            if (trans_vl1re32_v(ctx, &u.f_r2)) return true;
                            break;
                        case 0x22000000:
                            /* 00100010 1000.... .110.... .0000111 */
                            /* ../git/target/riscv/insn32.decode:400 */
                            if (trans_vl2re32_v(ctx, &u.f_r2)) return true;
                            break;
                        case 0x62000000:
                            /* 01100010 1000.... .110.... .0000111 */
                            /* ../git/target/riscv/insn32.decode:404 */
                            if (trans_vl4re32_v(ctx, &u.f_r2)) return true;
                            break;
                        case 0xe2000000u:
                            /* 11100010 1000.... .110.... .0000111 */
                            /* ../git/target/riscv/insn32.decode:408 */
                            if (trans_vl8re32_v(ctx, &u.f_r2)) return true;
                            break;
                        }
                        break;
                    case 0x10:
                        /* ...000.1 0000.... .110.... .0000111 */
                        /* ../git/target/riscv/insn32.decode:390 */
                        decode_insn32_extract_r2_nfvm(ctx, &u.f_r2nfvm, insn);
                        if (trans_vle32ff_v(ctx, &u.f_r2nfvm)) return true;
                        break;
                    }
                    break;
                case 0x1:
                    /* ...010.. ........ .110.... .0000111 */
                    /* ../git/target/riscv/insn32.decode:368 */
                    decode_insn32_extract_r_nfvm(ctx, &u.f_rnfvm, insn);
                    if (trans_vlse32_v(ctx, &u.f_rnfvm)) return true;
                    break;
                }
                break;
            case 0x04000000:
                /* ...0.1.. ........ .110.... .0000111 */
                /* ../git/target/riscv/insn32.decode:378 */
                decode_insn32_extract_r_nfvm(ctx, &u.f_rnfvm, insn);
                if (trans_vlxei32_v(ctx, &u.f_rnfvm)) return true;
                break;
            }
            break;
        case 0x7:
            /* ........ ........ .111.... .0000111 */
            switch (insn & 0x14000000) {
            case 0x00000000:
                /* ...0.0.. ........ .111.... .0000111 */
                switch ((insn >> 27) & 0x1) {
                case 0x0:
                    /* ...000.. ........ .111.... .0000111 */
                    switch ((insn >> 20) & 0x1f) {
                    case 0x0:
                        /* ...000.0 0000.... .111.... .0000111 */
                        /* ../git/target/riscv/insn32.decode:355 */
                        decode_insn32_extract_r2_nfvm(ctx, &u.f_r2nfvm, insn);
                        if (trans_vle64_v(ctx, &u.f_r2nfvm)) return true;
                        break;
                    case 0x8:
                        /* ...000.0 1000.... .111.... .0000111 */
                        decode_insn32_extract_r2(ctx, &u.f_r2, insn);
                        switch (insn & 0xe2000000u) {
                        case 0x02000000:
                            /* 00000010 1000.... .111.... .0000111 */
                            /* ../git/target/riscv/insn32.decode:397 */
                            if (trans_vl1re64_v(ctx, &u.f_r2)) return true;
                            break;
                        case 0x22000000:
                            /* 00100010 1000.... .111.... .0000111 */
                            /* ../git/target/riscv/insn32.decode:401 */
                            if (trans_vl2re64_v(ctx, &u.f_r2)) return true;
                            break;
                        case 0x62000000:
                            /* 01100010 1000.... .111.... .0000111 */
                            /* ../git/target/riscv/insn32.decode:405 */
                            if (trans_vl4re64_v(ctx, &u.f_r2)) return true;
                            break;
                        case 0xe2000000u:
                            /* 11100010 1000.... .111.... .0000111 */
                            /* ../git/target/riscv/insn32.decode:409 */
                            if (trans_vl8re64_v(ctx, &u.f_r2)) return true;
                            break;
                        }
                        break;
                    case 0x10:
                        /* ...000.1 0000.... .111.... .0000111 */
                        /* ../git/target/riscv/insn32.decode:391 */
                        decode_insn32_extract_r2_nfvm(ctx, &u.f_r2nfvm, insn);
                        if (trans_vle64ff_v(ctx, &u.f_r2nfvm)) return true;
                        break;
                    }
                    break;
                case 0x1:
                    /* ...010.. ........ .111.... .0000111 */
                    /* ../git/target/riscv/insn32.decode:369 */
                    decode_insn32_extract_r_nfvm(ctx, &u.f_rnfvm, insn);
                    if (trans_vlse64_v(ctx, &u.f_rnfvm)) return true;
                    break;
                }
                break;
            case 0x04000000:
                /* ...0.1.. ........ .111.... .0000111 */
                /* ../git/target/riscv/insn32.decode:379 */
                decode_insn32_extract_r_nfvm(ctx, &u.f_rnfvm, insn);
                if (trans_vlxei64_v(ctx, &u.f_rnfvm)) return true;
                break;
            }
            break;
        }
        break;
    case 0x0000000f:
        /* ........ ........ ........ .0001111 */
        switch ((insn >> 12) & 0x7) {
        case 0x0:
            /* ........ ........ .000.... .0001111 */
            if ((insn & 0xffff8f80u) == 0x01000000) {
                /* 00000001 00000000 00000000 00001111 */
                /* ../git/target/riscv/insn32.decode:158 */
                decode_insn32_extract_decode_insn32_Fmt_35(ctx, &u.f_empty, insn);
                if (trans_pause(ctx, &u.f_empty)) return true;
            }
            /* ../git/target/riscv/insn32.decode:159 */
            decode_insn32_extract_decode_insn32_Fmt_36(ctx, &u.f_decode_insn3224, insn);
            if (trans_fence(ctx, &u.f_decode_insn3224)) return true;
            break;
        case 0x1:
            /* ........ ........ .001.... .0001111 */
            /* ../git/target/riscv/insn32.decode:162 */
            decode_insn32_extract_decode_insn32_Fmt_35(ctx, &u.f_empty, insn);
            if (trans_fence_i(ctx, &u.f_empty)) return true;
            break;
        case 0x2:
            /* ........ ........ .010.... .0001111 */
            if ((insn & 0xff800f80u) == 0x00000000) {
                /* 00000000 0....... .0100000 00001111 */
                decode_insn32_extract_sfence_vm(ctx, &u.f_decode_insn3223, insn);
                switch ((insn >> 20) & 0x7) {
                case 0x0:
                    /* 00000000 0000.... .0100000 00001111 */
                    /* ../git/target/riscv/insn32.decode:191 */
                    if (trans_cbo_inval(ctx, &u.f_decode_insn3223)) return true;
                    break;
                case 0x1:
                    /* 00000000 0001.... .0100000 00001111 */
                    /* ../git/target/riscv/insn32.decode:189 */
                    if (trans_cbo_clean(ctx, &u.f_decode_insn3223)) return true;
                    break;
                case 0x2:
                    /* 00000000 0010.... .0100000 00001111 */
                    /* ../git/target/riscv/insn32.decode:190 */
                    if (trans_cbo_flush(ctx, &u.f_decode_insn3223)) return true;
                    break;
                case 0x4:
                    /* 00000000 0100.... .0100000 00001111 */
                    /* ../git/target/riscv/insn32.decode:194 */
                    if (trans_cbo_zero(ctx, &u.f_decode_insn3223)) return true;
                    break;
                }
            }
            /* ../git/target/riscv/insn32.decode:198 */
            decode_insn32_extract_i(ctx, &u.f_i, insn);
            if (trans_lq(ctx, &u.f_i)) return true;
            break;
        }
        break;
    case 0x00000013:
        /* ........ ........ ........ .0010011 */
        switch ((insn >> 12) & 0x7) {
        case 0x0:
            /* ........ ........ .000.... .0010011 */
            /* ../git/target/riscv/insn32.decode:136 */
            decode_insn32_extract_i(ctx, &u.f_i, insn);
            if (trans_addi(ctx, &u.f_i)) return true;
            break;
        case 0x1:
            /* ........ ........ .001.... .0010011 */
            switch ((insn >> 27) & 0x1f) {
            case 0x0:
                /* 00000... ........ .001.... .0010011 */
                /* ../git/target/riscv/insn32.decode:143 */
                decode_insn32_extract_sh(ctx, &u.f_shift, insn);
                if (trans_slli(ctx, &u.f_shift)) return true;
                break;
            case 0x1:
                /* 00001... ........ .001.... .0010011 */
                decode_insn32_extract_r2(ctx, &u.f_r2, insn);
                switch ((insn >> 20) & 0x7f) {
                case 0xf:
                    /* 00001000 1111.... .001.... .0010011 */
                    /* ../git/target/riscv/insn32.decode:785 */
                    if (trans_zip(ctx, &u.f_r2)) return true;
                    break;
                }
                break;
            case 0x2:
                /* 00010... ........ .001.... .0010011 */
                decode_insn32_extract_r2(ctx, &u.f_r2, insn);
                switch ((insn >> 20) & 0x7f) {
                case 0x0:
                    /* 00010000 0000.... .001.... .0010011 */
                    /* ../git/target/riscv/insn32.decode:917 */
                    if (trans_sha256sum0(ctx, &u.f_r2)) return true;
                    break;
                case 0x1:
                    /* 00010000 0001.... .001.... .0010011 */
                    /* ../git/target/riscv/insn32.decode:918 */
                    if (trans_sha256sum1(ctx, &u.f_r2)) return true;
                    break;
                case 0x2:
                    /* 00010000 0010.... .001.... .0010011 */
                    /* ../git/target/riscv/insn32.decode:915 */
                    if (trans_sha256sig0(ctx, &u.f_r2)) return true;
                    break;
                case 0x3:
                    /* 00010000 0011.... .001.... .0010011 */
                    /* ../git/target/riscv/insn32.decode:916 */
                    if (trans_sha256sig1(ctx, &u.f_r2)) return true;
                    break;
                case 0x4:
                    /* 00010000 0100.... .001.... .0010011 */
                    /* ../git/target/riscv/insn32.decode:928 */
                    if (trans_sha512sum0(ctx, &u.f_r2)) return true;
                    break;
                case 0x5:
                    /* 00010000 0101.... .001.... .0010011 */
                    /* ../git/target/riscv/insn32.decode:929 */
                    if (trans_sha512sum1(ctx, &u.f_r2)) return true;
                    break;
                case 0x6:
                    /* 00010000 0110.... .001.... .0010011 */
                    /* ../git/target/riscv/insn32.decode:926 */
                    if (trans_sha512sig0(ctx, &u.f_r2)) return true;
                    break;
                case 0x7:
                    /* 00010000 0111.... .001.... .0010011 */
                    /* ../git/target/riscv/insn32.decode:927 */
                    if (trans_sha512sig1(ctx, &u.f_r2)) return true;
                    break;
                case 0x8:
                    /* 00010000 1000.... .001.... .0010011 */
                    /* ../git/target/riscv/insn32.decode:931 */
                    if (trans_sm3p0(ctx, &u.f_r2)) return true;
                    break;
                case 0x9:
                    /* 00010000 1001.... .001.... .0010011 */
                    /* ../git/target/riscv/insn32.decode:932 */
                    if (trans_sm3p1(ctx, &u.f_r2)) return true;
                    break;
                }
                break;
            case 0x5:
                /* 00101... ........ .001.... .0010011 */
                /* ../git/target/riscv/insn32.decode:825 */
                decode_insn32_extract_sh(ctx, &u.f_shift, insn);
                if (trans_bseti(ctx, &u.f_shift)) return true;
                break;
            case 0x6:
                /* 00110... ........ .001.... .0010011 */
                switch ((insn >> 24) & 0x7) {
                case 0x0:
                    /* 00110000 ........ .001.... .0010011 */
                    decode_insn32_extract_r2(ctx, &u.f_r2, insn);
                    switch ((insn >> 20) & 0xf) {
                    case 0x0:
                        /* 00110000 0000.... .001.... .0010011 */
                        /* ../git/target/riscv/insn32.decode:904 */
                        if (trans_aes64im(ctx, &u.f_r2)) return true;
                        break;
                    }
                    break;
                case 0x1:
                    /* 00110001 ........ .001.... .0010011 */
                    /* ../git/target/riscv/insn32.decode:913 */
                    decode_insn32_extract_i_aes(ctx, &u.f_i, insn);
                    if (trans_aes64ks1i(ctx, &u.f_i)) return true;
                    break;
                }
                break;
            case 0x9:
                /* 01001... ........ .001.... .0010011 */
                /* ../git/target/riscv/insn32.decode:819 */
                decode_insn32_extract_sh(ctx, &u.f_shift, insn);
                if (trans_bclri(ctx, &u.f_shift)) return true;
                break;
            case 0xc:
                /* 01100... ........ .001.... .0010011 */
                decode_insn32_extract_r2(ctx, &u.f_r2, insn);
                switch ((insn >> 20) & 0x7f) {
                case 0x0:
                    /* 01100000 0000.... .001.... .0010011 */
                    /* ../git/target/riscv/insn32.decode:770 */
                    if (trans_clz(ctx, &u.f_r2)) return true;
                    break;
                case 0x1:
                    /* 01100000 0001.... .001.... .0010011 */
                    /* ../git/target/riscv/insn32.decode:772 */
                    if (trans_ctz(ctx, &u.f_r2)) return true;
                    break;
                case 0x2:
                    /* 01100000 0010.... .001.... .0010011 */
                    /* ../git/target/riscv/insn32.decode:771 */
                    if (trans_cpop(ctx, &u.f_r2)) return true;
                    break;
                case 0x4:
                    /* 01100000 0100.... .001.... .0010011 */
                    /* ../git/target/riscv/insn32.decode:779 */
                    if (trans_sext_b(ctx, &u.f_r2)) return true;
                    break;
                case 0x5:
                    /* 01100000 0101.... .001.... .0010011 */
                    /* ../git/target/riscv/insn32.decode:780 */
                    if (trans_sext_h(ctx, &u.f_r2)) return true;
                    break;
                }
                break;
            case 0xd:
                /* 01101... ........ .001.... .0010011 */
                /* ../git/target/riscv/insn32.decode:823 */
                decode_insn32_extract_sh(ctx, &u.f_shift, insn);
                if (trans_binvi(ctx, &u.f_shift)) return true;
                break;
            }
            break;
        case 0x2:
            /* ........ ........ .010.... .0010011 */
            /* ../git/target/riscv/insn32.decode:137 */
            decode_insn32_extract_i(ctx, &u.f_i, insn);
            if (trans_slti(ctx, &u.f_i)) return true;
            break;
        case 0x3:
            /* ........ ........ .011.... .0010011 */
            /* ../git/target/riscv/insn32.decode:138 */
            decode_insn32_extract_i(ctx, &u.f_i, insn);
            if (trans_sltiu(ctx, &u.f_i)) return true;
            break;
        case 0x4:
            /* ........ ........ .100.... .0010011 */
            /* ../git/target/riscv/insn32.decode:139 */
            decode_insn32_extract_i(ctx, &u.f_i, insn);
            if (trans_xori(ctx, &u.f_i)) return true;
            break;
        case 0x5:
            /* ........ ........ .101.... .0010011 */
            switch ((insn >> 27) & 0x1f) {
            case 0x0:
                /* 00000... ........ .101.... .0010011 */
                /* ../git/target/riscv/insn32.decode:144 */
                decode_insn32_extract_sh(ctx, &u.f_shift, insn);
                if (trans_srli(ctx, &u.f_shift)) return true;
                break;
            case 0x1:
                /* 00001... ........ .101.... .0010011 */
                decode_insn32_extract_r2(ctx, &u.f_r2, insn);
                switch ((insn >> 20) & 0x7f) {
                case 0xf:
                    /* 00001000 1111.... .101.... .0010011 */
                    /* ../git/target/riscv/insn32.decode:784 */
                    if (trans_unzip(ctx, &u.f_r2)) return true;
                    break;
                }
                break;
            case 0x5:
                /* 00101... ........ .101.... .0010011 */
                decode_insn32_extract_r2(ctx, &u.f_r2, insn);
                switch ((insn >> 20) & 0x7f) {
                case 0x7:
                    /* 00101000 0111.... .101.... .0010011 */
                    /* ../git/target/riscv/insn32.decode:777 */
                    if (trans_orc_b(ctx, &u.f_r2)) return true;
                    break;
                }
                break;
            case 0x8:
                /* 01000... ........ .101.... .0010011 */
                /* ../git/target/riscv/insn32.decode:145 */
                decode_insn32_extract_sh(ctx, &u.f_shift, insn);
                if (trans_srai(ctx, &u.f_shift)) return true;
                break;
            case 0x9:
                /* 01001... ........ .101.... .0010011 */
                /* ../git/target/riscv/insn32.decode:821 */
                decode_insn32_extract_sh(ctx, &u.f_shift, insn);
                if (trans_bexti(ctx, &u.f_shift)) return true;
                break;
            case 0xc:
                /* 01100... ........ .101.... .0010011 */
                /* ../git/target/riscv/insn32.decode:758 */
                decode_insn32_extract_sh(ctx, &u.f_shift, insn);
                if (trans_rori(ctx, &u.f_shift)) return true;
                break;
            case 0xd:
                /* 01101... ........ .101.... .0010011 */
                decode_insn32_extract_r2(ctx, &u.f_r2, insn);
                switch ((insn >> 20) & 0x7f) {
                case 0x7:
                    /* 01101000 0111.... .101.... .0010011 */
                    /* ../git/target/riscv/insn32.decode:782 */
                    if (trans_brev8(ctx, &u.f_r2)) return true;
                    break;
                case 0x18:
                    /* 01101001 1000.... .101.... .0010011 */
                    /* ../git/target/riscv/insn32.decode:761 */
                    if (trans_rev8_32(ctx, &u.f_r2)) return true;
                    break;
                case 0x38:
                    /* 01101011 1000.... .101.... .0010011 */
                    /* ../git/target/riscv/insn32.decode:791 */
                    if (trans_rev8_64(ctx, &u.f_r2)) return true;
                    break;
                }
                break;
            }
            break;
        case 0x6:
            /* ........ ........ .110.... .0010011 */
            /* ../git/target/riscv/insn32.decode:141 */
            decode_insn32_extract_i(ctx, &u.f_i, insn);
            if (trans_ori(ctx, &u.f_i)) return true;
            break;
        case 0x7:
            /* ........ ........ .111.... .0010011 */
            /* ../git/target/riscv/insn32.decode:142 */
            decode_insn32_extract_i(ctx, &u.f_i, insn);
            if (trans_andi(ctx, &u.f_i)) return true;
            break;
        }
        break;
    case 0x00000017:
        /* ........ ........ ........ .0010111 */
        /* ../git/target/riscv/insn32.decode:119 */
        decode_insn32_extract_u(ctx, &u.f_u, insn);
        if (trans_auipc(ctx, &u.f_u)) return true;
        break;
    case 0x0000001b:
        /* ........ ........ ........ .0011011 */
        switch ((insn >> 12) & 0x7) {
        case 0x0:
            /* ........ ........ .000.... .0011011 */
            /* ../git/target/riscv/insn32.decode:174 */
            decode_insn32_extract_i(ctx, &u.f_i, insn);
            if (trans_addiw(ctx, &u.f_i)) return true;
            break;
        case 0x1:
            /* ........ ........ .001.... .0011011 */
            switch ((insn >> 27) & 0x1f) {
            case 0x0:
                /* 00000... ........ .001.... .0011011 */
                decode_insn32_extract_sh5(ctx, &u.f_shift, insn);
                switch ((insn >> 25) & 0x3) {
                case 0x0:
                    /* 0000000. ........ .001.... .0011011 */
                    /* ../git/target/riscv/insn32.decode:175 */
                    if (trans_slliw(ctx, &u.f_shift)) return true;
                    break;
                }
                break;
            case 0x1:
                /* 00001... ........ .001.... .0011011 */
                /* ../git/target/riscv/insn32.decode:752 */
                decode_insn32_extract_sh(ctx, &u.f_shift, insn);
                if (trans_slli_uw(ctx, &u.f_shift)) return true;
                break;
            case 0xc:
                /* 01100... ........ .001.... .0011011 */
                decode_insn32_extract_r2(ctx, &u.f_r2, insn);
                switch ((insn >> 20) & 0x7f) {
                case 0x0:
                    /* 01100000 0000.... .001.... .0011011 */
                    /* ../git/target/riscv/insn32.decode:803 */
                    if (trans_clzw(ctx, &u.f_r2)) return true;
                    break;
                case 0x1:
                    /* 01100000 0001.... .001.... .0011011 */
                    /* ../git/target/riscv/insn32.decode:804 */
                    if (trans_ctzw(ctx, &u.f_r2)) return true;
                    break;
                case 0x2:
                    /* 01100000 0010.... .001.... .0011011 */
                    /* ../git/target/riscv/insn32.decode:805 */
                    if (trans_cpopw(ctx, &u.f_r2)) return true;
                    break;
                }
                break;
            }
            break;
        case 0x5:
            /* ........ ........ .101.... .0011011 */
            decode_insn32_extract_sh5(ctx, &u.f_shift, insn);
            switch ((insn >> 25) & 0x7f) {
            case 0x0:
                /* 0000000. ........ .101.... .0011011 */
                /* ../git/target/riscv/insn32.decode:176 */
                if (trans_srliw(ctx, &u.f_shift)) return true;
                break;
            case 0x20:
                /* 0100000. ........ .101.... .0011011 */
                /* ../git/target/riscv/insn32.decode:177 */
                if (trans_sraiw(ctx, &u.f_shift)) return true;
                break;
            case 0x30:
                /* 0110000. ........ .101.... .0011011 */
                /* ../git/target/riscv/insn32.decode:793 */
                if (trans_roriw(ctx, &u.f_shift)) return true;
                break;
            }
            break;
        }
        break;
    case 0x00000023:
        /* ........ ........ ........ .0100011 */
        decode_insn32_extract_s(ctx, &u.f_s, insn);
        switch ((insn >> 12) & 0x7) {
        case 0x0:
            /* ........ ........ .000.... .0100011 */
            /* ../git/target/riscv/insn32.decode:133 */
            if (trans_sb(ctx, &u.f_s)) return true;
            break;
        case 0x1:
            /* ........ ........ .001.... .0100011 */
            /* ../git/target/riscv/insn32.decode:134 */
            if (trans_sh(ctx, &u.f_s)) return true;
            break;
        case 0x2:
            /* ........ ........ .010.... .0100011 */
            /* ../git/target/riscv/insn32.decode:135 */
            if (trans_sw(ctx, &u.f_s)) return true;
            break;
        case 0x3:
            /* ........ ........ .011.... .0100011 */
            /* ../git/target/riscv/insn32.decode:173 */
            if (trans_sd(ctx, &u.f_s)) return true;
            break;
        case 0x4:
            /* ........ ........ .100.... .0100011 */
            /* ../git/target/riscv/insn32.decode:200 */
            if (trans_sq(ctx, &u.f_s)) return true;
            break;
        }
        break;
    case 0x00000027:
        /* ........ ........ ........ .0100111 */
        switch ((insn >> 12) & 0x7) {
        case 0x0:
            /* ........ ........ .000.... .0100111 */
            switch (insn & 0x14000000) {
            case 0x00000000:
                /* ...0.0.. ........ .000.... .0100111 */
                switch ((insn >> 27) & 0x1) {
                case 0x0:
                    /* ...000.. ........ .000.... .0100111 */
                    switch ((insn >> 20) & 0x1f) {
                    case 0x0:
                        /* ...000.0 0000.... .000.... .0100111 */
                        /* ../git/target/riscv/insn32.decode:356 */
                        decode_insn32_extract_r2_nfvm(ctx, &u.f_r2nfvm, insn);
                        if (trans_vse8_v(ctx, &u.f_r2nfvm)) return true;
                        break;
                    case 0x8:
                        /* ...000.0 1000.... .000.... .0100111 */
                        decode_insn32_extract_r2(ctx, &u.f_r2, insn);
                        switch (insn & 0xe2000000u) {
                        case 0x02000000:
                            /* 00000010 1000.... .000.... .0100111 */
                            /* ../git/target/riscv/insn32.decode:410 */
                            if (trans_vs1r_v(ctx, &u.f_r2)) return true;
                            break;
                        case 0x22000000:
                            /* 00100010 1000.... .000.... .0100111 */
                            /* ../git/target/riscv/insn32.decode:411 */
                            if (trans_vs2r_v(ctx, &u.f_r2)) return true;
                            break;
                        case 0x62000000:
                            /* 01100010 1000.... .000.... .0100111 */
                            /* ../git/target/riscv/insn32.decode:412 */
                            if (trans_vs4r_v(ctx, &u.f_r2)) return true;
                            break;
                        case 0xe2000000u:
                            /* 11100010 1000.... .000.... .0100111 */
                            /* ../git/target/riscv/insn32.decode:413 */
                            if (trans_vs8r_v(ctx, &u.f_r2)) return true;
                            break;
                        }
                        break;
                    case 0xb:
                        /* ...000.0 1011.... .000.... .0100111 */
                        decode_insn32_extract_r2(ctx, &u.f_r2, insn);
                        switch (insn & 0xe2000000u) {
                        case 0x02000000:
                            /* 00000010 1011.... .000.... .0100111 */
                            /* ../git/target/riscv/insn32.decode:363 */
                            if (trans_vsm_v(ctx, &u.f_r2)) return true;
                            break;
                        }
                        break;
                    }
                    break;
                case 0x1:
                    /* ...010.. ........ .000.... .0100111 */
                    /* ../git/target/riscv/insn32.decode:370 */
                    decode_insn32_extract_r_nfvm(ctx, &u.f_rnfvm, insn);
                    if (trans_vsse8_v(ctx, &u.f_rnfvm)) return true;
                    break;
                }
                break;
            case 0x04000000:
                /* ...0.1.. ........ .000.... .0100111 */
                /* ../git/target/riscv/insn32.decode:382 */
                decode_insn32_extract_r_nfvm(ctx, &u.f_rnfvm, insn);
                if (trans_vsxei8_v(ctx, &u.f_rnfvm)) return true;
                break;
            }
            break;
        case 0x1:
            /* ........ ........ .001.... .0100111 */
            /* ../git/target/riscv/insn32.decode:855 */
            decode_insn32_extract_s(ctx, &u.f_s, insn);
            if (trans_fsh(ctx, &u.f_s)) return true;
            break;
        case 0x2:
            /* ........ ........ .010.... .0100111 */
            /* ../git/target/riscv/insn32.decode:263 */
            decode_insn32_extract_s(ctx, &u.f_s, insn);
            if (trans_fsw(ctx, &u.f_s)) return true;
            break;
        case 0x3:
            /* ........ ........ .011.... .0100111 */
            /* ../git/target/riscv/insn32.decode:297 */
            decode_insn32_extract_s(ctx, &u.f_s, insn);
            if (trans_fsd(ctx, &u.f_s)) return true;
            break;
        case 0x5:
            /* ........ ........ .101.... .0100111 */
            switch (insn & 0x14000000) {
            case 0x00000000:
                /* ...0.0.. ........ .101.... .0100111 */
                switch ((insn >> 27) & 0x1) {
                case 0x0:
                    /* ...000.. ........ .101.... .0100111 */
                    decode_insn32_extract_r2_nfvm(ctx, &u.f_r2nfvm, insn);
                    switch ((insn >> 20) & 0x1f) {
                    case 0x0:
                        /* ...000.0 0000.... .101.... .0100111 */
                        /* ../git/target/riscv/insn32.decode:357 */
                        if (trans_vse16_v(ctx, &u.f_r2nfvm)) return true;
                        break;
                    }
                    break;
                case 0x1:
                    /* ...010.. ........ .101.... .0100111 */
                    /* ../git/target/riscv/insn32.decode:371 */
                    decode_insn32_extract_r_nfvm(ctx, &u.f_rnfvm, insn);
                    if (trans_vsse16_v(ctx, &u.f_rnfvm)) return true;
                    break;
                }
                break;
            case 0x04000000:
                /* ...0.1.. ........ .101.... .0100111 */
                /* ../git/target/riscv/insn32.decode:383 */
                decode_insn32_extract_r_nfvm(ctx, &u.f_rnfvm, insn);
                if (trans_vsxei16_v(ctx, &u.f_rnfvm)) return true;
                break;
            }
            break;
        case 0x6:
            /* ........ ........ .110.... .0100111 */
            switch (insn & 0x14000000) {
            case 0x00000000:
                /* ...0.0.. ........ .110.... .0100111 */
                switch ((insn >> 27) & 0x1) {
                case 0x0:
                    /* ...000.. ........ .110.... .0100111 */
                    decode_insn32_extract_r2_nfvm(ctx, &u.f_r2nfvm, insn);
                    switch ((insn >> 20) & 0x1f) {
                    case 0x0:
                        /* ...000.0 0000.... .110.... .0100111 */
                        /* ../git/target/riscv/insn32.decode:358 */
                        if (trans_vse32_v(ctx, &u.f_r2nfvm)) return true;
                        break;
                    }
                    break;
                case 0x1:
                    /* ...010.. ........ .110.... .0100111 */
                    /* ../git/target/riscv/insn32.decode:372 */
                    decode_insn32_extract_r_nfvm(ctx, &u.f_rnfvm, insn);
                    if (trans_vsse32_v(ctx, &u.f_rnfvm)) return true;
                    break;
                }
                break;
            case 0x04000000:
                /* ...0.1.. ........ .110.... .0100111 */
                /* ../git/target/riscv/insn32.decode:384 */
                decode_insn32_extract_r_nfvm(ctx, &u.f_rnfvm, insn);
                if (trans_vsxei32_v(ctx, &u.f_rnfvm)) return true;
                break;
            }
            break;
        case 0x7:
            /* ........ ........ .111.... .0100111 */
            switch (insn & 0x14000000) {
            case 0x00000000:
                /* ...0.0.. ........ .111.... .0100111 */
                switch ((insn >> 27) & 0x1) {
                case 0x0:
                    /* ...000.. ........ .111.... .0100111 */
                    decode_insn32_extract_r2_nfvm(ctx, &u.f_r2nfvm, insn);
                    switch ((insn >> 20) & 0x1f) {
                    case 0x0:
                        /* ...000.0 0000.... .111.... .0100111 */
                        /* ../git/target/riscv/insn32.decode:359 */
                        if (trans_vse64_v(ctx, &u.f_r2nfvm)) return true;
                        break;
                    }
                    break;
                case 0x1:
                    /* ...010.. ........ .111.... .0100111 */
                    /* ../git/target/riscv/insn32.decode:373 */
                    decode_insn32_extract_r_nfvm(ctx, &u.f_rnfvm, insn);
                    if (trans_vsse64_v(ctx, &u.f_rnfvm)) return true;
                    break;
                }
                break;
            case 0x04000000:
                /* ...0.1.. ........ .111.... .0100111 */
                /* ../git/target/riscv/insn32.decode:385 */
                decode_insn32_extract_r_nfvm(ctx, &u.f_rnfvm, insn);
                if (trans_vsxei64_v(ctx, &u.f_rnfvm)) return true;
                break;
            }
            break;
        }
        break;
    case 0x0000002f:
        /* ........ ........ ........ .0101111 */
        switch (insn & 0xf8007000u) {
        case 0x00002000:
            /* 00000... ........ .010.... .0101111 */
            /* ../git/target/riscv/insn32.decode:239 */
            decode_insn32_extract_atom_st(ctx, &u.f_atomic, insn);
            if (trans_amoadd_w(ctx, &u.f_atomic)) return true;
            break;
        case 0x00003000:
            /* 00000... ........ .011.... .0101111 */
            /* ../git/target/riscv/insn32.decode:252 */
            decode_insn32_extract_atom_st(ctx, &u.f_atomic, insn);
            if (trans_amoadd_d(ctx, &u.f_atomic)) return true;
            break;
        case 0x08002000:
            /* 00001... ........ .010.... .0101111 */
            /* ../git/target/riscv/insn32.decode:238 */
            decode_insn32_extract_atom_st(ctx, &u.f_atomic, insn);
            if (trans_amoswap_w(ctx, &u.f_atomic)) return true;
            break;
        case 0x08003000:
            /* 00001... ........ .011.... .0101111 */
            /* ../git/target/riscv/insn32.decode:251 */
            decode_insn32_extract_atom_st(ctx, &u.f_atomic, insn);
            if (trans_amoswap_d(ctx, &u.f_atomic)) return true;
            break;
        case 0x10002000:
            /* 00010... ........ .010.... .0101111 */
            decode_insn32_extract_atom_ld(ctx, &u.f_atomic, insn);
            switch ((insn >> 20) & 0x1f) {
            case 0x0:
                /* 00010..0 0000.... .010.... .0101111 */
                /* ../git/target/riscv/insn32.decode:236 */
                if (trans_lr_w(ctx, &u.f_atomic)) return true;
                break;
            }
            break;
        case 0x10003000:
            /* 00010... ........ .011.... .0101111 */
            decode_insn32_extract_atom_ld(ctx, &u.f_atomic, insn);
            switch ((insn >> 20) & 0x1f) {
            case 0x0:
                /* 00010..0 0000.... .011.... .0101111 */
                /* ../git/target/riscv/insn32.decode:249 */
                if (trans_lr_d(ctx, &u.f_atomic)) return true;
                break;
            }
            break;
        case 0x18002000:
            /* 00011... ........ .010.... .0101111 */
            /* ../git/target/riscv/insn32.decode:237 */
            decode_insn32_extract_atom_st(ctx, &u.f_atomic, insn);
            if (trans_sc_w(ctx, &u.f_atomic)) return true;
            break;
        case 0x18003000:
            /* 00011... ........ .011.... .0101111 */
            /* ../git/target/riscv/insn32.decode:250 */
            decode_insn32_extract_atom_st(ctx, &u.f_atomic, insn);
            if (trans_sc_d(ctx, &u.f_atomic)) return true;
            break;
        case 0x20002000:
            /* 00100... ........ .010.... .0101111 */
            /* ../git/target/riscv/insn32.decode:240 */
            decode_insn32_extract_atom_st(ctx, &u.f_atomic, insn);
            if (trans_amoxor_w(ctx, &u.f_atomic)) return true;
            break;
        case 0x20003000:
            /* 00100... ........ .011.... .0101111 */
            /* ../git/target/riscv/insn32.decode:253 */
            decode_insn32_extract_atom_st(ctx, &u.f_atomic, insn);
            if (trans_amoxor_d(ctx, &u.f_atomic)) return true;
            break;
        case 0x40002000:
            /* 01000... ........ .010.... .0101111 */
            /* ../git/target/riscv/insn32.decode:242 */
            decode_insn32_extract_atom_st(ctx, &u.f_atomic, insn);
            if (trans_amoor_w(ctx, &u.f_atomic)) return true;
            break;
        case 0x40003000:
            /* 01000... ........ .011.... .0101111 */
            /* ../git/target/riscv/insn32.decode:255 */
            decode_insn32_extract_atom_st(ctx, &u.f_atomic, insn);
            if (trans_amoor_d(ctx, &u.f_atomic)) return true;
            break;
        case 0x60002000:
            /* 01100... ........ .010.... .0101111 */
            /* ../git/target/riscv/insn32.decode:241 */
            decode_insn32_extract_atom_st(ctx, &u.f_atomic, insn);
            if (trans_amoand_w(ctx, &u.f_atomic)) return true;
            break;
        case 0x60003000:
            /* 01100... ........ .011.... .0101111 */
            /* ../git/target/riscv/insn32.decode:254 */
            decode_insn32_extract_atom_st(ctx, &u.f_atomic, insn);
            if (trans_amoand_d(ctx, &u.f_atomic)) return true;
            break;
        case 0x80002000u:
            /* 10000... ........ .010.... .0101111 */
            /* ../git/target/riscv/insn32.decode:243 */
            decode_insn32_extract_atom_st(ctx, &u.f_atomic, insn);
            if (trans_amomin_w(ctx, &u.f_atomic)) return true;
            break;
        case 0x80003000u:
            /* 10000... ........ .011.... .0101111 */
            /* ../git/target/riscv/insn32.decode:256 */
            decode_insn32_extract_atom_st(ctx, &u.f_atomic, insn);
            if (trans_amomin_d(ctx, &u.f_atomic)) return true;
            break;
        case 0xa0002000u:
            /* 10100... ........ .010.... .0101111 */
            /* ../git/target/riscv/insn32.decode:244 */
            decode_insn32_extract_atom_st(ctx, &u.f_atomic, insn);
            if (trans_amomax_w(ctx, &u.f_atomic)) return true;
            break;
        case 0xa0003000u:
            /* 10100... ........ .011.... .0101111 */
            /* ../git/target/riscv/insn32.decode:257 */
            decode_insn32_extract_atom_st(ctx, &u.f_atomic, insn);
            if (trans_amomax_d(ctx, &u.f_atomic)) return true;
            break;
        case 0xc0002000u:
            /* 11000... ........ .010.... .0101111 */
            /* ../git/target/riscv/insn32.decode:245 */
            decode_insn32_extract_atom_st(ctx, &u.f_atomic, insn);
            if (trans_amominu_w(ctx, &u.f_atomic)) return true;
            break;
        case 0xc0003000u:
            /* 11000... ........ .011.... .0101111 */
            /* ../git/target/riscv/insn32.decode:258 */
            decode_insn32_extract_atom_st(ctx, &u.f_atomic, insn);
            if (trans_amominu_d(ctx, &u.f_atomic)) return true;
            break;
        case 0xe0002000u:
            /* 11100... ........ .010.... .0101111 */
            /* ../git/target/riscv/insn32.decode:246 */
            decode_insn32_extract_atom_st(ctx, &u.f_atomic, insn);
            if (trans_amomaxu_w(ctx, &u.f_atomic)) return true;
            break;
        case 0xe0003000u:
            /* 11100... ........ .011.... .0101111 */
            /* ../git/target/riscv/insn32.decode:259 */
            decode_insn32_extract_atom_st(ctx, &u.f_atomic, insn);
            if (trans_amomaxu_d(ctx, &u.f_atomic)) return true;
            break;
        }
        break;
    case 0x00000033:
        /* ........ ........ ........ .0110011 */
        switch (insn & 0x3e007000) {
        case 0x00000000:
            /* ..00000. ........ .000.... .0110011 */
            decode_insn32_extract_r(ctx, &u.f_r, insn);
            switch ((insn >> 30) & 0x3) {
            case 0x0:
                /* 0000000. ........ .000.... .0110011 */
                /* ../git/target/riscv/insn32.decode:146 */
                if (trans_add(ctx, &u.f_r)) return true;
                break;
            case 0x1:
                /* 0100000. ........ .000.... .0110011 */
                /* ../git/target/riscv/insn32.decode:147 */
                if (trans_sub(ctx, &u.f_r)) return true;
                break;
            }
            break;
        case 0x00001000:
            /* ..00000. ........ .001.... .0110011 */
            decode_insn32_extract_r(ctx, &u.f_r, insn);
            switch ((insn >> 30) & 0x3) {
            case 0x0:
                /* 0000000. ........ .001.... .0110011 */
                /* ../git/target/riscv/insn32.decode:148 */
                if (trans_sll(ctx, &u.f_r)) return true;
                break;
            }
            break;
        case 0x00002000:
            /* ..00000. ........ .010.... .0110011 */
            decode_insn32_extract_r(ctx, &u.f_r, insn);
            switch ((insn >> 30) & 0x3) {
            case 0x0:
                /* 0000000. ........ .010.... .0110011 */
                /* ../git/target/riscv/insn32.decode:149 */
                if (trans_slt(ctx, &u.f_r)) return true;
                break;
            }
            break;
        case 0x00003000:
            /* ..00000. ........ .011.... .0110011 */
            decode_insn32_extract_r(ctx, &u.f_r, insn);
            switch ((insn >> 30) & 0x3) {
            case 0x0:
                /* 0000000. ........ .011.... .0110011 */
                /* ../git/target/riscv/insn32.decode:150 */
                if (trans_sltu(ctx, &u.f_r)) return true;
                break;
            }
            break;
        case 0x00004000:
            /* ..00000. ........ .100.... .0110011 */
            decode_insn32_extract_r(ctx, &u.f_r, insn);
            switch ((insn >> 30) & 0x3) {
            case 0x0:
                /* 0000000. ........ .100.... .0110011 */
                /* ../git/target/riscv/insn32.decode:151 */
                if (trans_xor(ctx, &u.f_r)) return true;
                break;
            case 0x1:
                /* 0100000. ........ .100.... .0110011 */
                /* ../git/target/riscv/insn32.decode:768 */
                if (trans_xnor(ctx, &u.f_r)) return true;
                break;
            }
            break;
        case 0x00005000:
            /* ..00000. ........ .101.... .0110011 */
            decode_insn32_extract_r(ctx, &u.f_r, insn);
            switch ((insn >> 30) & 0x3) {
            case 0x0:
                /* 0000000. ........ .101.... .0110011 */
                /* ../git/target/riscv/insn32.decode:152 */
                if (trans_srl(ctx, &u.f_r)) return true;
                break;
            case 0x1:
                /* 0100000. ........ .101.... .0110011 */
                /* ../git/target/riscv/insn32.decode:153 */
                if (trans_sra(ctx, &u.f_r)) return true;
                break;
            }
            break;
        case 0x00006000:
            /* ..00000. ........ .110.... .0110011 */
            decode_insn32_extract_r(ctx, &u.f_r, insn);
            switch ((insn >> 30) & 0x3) {
            case 0x0:
                /* 0000000. ........ .110.... .0110011 */
                /* ../git/target/riscv/insn32.decode:154 */
                if (trans_or(ctx, &u.f_r)) return true;
                break;
            case 0x1:
                /* 0100000. ........ .110.... .0110011 */
                /* ../git/target/riscv/insn32.decode:778 */
                if (trans_orn(ctx, &u.f_r)) return true;
                break;
            }
            break;
        case 0x00007000:
            /* ..00000. ........ .111.... .0110011 */
            decode_insn32_extract_r(ctx, &u.f_r, insn);
            switch ((insn >> 30) & 0x3) {
            case 0x0:
                /* 0000000. ........ .111.... .0110011 */
                /* ../git/target/riscv/insn32.decode:155 */
                if (trans_and(ctx, &u.f_r)) return true;
                break;
            case 0x1:
                /* 0100000. ........ .111.... .0110011 */
                /* ../git/target/riscv/insn32.decode:755 */
                if (trans_andn(ctx, &u.f_r)) return true;
                break;
            }
            break;
        case 0x02000000:
            /* ..00001. ........ .000.... .0110011 */
            decode_insn32_extract_r(ctx, &u.f_r, insn);
            switch ((insn >> 30) & 0x3) {
            case 0x0:
                /* 0000001. ........ .000.... .0110011 */
                /* ../git/target/riscv/insn32.decode:212 */
                if (trans_mul(ctx, &u.f_r)) return true;
                break;
            }
            break;
        case 0x02001000:
            /* ..00001. ........ .001.... .0110011 */
            decode_insn32_extract_r(ctx, &u.f_r, insn);
            switch ((insn >> 30) & 0x3) {
            case 0x0:
                /* 0000001. ........ .001.... .0110011 */
                /* ../git/target/riscv/insn32.decode:213 */
                if (trans_mulh(ctx, &u.f_r)) return true;
                break;
            }
            break;
        case 0x02002000:
            /* ..00001. ........ .010.... .0110011 */
            decode_insn32_extract_r(ctx, &u.f_r, insn);
            switch ((insn >> 30) & 0x3) {
            case 0x0:
                /* 0000001. ........ .010.... .0110011 */
                /* ../git/target/riscv/insn32.decode:214 */
                if (trans_mulhsu(ctx, &u.f_r)) return true;
                break;
            }
            break;
        case 0x02003000:
            /* ..00001. ........ .011.... .0110011 */
            decode_insn32_extract_r(ctx, &u.f_r, insn);
            switch ((insn >> 30) & 0x3) {
            case 0x0:
                /* 0000001. ........ .011.... .0110011 */
                /* ../git/target/riscv/insn32.decode:215 */
                if (trans_mulhu(ctx, &u.f_r)) return true;
                break;
            }
            break;
        case 0x02004000:
            /* ..00001. ........ .100.... .0110011 */
            decode_insn32_extract_r(ctx, &u.f_r, insn);
            switch ((insn >> 30) & 0x3) {
            case 0x0:
                /* 0000001. ........ .100.... .0110011 */
                /* ../git/target/riscv/insn32.decode:216 */
                if (trans_div(ctx, &u.f_r)) return true;
                break;
            }
            break;
        case 0x02005000:
            /* ..00001. ........ .101.... .0110011 */
            decode_insn32_extract_r(ctx, &u.f_r, insn);
            switch ((insn >> 30) & 0x3) {
            case 0x0:
                /* 0000001. ........ .101.... .0110011 */
                /* ../git/target/riscv/insn32.decode:217 */
                if (trans_divu(ctx, &u.f_r)) return true;
                break;
            }
            break;
        case 0x02006000:
            /* ..00001. ........ .110.... .0110011 */
            decode_insn32_extract_r(ctx, &u.f_r, insn);
            switch ((insn >> 30) & 0x3) {
            case 0x0:
                /* 0000001. ........ .110.... .0110011 */
                /* ../git/target/riscv/insn32.decode:218 */
                if (trans_rem(ctx, &u.f_r)) return true;
                break;
            }
            break;
        case 0x02007000:
            /* ..00001. ........ .111.... .0110011 */
            decode_insn32_extract_r(ctx, &u.f_r, insn);
            switch ((insn >> 30) & 0x3) {
            case 0x0:
                /* 0000001. ........ .111.... .0110011 */
                /* ../git/target/riscv/insn32.decode:219 */
                if (trans_remu(ctx, &u.f_r)) return true;
                break;
            }
            break;
        case 0x08001000:
            /* ..00100. ........ .001.... .0110011 */
            decode_insn32_extract_r(ctx, &u.f_r, insn);
            switch ((insn >> 30) & 0x3) {
            case 0x1:
                /* 0100100. ........ .001.... .0110011 */
                /* ../git/target/riscv/insn32.decode:818 */
                if (trans_bclr(ctx, &u.f_r)) return true;
                break;
            }
            break;
        case 0x08004000:
            /* ..00100. ........ .100.... .0110011 */
            switch ((insn >> 30) & 0x3) {
            case 0x0:
                /* 0000100. ........ .100.... .0110011 */
                if ((insn & 0x01f00000) == 0x00000000) {
                    /* 00001000 0000.... .100.... .0110011 */
                    /* ../git/target/riscv/insn32.decode:765 */
                    decode_insn32_extract_r2(ctx, &u.f_r2, insn);
                    if (trans_zext_h_32(ctx, &u.f_r2)) return true;
                }
                /* ../git/target/riscv/insn32.decode:766 */
                decode_insn32_extract_r(ctx, &u.f_r, insn);
                if (trans_pack(ctx, &u.f_r)) return true;
                break;
            }
            break;
        case 0x08005000:
            /* ..00100. ........ .101.... .0110011 */
            decode_insn32_extract_r(ctx, &u.f_r, insn);
            switch ((insn >> 30) & 0x3) {
            case 0x1:
                /* 0100100. ........ .101.... .0110011 */
                /* ../git/target/riscv/insn32.decode:820 */
                if (trans_bext(ctx, &u.f_r)) return true;
                break;
            }
            break;
        case 0x08007000:
            /* ..00100. ........ .111.... .0110011 */
            decode_insn32_extract_r(ctx, &u.f_r, insn);
            switch ((insn >> 30) & 0x3) {
            case 0x0:
                /* 0000100. ........ .111.... .0110011 */
                /* ../git/target/riscv/insn32.decode:783 */
                if (trans_packh(ctx, &u.f_r)) return true;
                break;
            }
            break;
        case 0x0a001000:
            /* ..00101. ........ .001.... .0110011 */
            decode_insn32_extract_r(ctx, &u.f_r, insn);
            switch ((insn >> 30) & 0x3) {
            case 0x0:
                /* 0000101. ........ .001.... .0110011 */
                /* ../git/target/riscv/insn32.decode:808 */
                if (trans_clmul(ctx, &u.f_r)) return true;
                break;
            }
            break;
        case 0x0a002000:
            /* ..00101. ........ .010.... .0110011 */
            decode_insn32_extract_r(ctx, &u.f_r, insn);
            switch ((insn >> 30) & 0x3) {
            case 0x0:
                /* 0000101. ........ .010.... .0110011 */
                /* ../git/target/riscv/insn32.decode:811 */
                if (trans_clmulr(ctx, &u.f_r)) return true;
                break;
            }
            break;
        case 0x0a003000:
            /* ..00101. ........ .011.... .0110011 */
            decode_insn32_extract_r(ctx, &u.f_r, insn);
            switch ((insn >> 30) & 0x3) {
            case 0x0:
                /* 0000101. ........ .011.... .0110011 */
                /* ../git/target/riscv/insn32.decode:809 */
                if (trans_clmulh(ctx, &u.f_r)) return true;
                break;
            }
            break;
        case 0x0a004000:
            /* ..00101. ........ .100.... .0110011 */
            decode_insn32_extract_r(ctx, &u.f_r, insn);
            switch ((insn >> 30) & 0x3) {
            case 0x0:
                /* 0000101. ........ .100.... .0110011 */
                /* ../git/target/riscv/insn32.decode:775 */
                if (trans_min(ctx, &u.f_r)) return true;
                break;
            }
            break;
        case 0x0a005000:
            /* ..00101. ........ .101.... .0110011 */
            decode_insn32_extract_r(ctx, &u.f_r, insn);
            switch ((insn >> 30) & 0x3) {
            case 0x0:
                /* 0000101. ........ .101.... .0110011 */
                /* ../git/target/riscv/insn32.decode:776 */
                if (trans_minu(ctx, &u.f_r)) return true;
                break;
            }
            break;
        case 0x0a006000:
            /* ..00101. ........ .110.... .0110011 */
            decode_insn32_extract_r(ctx, &u.f_r, insn);
            switch ((insn >> 30) & 0x3) {
            case 0x0:
                /* 0000101. ........ .110.... .0110011 */
                /* ../git/target/riscv/insn32.decode:773 */
                if (trans_max(ctx, &u.f_r)) return true;
                break;
            }
            break;
        case 0x0a007000:
            /* ..00101. ........ .111.... .0110011 */
            decode_insn32_extract_r(ctx, &u.f_r, insn);
            switch ((insn >> 30) & 0x3) {
            case 0x0:
                /* 0000101. ........ .111.... .0110011 */
                /* ../git/target/riscv/insn32.decode:774 */
                if (trans_maxu(ctx, &u.f_r)) return true;
                break;
            }
            break;
        case 0x0e005000:
            /* ..00111. ........ .101.... .0110011 */
            decode_insn32_extract_r(ctx, &u.f_r, insn);
            switch ((insn >> 30) & 0x3) {
            case 0x0:
                /* 0000111. ........ .101.... .0110011 */
                /* ../git/target/riscv/insn32.decode:938 */
                if (trans_czero_eqz(ctx, &u.f_r)) return true;
                break;
            }
            break;
        case 0x0e007000:
            /* ..00111. ........ .111.... .0110011 */
            decode_insn32_extract_r(ctx, &u.f_r, insn);
            switch ((insn >> 30) & 0x3) {
            case 0x0:
                /* 0000111. ........ .111.... .0110011 */
                /* ../git/target/riscv/insn32.decode:939 */
                if (trans_czero_nez(ctx, &u.f_r)) return true;
                break;
            }
            break;
        case 0x10000000:
            /* ..01000. ........ .000.... .0110011 */
            decode_insn32_extract_r(ctx, &u.f_r, insn);
            switch ((insn >> 30) & 0x3) {
            case 0x1:
                /* 0101000. ........ .000.... .0110011 */
                /* ../git/target/riscv/insn32.decode:919 */
                if (trans_sha512sum0r(ctx, &u.f_r)) return true;
                break;
            }
            break;
        case 0x12000000:
            /* ..01001. ........ .000.... .0110011 */
            decode_insn32_extract_r(ctx, &u.f_r, insn);
            switch ((insn >> 30) & 0x3) {
            case 0x1:
                /* 0101001. ........ .000.... .0110011 */
                /* ../git/target/riscv/insn32.decode:920 */
                if (trans_sha512sum1r(ctx, &u.f_r)) return true;
                break;
            }
            break;
        case 0x14000000:
            /* ..01010. ........ .000.... .0110011 */
            decode_insn32_extract_r(ctx, &u.f_r, insn);
            switch ((insn >> 30) & 0x3) {
            case 0x1:
                /* 0101010. ........ .000.... .0110011 */
                /* ../git/target/riscv/insn32.decode:921 */
                if (trans_sha512sig0l(ctx, &u.f_r)) return true;
                break;
            }
            break;
        case 0x16000000:
            /* ..01011. ........ .000.... .0110011 */
            decode_insn32_extract_r(ctx, &u.f_r, insn);
            switch ((insn >> 30) & 0x3) {
            case 0x1:
                /* 0101011. ........ .000.... .0110011 */
                /* ../git/target/riscv/insn32.decode:923 */
                if (trans_sha512sig1l(ctx, &u.f_r)) return true;
                break;
            }
            break;
        case 0x1c000000:
            /* ..01110. ........ .000.... .0110011 */
            decode_insn32_extract_r(ctx, &u.f_r, insn);
            switch ((insn >> 30) & 0x3) {
            case 0x1:
                /* 0101110. ........ .000.... .0110011 */
                /* ../git/target/riscv/insn32.decode:922 */
                if (trans_sha512sig0h(ctx, &u.f_r)) return true;
                break;
            }
            break;
        case 0x1e000000:
            /* ..01111. ........ .000.... .0110011 */
            decode_insn32_extract_r(ctx, &u.f_r, insn);
            switch ((insn >> 30) & 0x3) {
            case 0x1:
                /* 0101111. ........ .000.... .0110011 */
                /* ../git/target/riscv/insn32.decode:924 */
                if (trans_sha512sig1h(ctx, &u.f_r)) return true;
                break;
            }
            break;
        case 0x20001000:
            /* ..10000. ........ .001.... .0110011 */
            decode_insn32_extract_r(ctx, &u.f_r, insn);
            switch ((insn >> 30) & 0x3) {
            case 0x1:
                /* 0110000. ........ .001.... .0110011 */
                /* ../git/target/riscv/insn32.decode:756 */
                if (trans_rol(ctx, &u.f_r)) return true;
                break;
            }
            break;
        case 0x20002000:
            /* ..10000. ........ .010.... .0110011 */
            decode_insn32_extract_r(ctx, &u.f_r, insn);
            switch ((insn >> 30) & 0x3) {
            case 0x0:
                /* 0010000. ........ .010.... .0110011 */
                /* ../git/target/riscv/insn32.decode:743 */
                if (trans_sh1add(ctx, &u.f_r)) return true;
                break;
            }
            break;
        case 0x20004000:
            /* ..10000. ........ .100.... .0110011 */
            decode_insn32_extract_r(ctx, &u.f_r, insn);
            switch ((insn >> 30) & 0x3) {
            case 0x0:
                /* 0010000. ........ .100.... .0110011 */
                /* ../git/target/riscv/insn32.decode:744 */
                if (trans_sh2add(ctx, &u.f_r)) return true;
                break;
            }
            break;
        case 0x20005000:
            /* ..10000. ........ .101.... .0110011 */
            decode_insn32_extract_r(ctx, &u.f_r, insn);
            switch ((insn >> 30) & 0x3) {
            case 0x1:
                /* 0110000. ........ .101.... .0110011 */
                /* ../git/target/riscv/insn32.decode:757 */
                if (trans_ror(ctx, &u.f_r)) return true;
                break;
            }
            break;
        case 0x20006000:
            /* ..10000. ........ .110.... .0110011 */
            decode_insn32_extract_r(ctx, &u.f_r, insn);
            switch ((insn >> 30) & 0x3) {
            case 0x0:
                /* 0010000. ........ .110.... .0110011 */
                /* ../git/target/riscv/insn32.decode:745 */
                if (trans_sh3add(ctx, &u.f_r)) return true;
                break;
            }
            break;
        case 0x22000000:
            /* ..10001. ........ .000.... .0110011 */
            /* ../git/target/riscv/insn32.decode:907 */
            decode_insn32_extract_k_aes(ctx, &u.f_k_aes, insn);
            if (trans_aes32esi(ctx, &u.f_k_aes)) return true;
            break;
        case 0x26000000:
            /* ..10011. ........ .000.... .0110011 */
            /* ../git/target/riscv/insn32.decode:906 */
            decode_insn32_extract_k_aes(ctx, &u.f_k_aes, insn);
            if (trans_aes32esmi(ctx, &u.f_k_aes)) return true;
            break;
        case 0x28001000:
            /* ..10100. ........ .001.... .0110011 */
            decode_insn32_extract_r(ctx, &u.f_r, insn);
            switch ((insn >> 30) & 0x3) {
            case 0x0:
                /* 0010100. ........ .001.... .0110011 */
                /* ../git/target/riscv/insn32.decode:824 */
                if (trans_bset(ctx, &u.f_r)) return true;
                break;
            case 0x1:
                /* 0110100. ........ .001.... .0110011 */
                /* ../git/target/riscv/insn32.decode:822 */
                if (trans_binv(ctx, &u.f_r)) return true;
                break;
            }
            break;
        case 0x28002000:
            /* ..10100. ........ .010.... .0110011 */
            decode_insn32_extract_r(ctx, &u.f_r, insn);
            switch ((insn >> 30) & 0x3) {
            case 0x0:
                /* 0010100. ........ .010.... .0110011 */
                /* ../git/target/riscv/insn32.decode:814 */
                if (trans_xperm4(ctx, &u.f_r)) return true;
                break;
            }
            break;
        case 0x28004000:
            /* ..10100. ........ .100.... .0110011 */
            decode_insn32_extract_r(ctx, &u.f_r, insn);
            switch ((insn >> 30) & 0x3) {
            case 0x0:
                /* 0010100. ........ .100.... .0110011 */
                /* ../git/target/riscv/insn32.decode:815 */
                if (trans_xperm8(ctx, &u.f_r)) return true;
                break;
            }
            break;
        case 0x2a000000:
            /* ..10101. ........ .000.... .0110011 */
            /* ../git/target/riscv/insn32.decode:900 */
            decode_insn32_extract_k_aes(ctx, &u.f_k_aes, insn);
            if (trans_aes32dsi(ctx, &u.f_k_aes)) return true;
            break;
        case 0x2e000000:
            /* ..10111. ........ .000.... .0110011 */
            /* ../git/target/riscv/insn32.decode:899 */
            decode_insn32_extract_k_aes(ctx, &u.f_k_aes, insn);
            if (trans_aes32dsmi(ctx, &u.f_k_aes)) return true;
            break;
        case 0x30000000:
            /* ..11000. ........ .000.... .0110011 */
            /* ../git/target/riscv/insn32.decode:934 */
            decode_insn32_extract_k_aes(ctx, &u.f_k_aes, insn);
            if (trans_sm4ed(ctx, &u.f_k_aes)) return true;
            break;
        case 0x32000000:
            /* ..11001. ........ .000.... .0110011 */
            decode_insn32_extract_r(ctx, &u.f_r, insn);
            switch ((insn >> 30) & 0x3) {
            case 0x0:
                /* 0011001. ........ .000.... .0110011 */
                /* ../git/target/riscv/insn32.decode:909 */
                if (trans_aes64es(ctx, &u.f_r)) return true;
                break;
            }
            break;
        case 0x34000000:
            /* ..11010. ........ .000.... .0110011 */
            /* ../git/target/riscv/insn32.decode:935 */
            decode_insn32_extract_k_aes(ctx, &u.f_k_aes, insn);
            if (trans_sm4ks(ctx, &u.f_k_aes)) return true;
            break;
        case 0x36000000:
            /* ..11011. ........ .000.... .0110011 */
            decode_insn32_extract_r(ctx, &u.f_r, insn);
            switch ((insn >> 30) & 0x3) {
            case 0x0:
                /* 0011011. ........ .000.... .0110011 */
                /* ../git/target/riscv/insn32.decode:910 */
                if (trans_aes64esm(ctx, &u.f_r)) return true;
                break;
            }
            break;
        case 0x3a000000:
            /* ..11101. ........ .000.... .0110011 */
            decode_insn32_extract_r(ctx, &u.f_r, insn);
            switch ((insn >> 30) & 0x3) {
            case 0x0:
                /* 0011101. ........ .000.... .0110011 */
                /* ../git/target/riscv/insn32.decode:903 */
                if (trans_aes64ds(ctx, &u.f_r)) return true;
                break;
            }
            break;
        case 0x3e000000:
            /* ..11111. ........ .000.... .0110011 */
            decode_insn32_extract_r(ctx, &u.f_r, insn);
            switch ((insn >> 30) & 0x3) {
            case 0x0:
                /* 0011111. ........ .000.... .0110011 */
                /* ../git/target/riscv/insn32.decode:902 */
                if (trans_aes64dsm(ctx, &u.f_r)) return true;
                break;
            case 0x1:
                /* 0111111. ........ .000.... .0110011 */
                /* ../git/target/riscv/insn32.decode:912 */
                if (trans_aes64ks2(ctx, &u.f_r)) return true;
                break;
            }
            break;
        }
        break;
    case 0x00000037:
        /* ........ ........ ........ .0110111 */
        /* ../git/target/riscv/insn32.decode:118 */
        decode_insn32_extract_u(ctx, &u.f_u, insn);
        if (trans_lui(ctx, &u.f_u)) return true;
        break;
    case 0x0000003b:
        /* ........ ........ ........ .0111011 */
        switch (insn & 0xfe007000u) {
        case 0x00000000:
            /* 0000000. ........ .000.... .0111011 */
            /* ../git/target/riscv/insn32.decode:178 */
            decode_insn32_extract_r(ctx, &u.f_r, insn);
            if (trans_addw(ctx, &u.f_r)) return true;
            break;
        case 0x00001000:
            /* 0000000. ........ .001.... .0111011 */
            /* ../git/target/riscv/insn32.decode:180 */
            decode_insn32_extract_r(ctx, &u.f_r, insn);
            if (trans_sllw(ctx, &u.f_r)) return true;
            break;
        case 0x00005000:
            /* 0000000. ........ .101.... .0111011 */
            /* ../git/target/riscv/insn32.decode:181 */
            decode_insn32_extract_r(ctx, &u.f_r, insn);
            if (trans_srlw(ctx, &u.f_r)) return true;
            break;
        case 0x02000000:
            /* 0000001. ........ .000.... .0111011 */
            /* ../git/target/riscv/insn32.decode:222 */
            decode_insn32_extract_r(ctx, &u.f_r, insn);
            if (trans_mulw(ctx, &u.f_r)) return true;
            break;
        case 0x02004000:
            /* 0000001. ........ .100.... .0111011 */
            /* ../git/target/riscv/insn32.decode:223 */
            decode_insn32_extract_r(ctx, &u.f_r, insn);
            if (trans_divw(ctx, &u.f_r)) return true;
            break;
        case 0x02005000:
            /* 0000001. ........ .101.... .0111011 */
            /* ../git/target/riscv/insn32.decode:224 */
            decode_insn32_extract_r(ctx, &u.f_r, insn);
            if (trans_divuw(ctx, &u.f_r)) return true;
            break;
        case 0x02006000:
            /* 0000001. ........ .110.... .0111011 */
            /* ../git/target/riscv/insn32.decode:225 */
            decode_insn32_extract_r(ctx, &u.f_r, insn);
            if (trans_remw(ctx, &u.f_r)) return true;
            break;
        case 0x02007000:
            /* 0000001. ........ .111.... .0111011 */
            /* ../git/target/riscv/insn32.decode:226 */
            decode_insn32_extract_r(ctx, &u.f_r, insn);
            if (trans_remuw(ctx, &u.f_r)) return true;
            break;
        case 0x08000000:
            /* 0000100. ........ .000.... .0111011 */
            /* ../git/target/riscv/insn32.decode:748 */
            decode_insn32_extract_r(ctx, &u.f_r, insn);
            if (trans_add_uw(ctx, &u.f_r)) return true;
            break;
        case 0x08004000:
            /* 0000100. ........ .100.... .0111011 */
            if ((insn & 0x01f00000) == 0x00000000) {
                /* 00001000 0000.... .100.... .0111011 */
                /* ../git/target/riscv/insn32.decode:799 */
                decode_insn32_extract_r2(ctx, &u.f_r2, insn);
                if (trans_zext_h_64(ctx, &u.f_r2)) return true;
            }
            /* ../git/target/riscv/insn32.decode:800 */
            decode_insn32_extract_r(ctx, &u.f_r, insn);
            if (trans_packw(ctx, &u.f_r)) return true;
            break;
        case 0x20002000:
            /* 0010000. ........ .010.... .0111011 */
            /* ../git/target/riscv/insn32.decode:749 */
            decode_insn32_extract_r(ctx, &u.f_r, insn);
            if (trans_sh1add_uw(ctx, &u.f_r)) return true;
            break;
        case 0x20004000:
            /* 0010000. ........ .100.... .0111011 */
            /* ../git/target/riscv/insn32.decode:750 */
            decode_insn32_extract_r(ctx, &u.f_r, insn);
            if (trans_sh2add_uw(ctx, &u.f_r)) return true;
            break;
        case 0x20006000:
            /* 0010000. ........ .110.... .0111011 */
            /* ../git/target/riscv/insn32.decode:751 */
            decode_insn32_extract_r(ctx, &u.f_r, insn);
            if (trans_sh3add_uw(ctx, &u.f_r)) return true;
            break;
        case 0x40000000:
            /* 0100000. ........ .000.... .0111011 */
            /* ../git/target/riscv/insn32.decode:179 */
            decode_insn32_extract_r(ctx, &u.f_r, insn);
            if (trans_subw(ctx, &u.f_r)) return true;
            break;
        case 0x40005000:
            /* 0100000. ........ .101.... .0111011 */
            /* ../git/target/riscv/insn32.decode:182 */
            decode_insn32_extract_r(ctx, &u.f_r, insn);
            if (trans_sraw(ctx, &u.f_r)) return true;
            break;
        case 0x60001000:
            /* 0110000. ........ .001.... .0111011 */
            /* ../git/target/riscv/insn32.decode:792 */
            decode_insn32_extract_r(ctx, &u.f_r, insn);
            if (trans_rolw(ctx, &u.f_r)) return true;
            break;
        case 0x60005000:
            /* 0110000. ........ .101.... .0111011 */
            /* ../git/target/riscv/insn32.decode:794 */
            decode_insn32_extract_r(ctx, &u.f_r, insn);
            if (trans_rorw(ctx, &u.f_r)) return true;
            break;
        }
        break;
    case 0x00000043:
        /* ........ ........ ........ .1000011 */
        decode_insn32_extract_r4_rm(ctx, &u.f_decode_insn3217, insn);
        switch ((insn >> 25) & 0x3) {
        case 0x0:
            /* .....00. ........ ........ .1000011 */
            /* ../git/target/riscv/insn32.decode:264 */
            if (trans_fmadd_s(ctx, &u.f_decode_insn3217)) return true;
            break;
        case 0x1:
            /* .....01. ........ ........ .1000011 */
            /* ../git/target/riscv/insn32.decode:298 */
            if (trans_fmadd_d(ctx, &u.f_decode_insn3217)) return true;
            break;
        case 0x2:
            /* .....10. ........ ........ .1000011 */
            /* ../git/target/riscv/insn32.decode:856 */
            if (trans_fmadd_h(ctx, &u.f_decode_insn3217)) return true;
            break;
        }
        break;
    case 0x00000047:
        /* ........ ........ ........ .1000111 */
        decode_insn32_extract_r4_rm(ctx, &u.f_decode_insn3217, insn);
        switch ((insn >> 25) & 0x3) {
        case 0x0:
            /* .....00. ........ ........ .1000111 */
            /* ../git/target/riscv/insn32.decode:265 */
            if (trans_fmsub_s(ctx, &u.f_decode_insn3217)) return true;
            break;
        case 0x1:
            /* .....01. ........ ........ .1000111 */
            /* ../git/target/riscv/insn32.decode:299 */
            if (trans_fmsub_d(ctx, &u.f_decode_insn3217)) return true;
            break;
        case 0x2:
            /* .....10. ........ ........ .1000111 */
            /* ../git/target/riscv/insn32.decode:857 */
            if (trans_fmsub_h(ctx, &u.f_decode_insn3217)) return true;
            break;
        }
        break;
    case 0x0000004b:
        /* ........ ........ ........ .1001011 */
        decode_insn32_extract_r4_rm(ctx, &u.f_decode_insn3217, insn);
        switch ((insn >> 25) & 0x3) {
        case 0x0:
            /* .....00. ........ ........ .1001011 */
            /* ../git/target/riscv/insn32.decode:266 */
            if (trans_fnmsub_s(ctx, &u.f_decode_insn3217)) return true;
            break;
        case 0x1:
            /* .....01. ........ ........ .1001011 */
            /* ../git/target/riscv/insn32.decode:300 */
            if (trans_fnmsub_d(ctx, &u.f_decode_insn3217)) return true;
            break;
        case 0x2:
            /* .....10. ........ ........ .1001011 */
            /* ../git/target/riscv/insn32.decode:858 */
            if (trans_fnmsub_h(ctx, &u.f_decode_insn3217)) return true;
            break;
        }
        break;
    case 0x0000004f:
        /* ........ ........ ........ .1001111 */
        decode_insn32_extract_r4_rm(ctx, &u.f_decode_insn3217, insn);
        switch ((insn >> 25) & 0x3) {
        case 0x0:
            /* .....00. ........ ........ .1001111 */
            /* ../git/target/riscv/insn32.decode:267 */
            if (trans_fnmadd_s(ctx, &u.f_decode_insn3217)) return true;
            break;
        case 0x1:
            /* .....01. ........ ........ .1001111 */
            /* ../git/target/riscv/insn32.decode:301 */
            if (trans_fnmadd_d(ctx, &u.f_decode_insn3217)) return true;
            break;
        case 0x2:
            /* .....10. ........ ........ .1001111 */
            /* ../git/target/riscv/insn32.decode:859 */
            if (trans_fnmadd_h(ctx, &u.f_decode_insn3217)) return true;
            break;
        }
        break;
    case 0x00000053:
        /* ........ ........ ........ .1010011 */
        switch ((insn >> 25) & 0x7f) {
        case 0x0:
            /* 0000000. ........ ........ .1010011 */
            /* ../git/target/riscv/insn32.decode:268 */
            decode_insn32_extract_r_rm(ctx, &u.f_decode_insn3218, insn);
            if (trans_fadd_s(ctx, &u.f_decode_insn3218)) return true;
            break;
        case 0x1:
            /* 0000001. ........ ........ .1010011 */
            /* ../git/target/riscv/insn32.decode:302 */
            decode_insn32_extract_r_rm(ctx, &u.f_decode_insn3218, insn);
            if (trans_fadd_d(ctx, &u.f_decode_insn3218)) return true;
            break;
        case 0x2:
            /* 0000010. ........ ........ .1010011 */
            /* ../git/target/riscv/insn32.decode:860 */
            decode_insn32_extract_r_rm(ctx, &u.f_decode_insn3218, insn);
            if (trans_fadd_h(ctx, &u.f_decode_insn3218)) return true;
            break;
        case 0x4:
            /* 0000100. ........ ........ .1010011 */
            /* ../git/target/riscv/insn32.decode:269 */
            decode_insn32_extract_r_rm(ctx, &u.f_decode_insn3218, insn);
            if (trans_fsub_s(ctx, &u.f_decode_insn3218)) return true;
            break;
        case 0x5:
            /* 0000101. ........ ........ .1010011 */
            /* ../git/target/riscv/insn32.decode:303 */
            decode_insn32_extract_r_rm(ctx, &u.f_decode_insn3218, insn);
            if (trans_fsub_d(ctx, &u.f_decode_insn3218)) return true;
            break;
        case 0x6:
            /* 0000110. ........ ........ .1010011 */
            /* ../git/target/riscv/insn32.decode:861 */
            decode_insn32_extract_r_rm(ctx, &u.f_decode_insn3218, insn);
            if (trans_fsub_h(ctx, &u.f_decode_insn3218)) return true;
            break;
        case 0x8:
            /* 0001000. ........ ........ .1010011 */
            /* ../git/target/riscv/insn32.decode:270 */
            decode_insn32_extract_r_rm(ctx, &u.f_decode_insn3218, insn);
            if (trans_fmul_s(ctx, &u.f_decode_insn3218)) return true;
            break;
        case 0x9:
            /* 0001001. ........ ........ .1010011 */
            /* ../git/target/riscv/insn32.decode:304 */
            decode_insn32_extract_r_rm(ctx, &u.f_decode_insn3218, insn);
            if (trans_fmul_d(ctx, &u.f_decode_insn3218)) return true;
            break;
        case 0xa:
            /* 0001010. ........ ........ .1010011 */
            /* ../git/target/riscv/insn32.decode:862 */
            decode_insn32_extract_r_rm(ctx, &u.f_decode_insn3218, insn);
            if (trans_fmul_h(ctx, &u.f_decode_insn3218)) return true;
            break;
        case 0xc:
            /* 0001100. ........ ........ .1010011 */
            /* ../git/target/riscv/insn32.decode:271 */
            decode_insn32_extract_r_rm(ctx, &u.f_decode_insn3218, insn);
            if (trans_fdiv_s(ctx, &u.f_decode_insn3218)) return true;
            break;
        case 0xd:
            /* 0001101. ........ ........ .1010011 */
            /* ../git/target/riscv/insn32.decode:305 */
            decode_insn32_extract_r_rm(ctx, &u.f_decode_insn3218, insn);
            if (trans_fdiv_d(ctx, &u.f_decode_insn3218)) return true;
            break;
        case 0xe:
            /* 0001110. ........ ........ .1010011 */
            /* ../git/target/riscv/insn32.decode:863 */
            decode_insn32_extract_r_rm(ctx, &u.f_decode_insn3218, insn);
            if (trans_fdiv_h(ctx, &u.f_decode_insn3218)) return true;
            break;
        case 0x10:
            /* 0010000. ........ ........ .1010011 */
            decode_insn32_extract_r(ctx, &u.f_r, insn);
            switch ((insn >> 12) & 0x7) {
            case 0x0:
                /* 0010000. ........ .000.... .1010011 */
                /* ../git/target/riscv/insn32.decode:273 */
                if (trans_fsgnj_s(ctx, &u.f_r)) return true;
                break;
            case 0x1:
                /* 0010000. ........ .001.... .1010011 */
                /* ../git/target/riscv/insn32.decode:274 */
                if (trans_fsgnjn_s(ctx, &u.f_r)) return true;
                break;
            case 0x2:
                /* 0010000. ........ .010.... .1010011 */
                /* ../git/target/riscv/insn32.decode:275 */
                if (trans_fsgnjx_s(ctx, &u.f_r)) return true;
                break;
            }
            break;
        case 0x11:
            /* 0010001. ........ ........ .1010011 */
            decode_insn32_extract_r(ctx, &u.f_r, insn);
            switch ((insn >> 12) & 0x7) {
            case 0x0:
                /* 0010001. ........ .000.... .1010011 */
                /* ../git/target/riscv/insn32.decode:307 */
                if (trans_fsgnj_d(ctx, &u.f_r)) return true;
                break;
            case 0x1:
                /* 0010001. ........ .001.... .1010011 */
                /* ../git/target/riscv/insn32.decode:308 */
                if (trans_fsgnjn_d(ctx, &u.f_r)) return true;
                break;
            case 0x2:
                /* 0010001. ........ .010.... .1010011 */
                /* ../git/target/riscv/insn32.decode:309 */
                if (trans_fsgnjx_d(ctx, &u.f_r)) return true;
                break;
            }
            break;
        case 0x12:
            /* 0010010. ........ ........ .1010011 */
            decode_insn32_extract_r(ctx, &u.f_r, insn);
            switch ((insn >> 12) & 0x7) {
            case 0x0:
                /* 0010010. ........ .000.... .1010011 */
                /* ../git/target/riscv/insn32.decode:865 */
                if (trans_fsgnj_h(ctx, &u.f_r)) return true;
                break;
            case 0x1:
                /* 0010010. ........ .001.... .1010011 */
                /* ../git/target/riscv/insn32.decode:866 */
                if (trans_fsgnjn_h(ctx, &u.f_r)) return true;
                break;
            case 0x2:
                /* 0010010. ........ .010.... .1010011 */
                /* ../git/target/riscv/insn32.decode:867 */
                if (trans_fsgnjx_h(ctx, &u.f_r)) return true;
                break;
            }
            break;
        case 0x14:
            /* 0010100. ........ ........ .1010011 */
            decode_insn32_extract_r(ctx, &u.f_r, insn);
            switch ((insn >> 12) & 0x7) {
            case 0x0:
                /* 0010100. ........ .000.... .1010011 */
                /* ../git/target/riscv/insn32.decode:276 */
                if (trans_fmin_s(ctx, &u.f_r)) return true;
                break;
            case 0x1:
                /* 0010100. ........ .001.... .1010011 */
                /* ../git/target/riscv/insn32.decode:277 */
                if (trans_fmax_s(ctx, &u.f_r)) return true;
                break;
            case 0x2:
                /* 0010100. ........ .010.... .1010011 */
                /* ../git/target/riscv/insn32.decode:831 */
                if (trans_fminm_s(ctx, &u.f_r)) return true;
                break;
            case 0x3:
                /* 0010100. ........ .011.... .1010011 */
                /* ../git/target/riscv/insn32.decode:832 */
                if (trans_fmaxm_s(ctx, &u.f_r)) return true;
                break;
            }
            break;
        case 0x15:
            /* 0010101. ........ ........ .1010011 */
            decode_insn32_extract_r(ctx, &u.f_r, insn);
            switch ((insn >> 12) & 0x7) {
            case 0x0:
                /* 0010101. ........ .000.... .1010011 */
                /* ../git/target/riscv/insn32.decode:310 */
                if (trans_fmin_d(ctx, &u.f_r)) return true;
                break;
            case 0x1:
                /* 0010101. ........ .001.... .1010011 */
                /* ../git/target/riscv/insn32.decode:311 */
                if (trans_fmax_d(ctx, &u.f_r)) return true;
                break;
            case 0x2:
                /* 0010101. ........ .010.... .1010011 */
                /* ../git/target/riscv/insn32.decode:833 */
                if (trans_fminm_d(ctx, &u.f_r)) return true;
                break;
            case 0x3:
                /* 0010101. ........ .011.... .1010011 */
                /* ../git/target/riscv/insn32.decode:834 */
                if (trans_fmaxm_d(ctx, &u.f_r)) return true;
                break;
            }
            break;
        case 0x16:
            /* 0010110. ........ ........ .1010011 */
            decode_insn32_extract_r(ctx, &u.f_r, insn);
            switch ((insn >> 12) & 0x7) {
            case 0x0:
                /* 0010110. ........ .000.... .1010011 */
                /* ../git/target/riscv/insn32.decode:868 */
                if (trans_fmin_h(ctx, &u.f_r)) return true;
                break;
            case 0x1:
                /* 0010110. ........ .001.... .1010011 */
                /* ../git/target/riscv/insn32.decode:869 */
                if (trans_fmax_h(ctx, &u.f_r)) return true;
                break;
            case 0x2:
                /* 0010110. ........ .010.... .1010011 */
                /* ../git/target/riscv/insn32.decode:835 */
                if (trans_fminm_h(ctx, &u.f_r)) return true;
                break;
            case 0x3:
                /* 0010110. ........ .011.... .1010011 */
                /* ../git/target/riscv/insn32.decode:836 */
                if (trans_fmaxm_h(ctx, &u.f_r)) return true;
                break;
            }
            break;
        case 0x20:
            /* 0100000. ........ ........ .1010011 */
            decode_insn32_extract_r2_rm(ctx, &u.f_decode_insn3219, insn);
            switch ((insn >> 20) & 0x1f) {
            case 0x1:
                /* 01000000 0001.... ........ .1010011 */
                /* ../git/target/riscv/insn32.decode:312 */
                if (trans_fcvt_s_d(ctx, &u.f_decode_insn3219)) return true;
                break;
            case 0x2:
                /* 01000000 0010.... ........ .1010011 */
                /* ../git/target/riscv/insn32.decode:871 */
                if (trans_fcvt_s_h(ctx, &u.f_decode_insn3219)) return true;
                break;
            case 0x4:
                /* 01000000 0100.... ........ .1010011 */
                /* ../git/target/riscv/insn32.decode:837 */
                if (trans_fround_s(ctx, &u.f_decode_insn3219)) return true;
                break;
            case 0x5:
                /* 01000000 0101.... ........ .1010011 */
                /* ../git/target/riscv/insn32.decode:838 */
                if (trans_froundnx_s(ctx, &u.f_decode_insn3219)) return true;
                break;
            case 0x6:
                /* 01000000 0110.... ........ .1010011 */
                /* ../git/target/riscv/insn32.decode:943 */
                if (trans_fcvt_s_bf16(ctx, &u.f_decode_insn3219)) return true;
                break;
            }
            break;
        case 0x21:
            /* 0100001. ........ ........ .1010011 */
            decode_insn32_extract_r2_rm(ctx, &u.f_decode_insn3219, insn);
            switch ((insn >> 20) & 0x1f) {
            case 0x0:
                /* 01000010 0000.... ........ .1010011 */
                /* ../git/target/riscv/insn32.decode:313 */
                if (trans_fcvt_d_s(ctx, &u.f_decode_insn3219)) return true;
                break;
            case 0x2:
                /* 01000010 0010.... ........ .1010011 */
                /* ../git/target/riscv/insn32.decode:873 */
                if (trans_fcvt_d_h(ctx, &u.f_decode_insn3219)) return true;
                break;
            case 0x4:
                /* 01000010 0100.... ........ .1010011 */
                /* ../git/target/riscv/insn32.decode:839 */
                if (trans_fround_d(ctx, &u.f_decode_insn3219)) return true;
                break;
            case 0x5:
                /* 01000010 0101.... ........ .1010011 */
                /* ../git/target/riscv/insn32.decode:840 */
                if (trans_froundnx_d(ctx, &u.f_decode_insn3219)) return true;
                break;
            }
            break;
        case 0x22:
            /* 0100010. ........ ........ .1010011 */
            decode_insn32_extract_r2_rm(ctx, &u.f_decode_insn3219, insn);
            switch ((insn >> 20) & 0x1f) {
            case 0x0:
                /* 01000100 0000.... ........ .1010011 */
                /* ../git/target/riscv/insn32.decode:870 */
                if (trans_fcvt_h_s(ctx, &u.f_decode_insn3219)) return true;
                break;
            case 0x1:
                /* 01000100 0001.... ........ .1010011 */
                /* ../git/target/riscv/insn32.decode:872 */
                if (trans_fcvt_h_d(ctx, &u.f_decode_insn3219)) return true;
                break;
            case 0x4:
                /* 01000100 0100.... ........ .1010011 */
                /* ../git/target/riscv/insn32.decode:841 */
                if (trans_fround_h(ctx, &u.f_decode_insn3219)) return true;
                break;
            case 0x5:
                /* 01000100 0101.... ........ .1010011 */
                /* ../git/target/riscv/insn32.decode:842 */
                if (trans_froundnx_h(ctx, &u.f_decode_insn3219)) return true;
                break;
            case 0x8:
                /* 01000100 1000.... ........ .1010011 */
                /* ../git/target/riscv/insn32.decode:942 */
                if (trans_fcvt_bf16_s(ctx, &u.f_decode_insn3219)) return true;
                break;
            }
            break;
        case 0x2c:
            /* 0101100. ........ ........ .1010011 */
            decode_insn32_extract_r2_rm(ctx, &u.f_decode_insn3219, insn);
            switch ((insn >> 20) & 0x1f) {
            case 0x0:
                /* 01011000 0000.... ........ .1010011 */
                /* ../git/target/riscv/insn32.decode:272 */
                if (trans_fsqrt_s(ctx, &u.f_decode_insn3219)) return true;
                break;
            }
            break;
        case 0x2d:
            /* 0101101. ........ ........ .1010011 */
            decode_insn32_extract_r2_rm(ctx, &u.f_decode_insn3219, insn);
            switch ((insn >> 20) & 0x1f) {
            case 0x0:
                /* 01011010 0000.... ........ .1010011 */
                /* ../git/target/riscv/insn32.decode:306 */
                if (trans_fsqrt_d(ctx, &u.f_decode_insn3219)) return true;
                break;
            }
            break;
        case 0x2e:
            /* 0101110. ........ ........ .1010011 */
            decode_insn32_extract_r2_rm(ctx, &u.f_decode_insn3219, insn);
            switch ((insn >> 20) & 0x1f) {
            case 0x0:
                /* 01011100 0000.... ........ .1010011 */
                /* ../git/target/riscv/insn32.decode:864 */
                if (trans_fsqrt_h(ctx, &u.f_decode_insn3219)) return true;
                break;
            }
            break;
        case 0x50:
            /* 1010000. ........ ........ .1010011 */
            decode_insn32_extract_r(ctx, &u.f_r, insn);
            switch ((insn >> 12) & 0x7) {
            case 0x0:
                /* 1010000. ........ .000.... .1010011 */
                /* ../git/target/riscv/insn32.decode:283 */
                if (trans_fle_s(ctx, &u.f_r)) return true;
                break;
            case 0x1:
                /* 1010000. ........ .001.... .1010011 */
                /* ../git/target/riscv/insn32.decode:282 */
                if (trans_flt_s(ctx, &u.f_r)) return true;
                break;
            case 0x2:
                /* 1010000. ........ .010.... .1010011 */
                /* ../git/target/riscv/insn32.decode:281 */
                if (trans_feq_s(ctx, &u.f_r)) return true;
                break;
            case 0x4:
                /* 1010000. ........ .100.... .1010011 */
                /* ../git/target/riscv/insn32.decode:846 */
                if (trans_fleq_s(ctx, &u.f_r)) return true;
                break;
            case 0x5:
                /* 1010000. ........ .101.... .1010011 */
                /* ../git/target/riscv/insn32.decode:847 */
                if (trans_fltq_s(ctx, &u.f_r)) return true;
                break;
            }
            break;
        case 0x51:
            /* 1010001. ........ ........ .1010011 */
            decode_insn32_extract_r(ctx, &u.f_r, insn);
            switch ((insn >> 12) & 0x7) {
            case 0x0:
                /* 1010001. ........ .000.... .1010011 */
                /* ../git/target/riscv/insn32.decode:316 */
                if (trans_fle_d(ctx, &u.f_r)) return true;
                break;
            case 0x1:
                /* 1010001. ........ .001.... .1010011 */
                /* ../git/target/riscv/insn32.decode:315 */
                if (trans_flt_d(ctx, &u.f_r)) return true;
                break;
            case 0x2:
                /* 1010001. ........ .010.... .1010011 */
                /* ../git/target/riscv/insn32.decode:314 */
                if (trans_feq_d(ctx, &u.f_r)) return true;
                break;
            case 0x4:
                /* 1010001. ........ .100.... .1010011 */
                /* ../git/target/riscv/insn32.decode:848 */
                if (trans_fleq_d(ctx, &u.f_r)) return true;
                break;
            case 0x5:
                /* 1010001. ........ .101.... .1010011 */
                /* ../git/target/riscv/insn32.decode:849 */
                if (trans_fltq_d(ctx, &u.f_r)) return true;
                break;
            }
            break;
        case 0x52:
            /* 1010010. ........ ........ .1010011 */
            decode_insn32_extract_r(ctx, &u.f_r, insn);
            switch ((insn >> 12) & 0x7) {
            case 0x0:
                /* 1010010. ........ .000.... .1010011 */
                /* ../git/target/riscv/insn32.decode:879 */
                if (trans_fle_h(ctx, &u.f_r)) return true;
                break;
            case 0x1:
                /* 1010010. ........ .001.... .1010011 */
                /* ../git/target/riscv/insn32.decode:878 */
                if (trans_flt_h(ctx, &u.f_r)) return true;
                break;
            case 0x2:
                /* 1010010. ........ .010.... .1010011 */
                /* ../git/target/riscv/insn32.decode:877 */
                if (trans_feq_h(ctx, &u.f_r)) return true;
                break;
            case 0x4:
                /* 1010010. ........ .100.... .1010011 */
                /* ../git/target/riscv/insn32.decode:850 */
                if (trans_fleq_h(ctx, &u.f_r)) return true;
                break;
            case 0x5:
                /* 1010010. ........ .101.... .1010011 */
                /* ../git/target/riscv/insn32.decode:851 */
                if (trans_fltq_h(ctx, &u.f_r)) return true;
                break;
            }
            break;
        case 0x59:
            /* 1011001. ........ ........ .1010011 */
            decode_insn32_extract_r(ctx, &u.f_r, insn);
            switch ((insn >> 12) & 0x7) {
            case 0x0:
                /* 1011001. ........ .000.... .1010011 */
                /* ../git/target/riscv/insn32.decode:845 */
                if (trans_fmvp_d_x(ctx, &u.f_r)) return true;
                break;
            }
            break;
        case 0x60:
            /* 1100000. ........ ........ .1010011 */
            decode_insn32_extract_r2_rm(ctx, &u.f_decode_insn3219, insn);
            switch ((insn >> 20) & 0x1f) {
            case 0x0:
                /* 11000000 0000.... ........ .1010011 */
                /* ../git/target/riscv/insn32.decode:278 */
                if (trans_fcvt_w_s(ctx, &u.f_decode_insn3219)) return true;
                break;
            case 0x1:
                /* 11000000 0001.... ........ .1010011 */
                /* ../git/target/riscv/insn32.decode:279 */
                if (trans_fcvt_wu_s(ctx, &u.f_decode_insn3219)) return true;
                break;
            case 0x2:
                /* 11000000 0010.... ........ .1010011 */
                /* ../git/target/riscv/insn32.decode:290 */
                if (trans_fcvt_l_s(ctx, &u.f_decode_insn3219)) return true;
                break;
            case 0x3:
                /* 11000000 0011.... ........ .1010011 */
                /* ../git/target/riscv/insn32.decode:291 */
                if (trans_fcvt_lu_s(ctx, &u.f_decode_insn3219)) return true;
                break;
            }
            break;
        case 0x61:
            /* 1100001. ........ ........ .1010011 */
            switch ((insn >> 20) & 0x1f) {
            case 0x0:
                /* 11000010 0000.... ........ .1010011 */
                /* ../git/target/riscv/insn32.decode:318 */
                decode_insn32_extract_r2_rm(ctx, &u.f_decode_insn3219, insn);
                if (trans_fcvt_w_d(ctx, &u.f_decode_insn3219)) return true;
                break;
            case 0x1:
                /* 11000010 0001.... ........ .1010011 */
                /* ../git/target/riscv/insn32.decode:319 */
                decode_insn32_extract_r2_rm(ctx, &u.f_decode_insn3219, insn);
                if (trans_fcvt_wu_d(ctx, &u.f_decode_insn3219)) return true;
                break;
            case 0x2:
                /* 11000010 0010.... ........ .1010011 */
                /* ../git/target/riscv/insn32.decode:324 */
                decode_insn32_extract_r2_rm(ctx, &u.f_decode_insn3219, insn);
                if (trans_fcvt_l_d(ctx, &u.f_decode_insn3219)) return true;
                break;
            case 0x3:
                /* 11000010 0011.... ........ .1010011 */
                /* ../git/target/riscv/insn32.decode:325 */
                decode_insn32_extract_r2_rm(ctx, &u.f_decode_insn3219, insn);
                if (trans_fcvt_lu_d(ctx, &u.f_decode_insn3219)) return true;
                break;
            case 0x8:
                /* 11000010 1000.... ........ .1010011 */
                decode_insn32_extract_r2(ctx, &u.f_r2, insn);
                switch ((insn >> 12) & 0x7) {
                case 0x1:
                    /* 11000010 1000.... .001.... .1010011 */
                    /* ../git/target/riscv/insn32.decode:843 */
                    if (trans_fcvtmod_w_d(ctx, &u.f_r2)) return true;
                    break;
                }
                break;
            }
            break;
        case 0x62:
            /* 1100010. ........ ........ .1010011 */
            decode_insn32_extract_r2_rm(ctx, &u.f_decode_insn3219, insn);
            switch ((insn >> 20) & 0x1f) {
            case 0x0:
                /* 11000100 0000.... ........ .1010011 */
                /* ../git/target/riscv/insn32.decode:874 */
                if (trans_fcvt_w_h(ctx, &u.f_decode_insn3219)) return true;
                break;
            case 0x1:
                /* 11000100 0001.... ........ .1010011 */
                /* ../git/target/riscv/insn32.decode:875 */
                if (trans_fcvt_wu_h(ctx, &u.f_decode_insn3219)) return true;
                break;
            case 0x2:
                /* 11000100 0010.... ........ .1010011 */
                /* ../git/target/riscv/insn32.decode:886 */
                if (trans_fcvt_l_h(ctx, &u.f_decode_insn3219)) return true;
                break;
            case 0x3:
                /* 11000100 0011.... ........ .1010011 */
                /* ../git/target/riscv/insn32.decode:887 */
                if (trans_fcvt_lu_h(ctx, &u.f_decode_insn3219)) return true;
                break;
            }
            break;
        case 0x68:
            /* 1101000. ........ ........ .1010011 */
            decode_insn32_extract_r2_rm(ctx, &u.f_decode_insn3219, insn);
            switch ((insn >> 20) & 0x1f) {
            case 0x0:
                /* 11010000 0000.... ........ .1010011 */
                /* ../git/target/riscv/insn32.decode:285 */
                if (trans_fcvt_s_w(ctx, &u.f_decode_insn3219)) return true;
                break;
            case 0x1:
                /* 11010000 0001.... ........ .1010011 */
                /* ../git/target/riscv/insn32.decode:286 */
                if (trans_fcvt_s_wu(ctx, &u.f_decode_insn3219)) return true;
                break;
            case 0x2:
                /* 11010000 0010.... ........ .1010011 */
                /* ../git/target/riscv/insn32.decode:292 */
                if (trans_fcvt_s_l(ctx, &u.f_decode_insn3219)) return true;
                break;
            case 0x3:
                /* 11010000 0011.... ........ .1010011 */
                /* ../git/target/riscv/insn32.decode:293 */
                if (trans_fcvt_s_lu(ctx, &u.f_decode_insn3219)) return true;
                break;
            }
            break;
        case 0x69:
            /* 1101001. ........ ........ .1010011 */
            decode_insn32_extract_r2_rm(ctx, &u.f_decode_insn3219, insn);
            switch ((insn >> 20) & 0x1f) {
            case 0x0:
                /* 11010010 0000.... ........ .1010011 */
                /* ../git/target/riscv/insn32.decode:320 */
                if (trans_fcvt_d_w(ctx, &u.f_decode_insn3219)) return true;
                break;
            case 0x1:
                /* 11010010 0001.... ........ .1010011 */
                /* ../git/target/riscv/insn32.decode:321 */
                if (trans_fcvt_d_wu(ctx, &u.f_decode_insn3219)) return true;
                break;
            case 0x2:
                /* 11010010 0010.... ........ .1010011 */
                /* ../git/target/riscv/insn32.decode:327 */
                if (trans_fcvt_d_l(ctx, &u.f_decode_insn3219)) return true;
                break;
            case 0x3:
                /* 11010010 0011.... ........ .1010011 */
                /* ../git/target/riscv/insn32.decode:328 */
                if (trans_fcvt_d_lu(ctx, &u.f_decode_insn3219)) return true;
                break;
            }
            break;
        case 0x6a:
            /* 1101010. ........ ........ .1010011 */
            decode_insn32_extract_r2_rm(ctx, &u.f_decode_insn3219, insn);
            switch ((insn >> 20) & 0x1f) {
            case 0x0:
                /* 11010100 0000.... ........ .1010011 */
                /* ../git/target/riscv/insn32.decode:881 */
                if (trans_fcvt_h_w(ctx, &u.f_decode_insn3219)) return true;
                break;
            case 0x1:
                /* 11010100 0001.... ........ .1010011 */
                /* ../git/target/riscv/insn32.decode:882 */
                if (trans_fcvt_h_wu(ctx, &u.f_decode_insn3219)) return true;
                break;
            case 0x2:
                /* 11010100 0010.... ........ .1010011 */
                /* ../git/target/riscv/insn32.decode:888 */
                if (trans_fcvt_h_l(ctx, &u.f_decode_insn3219)) return true;
                break;
            case 0x3:
                /* 11010100 0011.... ........ .1010011 */
                /* ../git/target/riscv/insn32.decode:889 */
                if (trans_fcvt_h_lu(ctx, &u.f_decode_insn3219)) return true;
                break;
            }
            break;
        case 0x70:
            /* 1110000. ........ ........ .1010011 */
            decode_insn32_extract_r2(ctx, &u.f_r2, insn);
            switch (insn & 0x01f07000) {
            case 0x00000000:
                /* 11100000 0000.... .000.... .1010011 */
                /* ../git/target/riscv/insn32.decode:280 */
                if (trans_fmv_x_w(ctx, &u.f_r2)) return true;
                break;
            case 0x00001000:
                /* 11100000 0000.... .001.... .1010011 */
                /* ../git/target/riscv/insn32.decode:284 */
                if (trans_fclass_s(ctx, &u.f_r2)) return true;
                break;
            }
            break;
        case 0x71:
            /* 1110001. ........ ........ .1010011 */
            decode_insn32_extract_r2(ctx, &u.f_r2, insn);
            switch (insn & 0x01f07000) {
            case 0x00000000:
                /* 11100010 0000.... .000.... .1010011 */
                /* ../git/target/riscv/insn32.decode:326 */
                if (trans_fmv_x_d(ctx, &u.f_r2)) return true;
                break;
            case 0x00001000:
                /* 11100010 0000.... .001.... .1010011 */
                /* ../git/target/riscv/insn32.decode:317 */
                if (trans_fclass_d(ctx, &u.f_r2)) return true;
                break;
            case 0x00100000:
                /* 11100010 0001.... .000.... .1010011 */
                /* ../git/target/riscv/insn32.decode:844 */
                if (trans_fmvh_x_d(ctx, &u.f_r2)) return true;
                break;
            }
            break;
        case 0x72:
            /* 1110010. ........ ........ .1010011 */
            decode_insn32_extract_r2(ctx, &u.f_r2, insn);
            switch (insn & 0x01f07000) {
            case 0x00000000:
                /* 11100100 0000.... .000.... .1010011 */
                /* ../git/target/riscv/insn32.decode:876 */
                if (trans_fmv_x_h(ctx, &u.f_r2)) return true;
                break;
            case 0x00001000:
                /* 11100100 0000.... .001.... .1010011 */
                /* ../git/target/riscv/insn32.decode:880 */
                if (trans_fclass_h(ctx, &u.f_r2)) return true;
                break;
            }
            break;
        case 0x78:
            /* 1111000. ........ ........ .1010011 */
            decode_insn32_extract_r2(ctx, &u.f_r2, insn);
            switch (insn & 0x01f07000) {
            case 0x00000000:
                /* 11110000 0000.... .000.... .1010011 */
                /* ../git/target/riscv/insn32.decode:287 */
                if (trans_fmv_w_x(ctx, &u.f_r2)) return true;
                break;
            case 0x00100000:
                /* 11110000 0001.... .000.... .1010011 */
                /* ../git/target/riscv/insn32.decode:828 */
                if (trans_fli_s(ctx, &u.f_r2)) return true;
                break;
            }
            break;
        case 0x79:
            /* 1111001. ........ ........ .1010011 */
            decode_insn32_extract_r2(ctx, &u.f_r2, insn);
            switch (insn & 0x01f07000) {
            case 0x00000000:
                /* 11110010 0000.... .000.... .1010011 */
                /* ../git/target/riscv/insn32.decode:329 */
                if (trans_fmv_d_x(ctx, &u.f_r2)) return true;
                break;
            case 0x00100000:
                /* 11110010 0001.... .000.... .1010011 */
                /* ../git/target/riscv/insn32.decode:829 */
                if (trans_fli_d(ctx, &u.f_r2)) return true;
                break;
            }
            break;
        case 0x7a:
            /* 1111010. ........ ........ .1010011 */
            decode_insn32_extract_r2(ctx, &u.f_r2, insn);
            switch (insn & 0x01f07000) {
            case 0x00000000:
                /* 11110100 0000.... .000.... .1010011 */
                /* ../git/target/riscv/insn32.decode:883 */
                if (trans_fmv_h_x(ctx, &u.f_r2)) return true;
                break;
            case 0x00100000:
                /* 11110100 0001.... .000.... .1010011 */
                /* ../git/target/riscv/insn32.decode:830 */
                if (trans_fli_h(ctx, &u.f_r2)) return true;
                break;
            }
            break;
        }
        break;
    case 0x00000057:
        /* ........ ........ ........ .1010111 */
        switch (insn & 0x80007000u) {
        case 0x00000000:
            /* 0....... ........ .000.... .1010111 */
            switch ((insn >> 26) & 0x1f) {
            case 0x0:
                /* 000000.. ........ .000.... .1010111 */
                /* ../git/target/riscv/insn32.decode:416 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                if (trans_vadd_vv(ctx, &u.f_rmrr)) return true;
                break;
            case 0x1:
                /* 000001.. ........ .000.... .1010111 */
                /* ../git/target/riscv/insn32.decode:967 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                if (trans_vandn_vv(ctx, &u.f_rmrr)) return true;
                break;
            case 0x2:
                /* 000010.. ........ .000.... .1010111 */
                /* ../git/target/riscv/insn32.decode:419 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                if (trans_vsub_vv(ctx, &u.f_rmrr)) return true;
                break;
            case 0x4:
                /* 000100.. ........ .000.... .1010111 */
                /* ../git/target/riscv/insn32.decode:493 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                if (trans_vminu_vv(ctx, &u.f_rmrr)) return true;
                break;
            case 0x5:
                /* 000101.. ........ .000.... .1010111 */
                /* ../git/target/riscv/insn32.decode:495 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                if (trans_vmin_vv(ctx, &u.f_rmrr)) return true;
                break;
            case 0x6:
                /* 000110.. ........ .000.... .1010111 */
                /* ../git/target/riscv/insn32.decode:497 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                if (trans_vmaxu_vv(ctx, &u.f_rmrr)) return true;
                break;
            case 0x7:
                /* 000111.. ........ .000.... .1010111 */
                /* ../git/target/riscv/insn32.decode:499 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                if (trans_vmax_vv(ctx, &u.f_rmrr)) return true;
                break;
            case 0x9:
                /* 001001.. ........ .000.... .1010111 */
                /* ../git/target/riscv/insn32.decode:449 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                if (trans_vand_vv(ctx, &u.f_rmrr)) return true;
                break;
            case 0xa:
                /* 001010.. ........ .000.... .1010111 */
                /* ../git/target/riscv/insn32.decode:452 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                if (trans_vor_vv(ctx, &u.f_rmrr)) return true;
                break;
            case 0xb:
                /* 001011.. ........ .000.... .1010111 */
                /* ../git/target/riscv/insn32.decode:455 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                if (trans_vxor_vv(ctx, &u.f_rmrr)) return true;
                break;
            case 0xc:
                /* 001100.. ........ .000.... .1010111 */
                /* ../git/target/riscv/insn32.decode:716 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                if (trans_vrgather_vv(ctx, &u.f_rmrr)) return true;
                break;
            case 0xe:
                /* 001110.. ........ .000.... .1010111 */
                /* ../git/target/riscv/insn32.decode:717 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                if (trans_vrgatherei16_vv(ctx, &u.f_rmrr)) return true;
                break;
            case 0x10:
                /* 010000.. ........ .000.... .1010111 */
                decode_insn32_extract_r_vm_1(ctx, &u.f_rmrr, insn);
                switch ((insn >> 25) & 0x1) {
                case 0x0:
                    /* 0100000. ........ .000.... .1010111 */
                    /* ../git/target/riscv/insn32.decode:439 */
                    if (trans_vadc_vvm(ctx, &u.f_rmrr)) return true;
                    break;
                }
                break;
            case 0x11:
                /* 010001.. ........ .000.... .1010111 */
                /* ../git/target/riscv/insn32.decode:442 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                if (trans_vmadc_vvm(ctx, &u.f_rmrr)) return true;
                break;
            case 0x12:
                /* 010010.. ........ .000.... .1010111 */
                decode_insn32_extract_r_vm_1(ctx, &u.f_rmrr, insn);
                switch ((insn >> 25) & 0x1) {
                case 0x0:
                    /* 0100100. ........ .000.... .1010111 */
                    /* ../git/target/riscv/insn32.decode:445 */
                    if (trans_vsbc_vvm(ctx, &u.f_rmrr)) return true;
                    break;
                }
                break;
            case 0x13:
                /* 010011.. ........ .000.... .1010111 */
                /* ../git/target/riscv/insn32.decode:447 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                if (trans_vmsbc_vvm(ctx, &u.f_rmrr)) return true;
                break;
            case 0x14:
                /* 010100.. ........ .000.... .1010111 */
                /* ../git/target/riscv/insn32.decode:962 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                if (trans_vror_vv(ctx, &u.f_rmrr)) return true;
                break;
            case 0x15:
                /* 010101.. ........ .000.... .1010111 */
                /* ../git/target/riscv/insn32.decode:960 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                if (trans_vrol_vv(ctx, &u.f_rmrr)) return true;
                break;
            case 0x17:
                /* 010111.. ........ .000.... .1010111 */
                switch ((insn >> 25) & 0x1) {
                case 0x0:
                    /* 0101110. ........ .000.... .1010111 */
                    /* ../git/target/riscv/insn32.decode:541 */
                    decode_insn32_extract_r_vm_0(ctx, &u.f_rmrr, insn);
                    if (trans_vmerge_vvm(ctx, &u.f_rmrr)) return true;
                    break;
                case 0x1:
                    /* 0101111. ........ .000.... .1010111 */
                    decode_insn32_extract_r2(ctx, &u.f_r2, insn);
                    switch ((insn >> 20) & 0x1f) {
                    case 0x0:
                        /* 01011110 0000.... .000.... .1010111 */
                        /* ../git/target/riscv/insn32.decode:538 */
                        if (trans_vmv_v_v(ctx, &u.f_r2)) return true;
                        break;
                    }
                    break;
                }
                break;
            case 0x18:
                /* 011000.. ........ .000.... .1010111 */
                /* ../git/target/riscv/insn32.decode:473 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                if (trans_vmseq_vv(ctx, &u.f_rmrr)) return true;
                break;
            case 0x19:
                /* 011001.. ........ .000.... .1010111 */
                /* ../git/target/riscv/insn32.decode:476 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                if (trans_vmsne_vv(ctx, &u.f_rmrr)) return true;
                break;
            case 0x1a:
                /* 011010.. ........ .000.... .1010111 */
                /* ../git/target/riscv/insn32.decode:479 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                if (trans_vmsltu_vv(ctx, &u.f_rmrr)) return true;
                break;
            case 0x1b:
                /* 011011.. ........ .000.... .1010111 */
                /* ../git/target/riscv/insn32.decode:481 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                if (trans_vmslt_vv(ctx, &u.f_rmrr)) return true;
                break;
            case 0x1c:
                /* 011100.. ........ .000.... .1010111 */
                /* ../git/target/riscv/insn32.decode:483 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                if (trans_vmsleu_vv(ctx, &u.f_rmrr)) return true;
                break;
            case 0x1d:
                /* 011101.. ........ .000.... .1010111 */
                /* ../git/target/riscv/insn32.decode:486 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                if (trans_vmsle_vv(ctx, &u.f_rmrr)) return true;
                break;
            }
            break;
        case 0x00001000:
            /* 0....... ........ .001.... .1010111 */
            switch ((insn >> 26) & 0x1f) {
            case 0x0:
                /* 000000.. ........ .001.... .1010111 */
                /* ../git/target/riscv/insn32.decode:576 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                if (trans_vfadd_vv(ctx, &u.f_rmrr)) return true;
                break;
            case 0x1:
                /* 000001.. ........ .001.... .1010111 */
                /* ../git/target/riscv/insn32.decode:684 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                if (trans_vfredusum_vs(ctx, &u.f_rmrr)) return true;
                break;
            case 0x2:
                /* 000010.. ........ .001.... .1010111 */
                /* ../git/target/riscv/insn32.decode:578 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                if (trans_vfsub_vv(ctx, &u.f_rmrr)) return true;
                break;
            case 0x3:
                /* 000011.. ........ .001.... .1010111 */
                /* ../git/target/riscv/insn32.decode:685 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                if (trans_vfredosum_vs(ctx, &u.f_rmrr)) return true;
                break;
            case 0x4:
                /* 000100.. ........ .001.... .1010111 */
                /* ../git/target/riscv/insn32.decode:623 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                if (trans_vfmin_vv(ctx, &u.f_rmrr)) return true;
                break;
            case 0x5:
                /* 000101.. ........ .001.... .1010111 */
                /* ../git/target/riscv/insn32.decode:686 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                if (trans_vfredmin_vs(ctx, &u.f_rmrr)) return true;
                break;
            case 0x6:
                /* 000110.. ........ .001.... .1010111 */
                /* ../git/target/riscv/insn32.decode:625 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                if (trans_vfmax_vv(ctx, &u.f_rmrr)) return true;
                break;
            case 0x7:
                /* 000111.. ........ .001.... .1010111 */
                /* ../git/target/riscv/insn32.decode:687 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                if (trans_vfredmax_vs(ctx, &u.f_rmrr)) return true;
                break;
            case 0x8:
                /* 001000.. ........ .001.... .1010111 */
                /* ../git/target/riscv/insn32.decode:627 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                if (trans_vfsgnj_vv(ctx, &u.f_rmrr)) return true;
                break;
            case 0x9:
                /* 001001.. ........ .001.... .1010111 */
                /* ../git/target/riscv/insn32.decode:629 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                if (trans_vfsgnjn_vv(ctx, &u.f_rmrr)) return true;
                break;
            case 0xa:
                /* 001010.. ........ .001.... .1010111 */
                /* ../git/target/riscv/insn32.decode:631 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                if (trans_vfsgnjx_vv(ctx, &u.f_rmrr)) return true;
                break;
            case 0x10:
                /* 010000.. ........ .001.... .1010111 */
                decode_insn32_extract_r2rd(ctx, &u.f_decode_insn3221, insn);
                switch (insn & 0x020f8000) {
                case 0x02000000:
                    /* 0100001. ....0000 0001.... .1010111 */
                    /* ../git/target/riscv/insn32.decode:708 */
                    if (trans_vfmv_f_s(ctx, &u.f_decode_insn3221)) return true;
                    break;
                }
                break;
            case 0x12:
                /* 010010.. ........ .001.... .1010111 */
                decode_insn32_extract_r2_vm(ctx, &u.f_rmr, insn);
                switch ((insn >> 15) & 0x1f) {
                case 0x0:
                    /* 010010.. ....0000 0001.... .1010111 */
                    /* ../git/target/riscv/insn32.decode:649 */
                    if (trans_vfcvt_xu_f_v(ctx, &u.f_rmr)) return true;
                    break;
                case 0x1:
                    /* 010010.. ....0000 1001.... .1010111 */
                    /* ../git/target/riscv/insn32.decode:650 */
                    if (trans_vfcvt_x_f_v(ctx, &u.f_rmr)) return true;
                    break;
                case 0x2:
                    /* 010010.. ....0001 0001.... .1010111 */
                    /* ../git/target/riscv/insn32.decode:651 */
                    if (trans_vfcvt_f_xu_v(ctx, &u.f_rmr)) return true;
                    break;
                case 0x3:
                    /* 010010.. ....0001 1001.... .1010111 */
                    /* ../git/target/riscv/insn32.decode:652 */
                    if (trans_vfcvt_f_x_v(ctx, &u.f_rmr)) return true;
                    break;
                case 0x6:
                    /* 010010.. ....0011 0001.... .1010111 */
                    /* ../git/target/riscv/insn32.decode:653 */
                    if (trans_vfcvt_rtz_xu_f_v(ctx, &u.f_rmr)) return true;
                    break;
                case 0x7:
                    /* 010010.. ....0011 1001.... .1010111 */
                    /* ../git/target/riscv/insn32.decode:654 */
                    if (trans_vfcvt_rtz_x_f_v(ctx, &u.f_rmr)) return true;
                    break;
                case 0x8:
                    /* 010010.. ....0100 0001.... .1010111 */
                    /* ../git/target/riscv/insn32.decode:656 */
                    if (trans_vfwcvt_xu_f_v(ctx, &u.f_rmr)) return true;
                    break;
                case 0x9:
                    /* 010010.. ....0100 1001.... .1010111 */
                    /* ../git/target/riscv/insn32.decode:657 */
                    if (trans_vfwcvt_x_f_v(ctx, &u.f_rmr)) return true;
                    break;
                case 0xa:
                    /* 010010.. ....0101 0001.... .1010111 */
                    /* ../git/target/riscv/insn32.decode:658 */
                    if (trans_vfwcvt_f_xu_v(ctx, &u.f_rmr)) return true;
                    break;
                case 0xb:
                    /* 010010.. ....0101 1001.... .1010111 */
                    /* ../git/target/riscv/insn32.decode:659 */
                    if (trans_vfwcvt_f_x_v(ctx, &u.f_rmr)) return true;
                    break;
                case 0xc:
                    /* 010010.. ....0110 0001.... .1010111 */
                    /* ../git/target/riscv/insn32.decode:660 */
                    if (trans_vfwcvt_f_f_v(ctx, &u.f_rmr)) return true;
                    break;
                case 0xd:
                    /* 010010.. ....0110 1001.... .1010111 */
                    /* ../git/target/riscv/insn32.decode:947 */
                    if (trans_vfwcvtbf16_f_f_v(ctx, &u.f_rmr)) return true;
                    break;
                case 0xe:
                    /* 010010.. ....0111 0001.... .1010111 */
                    /* ../git/target/riscv/insn32.decode:661 */
                    if (trans_vfwcvt_rtz_xu_f_v(ctx, &u.f_rmr)) return true;
                    break;
                case 0xf:
                    /* 010010.. ....0111 1001.... .1010111 */
                    /* ../git/target/riscv/insn32.decode:662 */
                    if (trans_vfwcvt_rtz_x_f_v(ctx, &u.f_rmr)) return true;
                    break;
                case 0x10:
                    /* 010010.. ....1000 0001.... .1010111 */
                    /* ../git/target/riscv/insn32.decode:664 */
                    if (trans_vfncvt_xu_f_w(ctx, &u.f_rmr)) return true;
                    break;
                case 0x11:
                    /* 010010.. ....1000 1001.... .1010111 */
                    /* ../git/target/riscv/insn32.decode:665 */
                    if (trans_vfncvt_x_f_w(ctx, &u.f_rmr)) return true;
                    break;
                case 0x12:
                    /* 010010.. ....1001 0001.... .1010111 */
                    /* ../git/target/riscv/insn32.decode:666 */
                    if (trans_vfncvt_f_xu_w(ctx, &u.f_rmr)) return true;
                    break;
                case 0x13:
                    /* 010010.. ....1001 1001.... .1010111 */
                    /* ../git/target/riscv/insn32.decode:667 */
                    if (trans_vfncvt_f_x_w(ctx, &u.f_rmr)) return true;
                    break;
                case 0x14:
                    /* 010010.. ....1010 0001.... .1010111 */
                    /* ../git/target/riscv/insn32.decode:668 */
                    if (trans_vfncvt_f_f_w(ctx, &u.f_rmr)) return true;
                    break;
                case 0x15:
                    /* 010010.. ....1010 1001.... .1010111 */
                    /* ../git/target/riscv/insn32.decode:669 */
                    if (trans_vfncvt_rod_f_f_w(ctx, &u.f_rmr)) return true;
                    break;
                case 0x16:
                    /* 010010.. ....1011 0001.... .1010111 */
                    /* ../git/target/riscv/insn32.decode:670 */
                    if (trans_vfncvt_rtz_xu_f_w(ctx, &u.f_rmr)) return true;
                    break;
                case 0x17:
                    /* 010010.. ....1011 1001.... .1010111 */
                    /* ../git/target/riscv/insn32.decode:671 */
                    if (trans_vfncvt_rtz_x_f_w(ctx, &u.f_rmr)) return true;
                    break;
                case 0x1d:
                    /* 010010.. ....1110 1001.... .1010111 */
                    /* ../git/target/riscv/insn32.decode:946 */
                    if (trans_vfncvtbf16_f_f_w(ctx, &u.f_rmr)) return true;
                    break;
                }
                break;
            case 0x13:
                /* 010011.. ........ .001.... .1010111 */
                decode_insn32_extract_r2_vm(ctx, &u.f_rmr, insn);
                switch ((insn >> 15) & 0x1f) {
                case 0x0:
                    /* 010011.. ....0000 0001.... .1010111 */
                    /* ../git/target/riscv/insn32.decode:620 */
                    if (trans_vfsqrt_v(ctx, &u.f_rmr)) return true;
                    break;
                case 0x4:
                    /* 010011.. ....0010 0001.... .1010111 */
                    /* ../git/target/riscv/insn32.decode:621 */
                    if (trans_vfrsqrt7_v(ctx, &u.f_rmr)) return true;
                    break;
                case 0x5:
                    /* 010011.. ....0010 1001.... .1010111 */
                    /* ../git/target/riscv/insn32.decode:622 */
                    if (trans_vfrec7_v(ctx, &u.f_rmr)) return true;
                    break;
                case 0x10:
                    /* 010011.. ....1000 0001.... .1010111 */
                    /* ../git/target/riscv/insn32.decode:645 */
                    if (trans_vfclass_v(ctx, &u.f_rmr)) return true;
                    break;
                }
                break;
            case 0x18:
                /* 011000.. ........ .001.... .1010111 */
                /* ../git/target/riscv/insn32.decode:635 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                if (trans_vmfeq_vv(ctx, &u.f_rmrr)) return true;
                break;
            case 0x19:
                /* 011001.. ........ .001.... .1010111 */
                /* ../git/target/riscv/insn32.decode:641 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                if (trans_vmfle_vv(ctx, &u.f_rmrr)) return true;
                break;
            case 0x1b:
                /* 011011.. ........ .001.... .1010111 */
                /* ../git/target/riscv/insn32.decode:639 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                if (trans_vmflt_vv(ctx, &u.f_rmrr)) return true;
                break;
            case 0x1c:
                /* 011100.. ........ .001.... .1010111 */
                /* ../git/target/riscv/insn32.decode:637 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                if (trans_vmfne_vv(ctx, &u.f_rmrr)) return true;
                break;
            }
            break;
        case 0x00002000:
            /* 0....... ........ .010.... .1010111 */
            switch ((insn >> 26) & 0x1f) {
            case 0x0:
                /* 000000.. ........ .010.... .1010111 */
                /* ../git/target/riscv/insn32.decode:673 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                if (trans_vredsum_vs(ctx, &u.f_rmrr)) return true;
                break;
            case 0x1:
                /* 000001.. ........ .010.... .1010111 */
                /* ../git/target/riscv/insn32.decode:674 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                if (trans_vredand_vs(ctx, &u.f_rmrr)) return true;
                break;
            case 0x2:
                /* 000010.. ........ .010.... .1010111 */
                /* ../git/target/riscv/insn32.decode:675 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                if (trans_vredor_vs(ctx, &u.f_rmrr)) return true;
                break;
            case 0x3:
                /* 000011.. ........ .010.... .1010111 */
                /* ../git/target/riscv/insn32.decode:676 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                if (trans_vredxor_vs(ctx, &u.f_rmrr)) return true;
                break;
            case 0x4:
                /* 000100.. ........ .010.... .1010111 */
                /* ../git/target/riscv/insn32.decode:677 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                if (trans_vredminu_vs(ctx, &u.f_rmrr)) return true;
                break;
            case 0x5:
                /* 000101.. ........ .010.... .1010111 */
                /* ../git/target/riscv/insn32.decode:678 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                if (trans_vredmin_vs(ctx, &u.f_rmrr)) return true;
                break;
            case 0x6:
                /* 000110.. ........ .010.... .1010111 */
                /* ../git/target/riscv/insn32.decode:679 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                if (trans_vredmaxu_vs(ctx, &u.f_rmrr)) return true;
                break;
            case 0x7:
                /* 000111.. ........ .010.... .1010111 */
                /* ../git/target/riscv/insn32.decode:680 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                if (trans_vredmax_vs(ctx, &u.f_rmrr)) return true;
                break;
            case 0x8:
                /* 001000.. ........ .010.... .1010111 */
                /* ../git/target/riscv/insn32.decode:556 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                if (trans_vaaddu_vv(ctx, &u.f_rmrr)) return true;
                break;
            case 0x9:
                /* 001001.. ........ .010.... .1010111 */
                /* ../git/target/riscv/insn32.decode:554 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                if (trans_vaadd_vv(ctx, &u.f_rmrr)) return true;
                break;
            case 0xa:
                /* 001010.. ........ .010.... .1010111 */
                /* ../git/target/riscv/insn32.decode:560 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                if (trans_vasubu_vv(ctx, &u.f_rmrr)) return true;
                break;
            case 0xb:
                /* 001011.. ........ .010.... .1010111 */
                /* ../git/target/riscv/insn32.decode:558 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                if (trans_vasub_vv(ctx, &u.f_rmrr)) return true;
                break;
            case 0xc:
                /* 001100.. ........ .010.... .1010111 */
                /* ../git/target/riscv/insn32.decode:954 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                if (trans_vclmul_vv(ctx, &u.f_rmrr)) return true;
                break;
            case 0xd:
                /* 001101.. ........ .010.... .1010111 */
                /* ../git/target/riscv/insn32.decode:956 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                if (trans_vclmulh_vv(ctx, &u.f_rmrr)) return true;
                break;
            case 0x10:
                /* 010000.. ........ .010.... .1010111 */
                switch ((insn >> 15) & 0x1f) {
                case 0x0:
                    /* 010000.. ....0000 0010.... .1010111 */
                    decode_insn32_extract_r2rd(ctx, &u.f_decode_insn3221, insn);
                    switch ((insn >> 25) & 0x1) {
                    case 0x1:
                        /* 0100001. ....0000 0010.... .1010111 */
                        /* ../git/target/riscv/insn32.decode:706 */
                        if (trans_vmv_x_s(ctx, &u.f_decode_insn3221)) return true;
                        break;
                    }
                    break;
                case 0x10:
                    /* 010000.. ....1000 0010.... .1010111 */
                    /* ../git/target/riscv/insn32.decode:699 */
                    decode_insn32_extract_r2_vm(ctx, &u.f_rmr, insn);
                    if (trans_vcpop_m(ctx, &u.f_rmr)) return true;
                    break;
                case 0x11:
                    /* 010000.. ....1000 1010.... .1010111 */
                    /* ../git/target/riscv/insn32.decode:700 */
                    decode_insn32_extract_r2_vm(ctx, &u.f_rmr, insn);
                    if (trans_vfirst_m(ctx, &u.f_rmr)) return true;
                    break;
                }
                break;
            case 0x12:
                /* 010010.. ........ .010.... .1010111 */
                decode_insn32_extract_r2_vm(ctx, &u.f_rmr, insn);
                switch ((insn >> 15) & 0x1f) {
                case 0x2:
                    /* 010010.. ....0001 0010.... .1010111 */
                    /* ../git/target/riscv/insn32.decode:729 */
                    if (trans_vzext_vf8(ctx, &u.f_rmr)) return true;
                    break;
                case 0x3:
                    /* 010010.. ....0001 1010.... .1010111 */
                    /* ../git/target/riscv/insn32.decode:732 */
                    if (trans_vsext_vf8(ctx, &u.f_rmr)) return true;
                    break;
                case 0x4:
                    /* 010010.. ....0010 0010.... .1010111 */
                    /* ../git/target/riscv/insn32.decode:728 */
                    if (trans_vzext_vf4(ctx, &u.f_rmr)) return true;
                    break;
                case 0x5:
                    /* 010010.. ....0010 1010.... .1010111 */
                    /* ../git/target/riscv/insn32.decode:731 */
                    if (trans_vsext_vf4(ctx, &u.f_rmr)) return true;
                    break;
                case 0x6:
                    /* 010010.. ....0011 0010.... .1010111 */
                    /* ../git/target/riscv/insn32.decode:727 */
                    if (trans_vzext_vf2(ctx, &u.f_rmr)) return true;
                    break;
                case 0x7:
                    /* 010010.. ....0011 1010.... .1010111 */
                    /* ../git/target/riscv/insn32.decode:730 */
                    if (trans_vsext_vf2(ctx, &u.f_rmr)) return true;
                    break;
                case 0x8:
                    /* 010010.. ....0100 0010.... .1010111 */
                    /* ../git/target/riscv/insn32.decode:965 */
                    if (trans_vbrev8_v(ctx, &u.f_rmr)) return true;
                    break;
                case 0x9:
                    /* 010010.. ....0100 1010.... .1010111 */
                    /* ../git/target/riscv/insn32.decode:966 */
                    if (trans_vrev8_v(ctx, &u.f_rmr)) return true;
                    break;
                case 0xa:
                    /* 010010.. ....0101 0010.... .1010111 */
                    /* ../git/target/riscv/insn32.decode:969 */
                    if (trans_vbrev_v(ctx, &u.f_rmr)) return true;
                    break;
                case 0xc:
                    /* 010010.. ....0110 0010.... .1010111 */
                    /* ../git/target/riscv/insn32.decode:970 */
                    if (trans_vclz_v(ctx, &u.f_rmr)) return true;
                    break;
                case 0xd:
                    /* 010010.. ....0110 1010.... .1010111 */
                    /* ../git/target/riscv/insn32.decode:971 */
                    if (trans_vctz_v(ctx, &u.f_rmr)) return true;
                    break;
                case 0xe:
                    /* 010010.. ....0111 0010.... .1010111 */
                    /* ../git/target/riscv/insn32.decode:972 */
                    if (trans_vcpop_v(ctx, &u.f_rmr)) return true;
                    break;
                }
                break;
            case 0x14:
                /* 010100.. ........ .010.... .1010111 */
                switch ((insn >> 15) & 0x1f) {
                case 0x1:
                    /* 010100.. ....0000 1010.... .1010111 */
                    /* ../git/target/riscv/insn32.decode:701 */
                    decode_insn32_extract_r2_vm(ctx, &u.f_rmr, insn);
                    if (trans_vmsbf_m(ctx, &u.f_rmr)) return true;
                    break;
                case 0x2:
                    /* 010100.. ....0001 0010.... .1010111 */
                    /* ../git/target/riscv/insn32.decode:703 */
                    decode_insn32_extract_r2_vm(ctx, &u.f_rmr, insn);
                    if (trans_vmsof_m(ctx, &u.f_rmr)) return true;
                    break;
                case 0x3:
                    /* 010100.. ....0001 1010.... .1010111 */
                    /* ../git/target/riscv/insn32.decode:702 */
                    decode_insn32_extract_r2_vm(ctx, &u.f_rmr, insn);
                    if (trans_vmsif_m(ctx, &u.f_rmr)) return true;
                    break;
                case 0x10:
                    /* 010100.. ....1000 0010.... .1010111 */
                    /* ../git/target/riscv/insn32.decode:704 */
                    decode_insn32_extract_r2_vm(ctx, &u.f_rmr, insn);
                    if (trans_viota_m(ctx, &u.f_rmr)) return true;
                    break;
                case 0x11:
                    /* 010100.. ....1000 1010.... .1010111 */
                    decode_insn32_extract_r1_vm(ctx, &u.f_decode_insn3220, insn);
                    switch ((insn >> 20) & 0x1f) {
                    case 0x0:
                        /* 010100.0 00001000 1010.... .1010111 */
                        /* ../git/target/riscv/insn32.decode:705 */
                        if (trans_vid_v(ctx, &u.f_decode_insn3220)) return true;
                        break;
                    }
                    break;
                }
                break;
            case 0x17:
                /* 010111.. ........ .010.... .1010111 */
                /* ../git/target/riscv/insn32.decode:720 */
                decode_insn32_extract_r(ctx, &u.f_r, insn);
                if (trans_vcompress_vm(ctx, &u.f_r)) return true;
                break;
            case 0x18:
                /* 011000.. ........ .010.... .1010111 */
                /* ../git/target/riscv/insn32.decode:693 */
                decode_insn32_extract_r(ctx, &u.f_r, insn);
                if (trans_vmandn_mm(ctx, &u.f_r)) return true;
                break;
            case 0x19:
                /* 011001.. ........ .010.... .1010111 */
                /* ../git/target/riscv/insn32.decode:691 */
                decode_insn32_extract_r(ctx, &u.f_r, insn);
                if (trans_vmand_mm(ctx, &u.f_r)) return true;
                break;
            case 0x1a:
                /* 011010.. ........ .010.... .1010111 */
                /* ../git/target/riscv/insn32.decode:695 */
                decode_insn32_extract_r(ctx, &u.f_r, insn);
                if (trans_vmor_mm(ctx, &u.f_r)) return true;
                break;
            case 0x1b:
                /* 011011.. ........ .010.... .1010111 */
                /* ../git/target/riscv/insn32.decode:694 */
                decode_insn32_extract_r(ctx, &u.f_r, insn);
                if (trans_vmxor_mm(ctx, &u.f_r)) return true;
                break;
            case 0x1c:
                /* 011100.. ........ .010.... .1010111 */
                /* ../git/target/riscv/insn32.decode:697 */
                decode_insn32_extract_r(ctx, &u.f_r, insn);
                if (trans_vmorn_mm(ctx, &u.f_r)) return true;
                break;
            case 0x1d:
                /* 011101.. ........ .010.... .1010111 */
                /* ../git/target/riscv/insn32.decode:692 */
                decode_insn32_extract_r(ctx, &u.f_r, insn);
                if (trans_vmnand_mm(ctx, &u.f_r)) return true;
                break;
            case 0x1e:
                /* 011110.. ........ .010.... .1010111 */
                /* ../git/target/riscv/insn32.decode:696 */
                decode_insn32_extract_r(ctx, &u.f_r, insn);
                if (trans_vmnor_mm(ctx, &u.f_r)) return true;
                break;
            case 0x1f:
                /* 011111.. ........ .010.... .1010111 */
                /* ../git/target/riscv/insn32.decode:698 */
                decode_insn32_extract_r(ctx, &u.f_r, insn);
                if (trans_vmxnor_mm(ctx, &u.f_r)) return true;
                break;
            }
            break;
        case 0x00003000:
            /* 0....... ........ .011.... .1010111 */
            switch ((insn >> 27) & 0xf) {
            case 0x0:
                /* 00000... ........ .011.... .1010111 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                switch ((insn >> 26) & 0x1) {
                case 0x0:
                    /* 000000.. ........ .011.... .1010111 */
                    /* ../git/target/riscv/insn32.decode:418 */
                    if (trans_vadd_vi(ctx, &u.f_rmrr)) return true;
                    break;
                }
                break;
            case 0x1:
                /* 00001... ........ .011.... .1010111 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                switch ((insn >> 26) & 0x1) {
                case 0x1:
                    /* 000011.. ........ .011.... .1010111 */
                    /* ../git/target/riscv/insn32.decode:422 */
                    if (trans_vrsub_vi(ctx, &u.f_rmrr)) return true;
                    break;
                }
                break;
            case 0x4:
                /* 00100... ........ .011.... .1010111 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                switch ((insn >> 26) & 0x1) {
                case 0x1:
                    /* 001001.. ........ .011.... .1010111 */
                    /* ../git/target/riscv/insn32.decode:451 */
                    if (trans_vand_vi(ctx, &u.f_rmrr)) return true;
                    break;
                }
                break;
            case 0x5:
                /* 00101... ........ .011.... .1010111 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                switch ((insn >> 26) & 0x1) {
                case 0x0:
                    /* 001010.. ........ .011.... .1010111 */
                    /* ../git/target/riscv/insn32.decode:454 */
                    if (trans_vor_vi(ctx, &u.f_rmrr)) return true;
                    break;
                case 0x1:
                    /* 001011.. ........ .011.... .1010111 */
                    /* ../git/target/riscv/insn32.decode:457 */
                    if (trans_vxor_vi(ctx, &u.f_rmrr)) return true;
                    break;
                }
                break;
            case 0x6:
                /* 00110... ........ .011.... .1010111 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                switch ((insn >> 26) & 0x1) {
                case 0x0:
                    /* 001100.. ........ .011.... .1010111 */
                    /* ../git/target/riscv/insn32.decode:719 */
                    if (trans_vrgather_vi(ctx, &u.f_rmrr)) return true;
                    break;
                }
                break;
            case 0x7:
                /* 00111... ........ .011.... .1010111 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                switch ((insn >> 26) & 0x1) {
                case 0x0:
                    /* 001110.. ........ .011.... .1010111 */
                    /* ../git/target/riscv/insn32.decode:711 */
                    if (trans_vslideup_vi(ctx, &u.f_rmrr)) return true;
                    break;
                case 0x1:
                    /* 001111.. ........ .011.... .1010111 */
                    /* ../git/target/riscv/insn32.decode:714 */
                    if (trans_vslidedown_vi(ctx, &u.f_rmrr)) return true;
                    break;
                }
                break;
            case 0x8:
                /* 01000... ........ .011.... .1010111 */
                switch ((insn >> 26) & 0x1) {
                case 0x0:
                    /* 010000.. ........ .011.... .1010111 */
                    decode_insn32_extract_r_vm_1(ctx, &u.f_rmrr, insn);
                    switch ((insn >> 25) & 0x1) {
                    case 0x0:
                        /* 0100000. ........ .011.... .1010111 */
                        /* ../git/target/riscv/insn32.decode:441 */
                        if (trans_vadc_vim(ctx, &u.f_rmrr)) return true;
                        break;
                    }
                    break;
                case 0x1:
                    /* 010001.. ........ .011.... .1010111 */
                    /* ../git/target/riscv/insn32.decode:444 */
                    decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                    if (trans_vmadc_vim(ctx, &u.f_rmrr)) return true;
                    break;
                }
                break;
            case 0xa:
                /* 01010... ........ .011.... .1010111 */
                /* ../git/target/riscv/insn32.decode:964 */
                decode_insn32_extract_r2_zimm6(ctx, &u.f_rmrr, insn);
                if (trans_vror_vi(ctx, &u.f_rmrr)) return true;
                break;
            case 0xb:
                /* 01011... ........ .011.... .1010111 */
                switch ((insn >> 25) & 0x3) {
                case 0x2:
                    /* 0101110. ........ .011.... .1010111 */
                    /* ../git/target/riscv/insn32.decode:543 */
                    decode_insn32_extract_r_vm_0(ctx, &u.f_rmrr, insn);
                    if (trans_vmerge_vim(ctx, &u.f_rmrr)) return true;
                    break;
                case 0x3:
                    /* 0101111. ........ .011.... .1010111 */
                    decode_insn32_extract_r2(ctx, &u.f_r2, insn);
                    switch ((insn >> 20) & 0x1f) {
                    case 0x0:
                        /* 01011110 0000.... .011.... .1010111 */
                        /* ../git/target/riscv/insn32.decode:540 */
                        if (trans_vmv_v_i(ctx, &u.f_r2)) return true;
                        break;
                    }
                    break;
                }
                break;
            case 0xc:
                /* 01100... ........ .011.... .1010111 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                switch ((insn >> 26) & 0x1) {
                case 0x0:
                    /* 011000.. ........ .011.... .1010111 */
                    /* ../git/target/riscv/insn32.decode:475 */
                    if (trans_vmseq_vi(ctx, &u.f_rmrr)) return true;
                    break;
                case 0x1:
                    /* 011001.. ........ .011.... .1010111 */
                    /* ../git/target/riscv/insn32.decode:478 */
                    if (trans_vmsne_vi(ctx, &u.f_rmrr)) return true;
                    break;
                }
                break;
            case 0xe:
                /* 01110... ........ .011.... .1010111 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                switch ((insn >> 26) & 0x1) {
                case 0x0:
                    /* 011100.. ........ .011.... .1010111 */
                    /* ../git/target/riscv/insn32.decode:485 */
                    if (trans_vmsleu_vi(ctx, &u.f_rmrr)) return true;
                    break;
                case 0x1:
                    /* 011101.. ........ .011.... .1010111 */
                    /* ../git/target/riscv/insn32.decode:488 */
                    if (trans_vmsle_vi(ctx, &u.f_rmrr)) return true;
                    break;
                }
                break;
            case 0xf:
                /* 01111... ........ .011.... .1010111 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                switch ((insn >> 26) & 0x1) {
                case 0x0:
                    /* 011110.. ........ .011.... .1010111 */
                    /* ../git/target/riscv/insn32.decode:490 */
                    if (trans_vmsgtu_vi(ctx, &u.f_rmrr)) return true;
                    break;
                case 0x1:
                    /* 011111.. ........ .011.... .1010111 */
                    /* ../git/target/riscv/insn32.decode:492 */
                    if (trans_vmsgt_vi(ctx, &u.f_rmrr)) return true;
                    break;
                }
                break;
            }
            break;
        case 0x00004000:
            /* 0....... ........ .100.... .1010111 */
            switch ((insn >> 26) & 0x1f) {
            case 0x0:
                /* 000000.. ........ .100.... .1010111 */
                /* ../git/target/riscv/insn32.decode:417 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                if (trans_vadd_vx(ctx, &u.f_rmrr)) return true;
                break;
            case 0x1:
                /* 000001.. ........ .100.... .1010111 */
                /* ../git/target/riscv/insn32.decode:968 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                if (trans_vandn_vx(ctx, &u.f_rmrr)) return true;
                break;
            case 0x2:
                /* 000010.. ........ .100.... .1010111 */
                /* ../git/target/riscv/insn32.decode:420 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                if (trans_vsub_vx(ctx, &u.f_rmrr)) return true;
                break;
            case 0x3:
                /* 000011.. ........ .100.... .1010111 */
                /* ../git/target/riscv/insn32.decode:421 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                if (trans_vrsub_vx(ctx, &u.f_rmrr)) return true;
                break;
            case 0x4:
                /* 000100.. ........ .100.... .1010111 */
                /* ../git/target/riscv/insn32.decode:494 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                if (trans_vminu_vx(ctx, &u.f_rmrr)) return true;
                break;
            case 0x5:
                /* 000101.. ........ .100.... .1010111 */
                /* ../git/target/riscv/insn32.decode:496 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                if (trans_vmin_vx(ctx, &u.f_rmrr)) return true;
                break;
            case 0x6:
                /* 000110.. ........ .100.... .1010111 */
                /* ../git/target/riscv/insn32.decode:498 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                if (trans_vmaxu_vx(ctx, &u.f_rmrr)) return true;
                break;
            case 0x7:
                /* 000111.. ........ .100.... .1010111 */
                /* ../git/target/riscv/insn32.decode:500 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                if (trans_vmax_vx(ctx, &u.f_rmrr)) return true;
                break;
            case 0x9:
                /* 001001.. ........ .100.... .1010111 */
                /* ../git/target/riscv/insn32.decode:450 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                if (trans_vand_vx(ctx, &u.f_rmrr)) return true;
                break;
            case 0xa:
                /* 001010.. ........ .100.... .1010111 */
                /* ../git/target/riscv/insn32.decode:453 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                if (trans_vor_vx(ctx, &u.f_rmrr)) return true;
                break;
            case 0xb:
                /* 001011.. ........ .100.... .1010111 */
                /* ../git/target/riscv/insn32.decode:456 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                if (trans_vxor_vx(ctx, &u.f_rmrr)) return true;
                break;
            case 0xc:
                /* 001100.. ........ .100.... .1010111 */
                /* ../git/target/riscv/insn32.decode:718 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                if (trans_vrgather_vx(ctx, &u.f_rmrr)) return true;
                break;
            case 0xe:
                /* 001110.. ........ .100.... .1010111 */
                /* ../git/target/riscv/insn32.decode:710 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                if (trans_vslideup_vx(ctx, &u.f_rmrr)) return true;
                break;
            case 0xf:
                /* 001111.. ........ .100.... .1010111 */
                /* ../git/target/riscv/insn32.decode:713 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                if (trans_vslidedown_vx(ctx, &u.f_rmrr)) return true;
                break;
            case 0x10:
                /* 010000.. ........ .100.... .1010111 */
                decode_insn32_extract_r_vm_1(ctx, &u.f_rmrr, insn);
                switch ((insn >> 25) & 0x1) {
                case 0x0:
                    /* 0100000. ........ .100.... .1010111 */
                    /* ../git/target/riscv/insn32.decode:440 */
                    if (trans_vadc_vxm(ctx, &u.f_rmrr)) return true;
                    break;
                }
                break;
            case 0x11:
                /* 010001.. ........ .100.... .1010111 */
                /* ../git/target/riscv/insn32.decode:443 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                if (trans_vmadc_vxm(ctx, &u.f_rmrr)) return true;
                break;
            case 0x12:
                /* 010010.. ........ .100.... .1010111 */
                decode_insn32_extract_r_vm_1(ctx, &u.f_rmrr, insn);
                switch ((insn >> 25) & 0x1) {
                case 0x0:
                    /* 0100100. ........ .100.... .1010111 */
                    /* ../git/target/riscv/insn32.decode:446 */
                    if (trans_vsbc_vxm(ctx, &u.f_rmrr)) return true;
                    break;
                }
                break;
            case 0x13:
                /* 010011.. ........ .100.... .1010111 */
                /* ../git/target/riscv/insn32.decode:448 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                if (trans_vmsbc_vxm(ctx, &u.f_rmrr)) return true;
                break;
            case 0x14:
                /* 010100.. ........ .100.... .1010111 */
                /* ../git/target/riscv/insn32.decode:963 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                if (trans_vror_vx(ctx, &u.f_rmrr)) return true;
                break;
            case 0x15:
                /* 010101.. ........ .100.... .1010111 */
                /* ../git/target/riscv/insn32.decode:961 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                if (trans_vrol_vx(ctx, &u.f_rmrr)) return true;
                break;
            case 0x17:
                /* 010111.. ........ .100.... .1010111 */
                switch ((insn >> 25) & 0x1) {
                case 0x0:
                    /* 0101110. ........ .100.... .1010111 */
                    /* ../git/target/riscv/insn32.decode:542 */
                    decode_insn32_extract_r_vm_0(ctx, &u.f_rmrr, insn);
                    if (trans_vmerge_vxm(ctx, &u.f_rmrr)) return true;
                    break;
                case 0x1:
                    /* 0101111. ........ .100.... .1010111 */
                    decode_insn32_extract_r2(ctx, &u.f_r2, insn);
                    switch ((insn >> 20) & 0x1f) {
                    case 0x0:
                        /* 01011110 0000.... .100.... .1010111 */
                        /* ../git/target/riscv/insn32.decode:539 */
                        if (trans_vmv_v_x(ctx, &u.f_r2)) return true;
                        break;
                    }
                    break;
                }
                break;
            case 0x18:
                /* 011000.. ........ .100.... .1010111 */
                /* ../git/target/riscv/insn32.decode:474 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                if (trans_vmseq_vx(ctx, &u.f_rmrr)) return true;
                break;
            case 0x19:
                /* 011001.. ........ .100.... .1010111 */
                /* ../git/target/riscv/insn32.decode:477 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                if (trans_vmsne_vx(ctx, &u.f_rmrr)) return true;
                break;
            case 0x1a:
                /* 011010.. ........ .100.... .1010111 */
                /* ../git/target/riscv/insn32.decode:480 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                if (trans_vmsltu_vx(ctx, &u.f_rmrr)) return true;
                break;
            case 0x1b:
                /* 011011.. ........ .100.... .1010111 */
                /* ../git/target/riscv/insn32.decode:482 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                if (trans_vmslt_vx(ctx, &u.f_rmrr)) return true;
                break;
            case 0x1c:
                /* 011100.. ........ .100.... .1010111 */
                /* ../git/target/riscv/insn32.decode:484 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                if (trans_vmsleu_vx(ctx, &u.f_rmrr)) return true;
                break;
            case 0x1d:
                /* 011101.. ........ .100.... .1010111 */
                /* ../git/target/riscv/insn32.decode:487 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                if (trans_vmsle_vx(ctx, &u.f_rmrr)) return true;
                break;
            case 0x1e:
                /* 011110.. ........ .100.... .1010111 */
                /* ../git/target/riscv/insn32.decode:489 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                if (trans_vmsgtu_vx(ctx, &u.f_rmrr)) return true;
                break;
            case 0x1f:
                /* 011111.. ........ .100.... .1010111 */
                /* ../git/target/riscv/insn32.decode:491 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                if (trans_vmsgt_vx(ctx, &u.f_rmrr)) return true;
                break;
            }
            break;
        case 0x00005000:
            /* 0....... ........ .101.... .1010111 */
            switch ((insn >> 26) & 0x1f) {
            case 0x0:
                /* 000000.. ........ .101.... .1010111 */
                /* ../git/target/riscv/insn32.decode:577 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                if (trans_vfadd_vf(ctx, &u.f_rmrr)) return true;
                break;
            case 0x2:
                /* 000010.. ........ .101.... .1010111 */
                /* ../git/target/riscv/insn32.decode:579 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                if (trans_vfsub_vf(ctx, &u.f_rmrr)) return true;
                break;
            case 0x4:
                /* 000100.. ........ .101.... .1010111 */
                /* ../git/target/riscv/insn32.decode:624 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                if (trans_vfmin_vf(ctx, &u.f_rmrr)) return true;
                break;
            case 0x6:
                /* 000110.. ........ .101.... .1010111 */
                /* ../git/target/riscv/insn32.decode:626 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                if (trans_vfmax_vf(ctx, &u.f_rmrr)) return true;
                break;
            case 0x8:
                /* 001000.. ........ .101.... .1010111 */
                /* ../git/target/riscv/insn32.decode:628 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                if (trans_vfsgnj_vf(ctx, &u.f_rmrr)) return true;
                break;
            case 0x9:
                /* 001001.. ........ .101.... .1010111 */
                /* ../git/target/riscv/insn32.decode:630 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                if (trans_vfsgnjn_vf(ctx, &u.f_rmrr)) return true;
                break;
            case 0xa:
                /* 001010.. ........ .101.... .1010111 */
                /* ../git/target/riscv/insn32.decode:632 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                if (trans_vfsgnjx_vf(ctx, &u.f_rmrr)) return true;
                break;
            case 0xe:
                /* 001110.. ........ .101.... .1010111 */
                /* ../git/target/riscv/insn32.decode:633 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                if (trans_vfslide1up_vf(ctx, &u.f_rmrr)) return true;
                break;
            case 0xf:
                /* 001111.. ........ .101.... .1010111 */
                /* ../git/target/riscv/insn32.decode:634 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                if (trans_vfslide1down_vf(ctx, &u.f_rmrr)) return true;
                break;
            case 0x10:
                /* 010000.. ........ .101.... .1010111 */
                decode_insn32_extract_r2(ctx, &u.f_r2, insn);
                switch ((insn >> 20) & 0x3f) {
                case 0x20:
                    /* 01000010 0000.... .101.... .1010111 */
                    /* ../git/target/riscv/insn32.decode:709 */
                    if (trans_vfmv_s_f(ctx, &u.f_r2)) return true;
                    break;
                }
                break;
            case 0x17:
                /* 010111.. ........ .101.... .1010111 */
                switch ((insn >> 25) & 0x1) {
                case 0x0:
                    /* 0101110. ........ .101.... .1010111 */
                    /* ../git/target/riscv/insn32.decode:646 */
                    decode_insn32_extract_r_vm_0(ctx, &u.f_rmrr, insn);
                    if (trans_vfmerge_vfm(ctx, &u.f_rmrr)) return true;
                    break;
                case 0x1:
                    /* 0101111. ........ .101.... .1010111 */
                    decode_insn32_extract_r2(ctx, &u.f_r2, insn);
                    switch ((insn >> 20) & 0x1f) {
                    case 0x0:
                        /* 01011110 0000.... .101.... .1010111 */
                        /* ../git/target/riscv/insn32.decode:647 */
                        if (trans_vfmv_v_f(ctx, &u.f_r2)) return true;
                        break;
                    }
                    break;
                }
                break;
            case 0x18:
                /* 011000.. ........ .101.... .1010111 */
                /* ../git/target/riscv/insn32.decode:636 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                if (trans_vmfeq_vf(ctx, &u.f_rmrr)) return true;
                break;
            case 0x19:
                /* 011001.. ........ .101.... .1010111 */
                /* ../git/target/riscv/insn32.decode:642 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                if (trans_vmfle_vf(ctx, &u.f_rmrr)) return true;
                break;
            case 0x1b:
                /* 011011.. ........ .101.... .1010111 */
                /* ../git/target/riscv/insn32.decode:640 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                if (trans_vmflt_vf(ctx, &u.f_rmrr)) return true;
                break;
            case 0x1c:
                /* 011100.. ........ .101.... .1010111 */
                /* ../git/target/riscv/insn32.decode:638 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                if (trans_vmfne_vf(ctx, &u.f_rmrr)) return true;
                break;
            case 0x1d:
                /* 011101.. ........ .101.... .1010111 */
                /* ../git/target/riscv/insn32.decode:643 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                if (trans_vmfgt_vf(ctx, &u.f_rmrr)) return true;
                break;
            case 0x1f:
                /* 011111.. ........ .101.... .1010111 */
                /* ../git/target/riscv/insn32.decode:644 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                if (trans_vmfge_vf(ctx, &u.f_rmrr)) return true;
                break;
            }
            break;
        case 0x00006000:
            /* 0....... ........ .110.... .1010111 */
            switch ((insn >> 26) & 0x1f) {
            case 0x8:
                /* 001000.. ........ .110.... .1010111 */
                /* ../git/target/riscv/insn32.decode:557 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                if (trans_vaaddu_vx(ctx, &u.f_rmrr)) return true;
                break;
            case 0x9:
                /* 001001.. ........ .110.... .1010111 */
                /* ../git/target/riscv/insn32.decode:555 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                if (trans_vaadd_vx(ctx, &u.f_rmrr)) return true;
                break;
            case 0xa:
                /* 001010.. ........ .110.... .1010111 */
                /* ../git/target/riscv/insn32.decode:561 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                if (trans_vasubu_vx(ctx, &u.f_rmrr)) return true;
                break;
            case 0xb:
                /* 001011.. ........ .110.... .1010111 */
                /* ../git/target/riscv/insn32.decode:559 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                if (trans_vasub_vx(ctx, &u.f_rmrr)) return true;
                break;
            case 0xc:
                /* 001100.. ........ .110.... .1010111 */
                /* ../git/target/riscv/insn32.decode:955 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                if (trans_vclmul_vx(ctx, &u.f_rmrr)) return true;
                break;
            case 0xd:
                /* 001101.. ........ .110.... .1010111 */
                /* ../git/target/riscv/insn32.decode:957 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                if (trans_vclmulh_vx(ctx, &u.f_rmrr)) return true;
                break;
            case 0xe:
                /* 001110.. ........ .110.... .1010111 */
                /* ../git/target/riscv/insn32.decode:712 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                if (trans_vslide1up_vx(ctx, &u.f_rmrr)) return true;
                break;
            case 0xf:
                /* 001111.. ........ .110.... .1010111 */
                /* ../git/target/riscv/insn32.decode:715 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                if (trans_vslide1down_vx(ctx, &u.f_rmrr)) return true;
                break;
            case 0x10:
                /* 010000.. ........ .110.... .1010111 */
                decode_insn32_extract_r2(ctx, &u.f_r2, insn);
                switch ((insn >> 20) & 0x3f) {
                case 0x20:
                    /* 01000010 0000.... .110.... .1010111 */
                    /* ../git/target/riscv/insn32.decode:707 */
                    if (trans_vmv_s_x(ctx, &u.f_r2)) return true;
                    break;
                }
                break;
            }
            break;
        case 0x00007000:
            /* 0....... ........ .111.... .1010111 */
            /* ../git/target/riscv/insn32.decode:734 */
            decode_insn32_extract_r2_zimm11(ctx, &u.f_decode_insn3222, insn);
            if (trans_vsetvli(ctx, &u.f_decode_insn3222)) return true;
            break;
        case 0x80000000u:
            /* 1....... ........ .000.... .1010111 */
            decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
            switch ((insn >> 26) & 0x1f) {
            case 0x0:
                /* 100000.. ........ .000.... .1010111 */
                /* ../git/target/riscv/insn32.decode:544 */
                if (trans_vsaddu_vv(ctx, &u.f_rmrr)) return true;
                break;
            case 0x1:
                /* 100001.. ........ .000.... .1010111 */
                /* ../git/target/riscv/insn32.decode:547 */
                if (trans_vsadd_vv(ctx, &u.f_rmrr)) return true;
                break;
            case 0x2:
                /* 100010.. ........ .000.... .1010111 */
                /* ../git/target/riscv/insn32.decode:550 */
                if (trans_vssubu_vv(ctx, &u.f_rmrr)) return true;
                break;
            case 0x3:
                /* 100011.. ........ .000.... .1010111 */
                /* ../git/target/riscv/insn32.decode:552 */
                if (trans_vssub_vv(ctx, &u.f_rmrr)) return true;
                break;
            case 0x5:
                /* 100101.. ........ .000.... .1010111 */
                /* ../git/target/riscv/insn32.decode:458 */
                if (trans_vsll_vv(ctx, &u.f_rmrr)) return true;
                break;
            case 0x7:
                /* 100111.. ........ .000.... .1010111 */
                /* ../git/target/riscv/insn32.decode:562 */
                if (trans_vsmul_vv(ctx, &u.f_rmrr)) return true;
                break;
            case 0x8:
                /* 101000.. ........ .000.... .1010111 */
                /* ../git/target/riscv/insn32.decode:461 */
                if (trans_vsrl_vv(ctx, &u.f_rmrr)) return true;
                break;
            case 0x9:
                /* 101001.. ........ .000.... .1010111 */
                /* ../git/target/riscv/insn32.decode:464 */
                if (trans_vsra_vv(ctx, &u.f_rmrr)) return true;
                break;
            case 0xa:
                /* 101010.. ........ .000.... .1010111 */
                /* ../git/target/riscv/insn32.decode:564 */
                if (trans_vssrl_vv(ctx, &u.f_rmrr)) return true;
                break;
            case 0xb:
                /* 101011.. ........ .000.... .1010111 */
                /* ../git/target/riscv/insn32.decode:567 */
                if (trans_vssra_vv(ctx, &u.f_rmrr)) return true;
                break;
            case 0xc:
                /* 101100.. ........ .000.... .1010111 */
                /* ../git/target/riscv/insn32.decode:467 */
                if (trans_vnsrl_wv(ctx, &u.f_rmrr)) return true;
                break;
            case 0xd:
                /* 101101.. ........ .000.... .1010111 */
                /* ../git/target/riscv/insn32.decode:470 */
                if (trans_vnsra_wv(ctx, &u.f_rmrr)) return true;
                break;
            case 0xe:
                /* 101110.. ........ .000.... .1010111 */
                /* ../git/target/riscv/insn32.decode:570 */
                if (trans_vnclipu_wv(ctx, &u.f_rmrr)) return true;
                break;
            case 0xf:
                /* 101111.. ........ .000.... .1010111 */
                /* ../git/target/riscv/insn32.decode:573 */
                if (trans_vnclip_wv(ctx, &u.f_rmrr)) return true;
                break;
            case 0x10:
                /* 110000.. ........ .000.... .1010111 */
                /* ../git/target/riscv/insn32.decode:681 */
                if (trans_vwredsumu_vs(ctx, &u.f_rmrr)) return true;
                break;
            case 0x11:
                /* 110001.. ........ .000.... .1010111 */
                /* ../git/target/riscv/insn32.decode:682 */
                if (trans_vwredsum_vs(ctx, &u.f_rmrr)) return true;
                break;
            case 0x15:
                /* 110101.. ........ .000.... .1010111 */
                /* ../git/target/riscv/insn32.decode:973 */
                if (trans_vwsll_vv(ctx, &u.f_rmrr)) return true;
                break;
            }
            break;
        case 0x80001000u:
            /* 1....... ........ .001.... .1010111 */
            decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
            switch ((insn >> 26) & 0x1f) {
            case 0x0:
                /* 100000.. ........ .001.... .1010111 */
                /* ../git/target/riscv/insn32.decode:591 */
                if (trans_vfdiv_vv(ctx, &u.f_rmrr)) return true;
                break;
            case 0x4:
                /* 100100.. ........ .001.... .1010111 */
                /* ../git/target/riscv/insn32.decode:589 */
                if (trans_vfmul_vv(ctx, &u.f_rmrr)) return true;
                break;
            case 0x8:
                /* 101000.. ........ .001.... .1010111 */
                /* ../git/target/riscv/insn32.decode:604 */
                if (trans_vfmadd_vv(ctx, &u.f_rmrr)) return true;
                break;
            case 0x9:
                /* 101001.. ........ .001.... .1010111 */
                /* ../git/target/riscv/insn32.decode:606 */
                if (trans_vfnmadd_vv(ctx, &u.f_rmrr)) return true;
                break;
            case 0xa:
                /* 101010.. ........ .001.... .1010111 */
                /* ../git/target/riscv/insn32.decode:608 */
                if (trans_vfmsub_vv(ctx, &u.f_rmrr)) return true;
                break;
            case 0xb:
                /* 101011.. ........ .001.... .1010111 */
                /* ../git/target/riscv/insn32.decode:610 */
                if (trans_vfnmsub_vv(ctx, &u.f_rmrr)) return true;
                break;
            case 0xc:
                /* 101100.. ........ .001.... .1010111 */
                /* ../git/target/riscv/insn32.decode:596 */
                if (trans_vfmacc_vv(ctx, &u.f_rmrr)) return true;
                break;
            case 0xd:
                /* 101101.. ........ .001.... .1010111 */
                /* ../git/target/riscv/insn32.decode:597 */
                if (trans_vfnmacc_vv(ctx, &u.f_rmrr)) return true;
                break;
            case 0xe:
                /* 101110.. ........ .001.... .1010111 */
                /* ../git/target/riscv/insn32.decode:600 */
                if (trans_vfmsac_vv(ctx, &u.f_rmrr)) return true;
                break;
            case 0xf:
                /* 101111.. ........ .001.... .1010111 */
                /* ../git/target/riscv/insn32.decode:602 */
                if (trans_vfnmsac_vv(ctx, &u.f_rmrr)) return true;
                break;
            case 0x10:
                /* 110000.. ........ .001.... .1010111 */
                /* ../git/target/riscv/insn32.decode:581 */
                if (trans_vfwadd_vv(ctx, &u.f_rmrr)) return true;
                break;
            case 0x11:
                /* 110001.. ........ .001.... .1010111 */
                /* ../git/target/riscv/insn32.decode:689 */
                if (trans_vfwredusum_vs(ctx, &u.f_rmrr)) return true;
                break;
            case 0x12:
                /* 110010.. ........ .001.... .1010111 */
                /* ../git/target/riscv/insn32.decode:585 */
                if (trans_vfwsub_vv(ctx, &u.f_rmrr)) return true;
                break;
            case 0x13:
                /* 110011.. ........ .001.... .1010111 */
                /* ../git/target/riscv/insn32.decode:690 */
                if (trans_vfwredosum_vs(ctx, &u.f_rmrr)) return true;
                break;
            case 0x14:
                /* 110100.. ........ .001.... .1010111 */
                /* ../git/target/riscv/insn32.decode:583 */
                if (trans_vfwadd_wv(ctx, &u.f_rmrr)) return true;
                break;
            case 0x16:
                /* 110110.. ........ .001.... .1010111 */
                /* ../git/target/riscv/insn32.decode:587 */
                if (trans_vfwsub_wv(ctx, &u.f_rmrr)) return true;
                break;
            case 0x18:
                /* 111000.. ........ .001.... .1010111 */
                /* ../git/target/riscv/insn32.decode:594 */
                if (trans_vfwmul_vv(ctx, &u.f_rmrr)) return true;
                break;
            case 0x1b:
                /* 111011.. ........ .001.... .1010111 */
                /* ../git/target/riscv/insn32.decode:950 */
                if (trans_vfwmaccbf16_vv(ctx, &u.f_rmrr)) return true;
                break;
            case 0x1c:
                /* 111100.. ........ .001.... .1010111 */
                /* ../git/target/riscv/insn32.decode:612 */
                if (trans_vfwmacc_vv(ctx, &u.f_rmrr)) return true;
                break;
            case 0x1d:
                /* 111101.. ........ .001.... .1010111 */
                /* ../git/target/riscv/insn32.decode:614 */
                if (trans_vfwnmacc_vv(ctx, &u.f_rmrr)) return true;
                break;
            case 0x1e:
                /* 111110.. ........ .001.... .1010111 */
                /* ../git/target/riscv/insn32.decode:616 */
                if (trans_vfwmsac_vv(ctx, &u.f_rmrr)) return true;
                break;
            case 0x1f:
                /* 111111.. ........ .001.... .1010111 */
                /* ../git/target/riscv/insn32.decode:618 */
                if (trans_vfwnmsac_vv(ctx, &u.f_rmrr)) return true;
                break;
            }
            break;
        case 0x80002000u:
            /* 1....... ........ .010.... .1010111 */
            decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
            switch ((insn >> 26) & 0x1f) {
            case 0x0:
                /* 100000.. ........ .010.... .1010111 */
                /* ../git/target/riscv/insn32.decode:509 */
                if (trans_vdivu_vv(ctx, &u.f_rmrr)) return true;
                break;
            case 0x1:
                /* 100001.. ........ .010.... .1010111 */
                /* ../git/target/riscv/insn32.decode:511 */
                if (trans_vdiv_vv(ctx, &u.f_rmrr)) return true;
                break;
            case 0x2:
                /* 100010.. ........ .010.... .1010111 */
                /* ../git/target/riscv/insn32.decode:513 */
                if (trans_vremu_vv(ctx, &u.f_rmrr)) return true;
                break;
            case 0x3:
                /* 100011.. ........ .010.... .1010111 */
                /* ../git/target/riscv/insn32.decode:515 */
                if (trans_vrem_vv(ctx, &u.f_rmrr)) return true;
                break;
            case 0x4:
                /* 100100.. ........ .010.... .1010111 */
                /* ../git/target/riscv/insn32.decode:505 */
                if (trans_vmulhu_vv(ctx, &u.f_rmrr)) return true;
                break;
            case 0x5:
                /* 100101.. ........ .010.... .1010111 */
                /* ../git/target/riscv/insn32.decode:501 */
                if (trans_vmul_vv(ctx, &u.f_rmrr)) return true;
                break;
            case 0x6:
                /* 100110.. ........ .010.... .1010111 */
                /* ../git/target/riscv/insn32.decode:507 */
                if (trans_vmulhsu_vv(ctx, &u.f_rmrr)) return true;
                break;
            case 0x7:
                /* 100111.. ........ .010.... .1010111 */
                /* ../git/target/riscv/insn32.decode:503 */
                if (trans_vmulh_vv(ctx, &u.f_rmrr)) return true;
                break;
            case 0x9:
                /* 101001.. ........ .010.... .1010111 */
                /* ../git/target/riscv/insn32.decode:527 */
                if (trans_vmadd_vv(ctx, &u.f_rmrr)) return true;
                break;
            case 0xb:
                /* 101011.. ........ .010.... .1010111 */
                /* ../git/target/riscv/insn32.decode:529 */
                if (trans_vnmsub_vv(ctx, &u.f_rmrr)) return true;
                break;
            case 0xd:
                /* 101101.. ........ .010.... .1010111 */
                /* ../git/target/riscv/insn32.decode:523 */
                if (trans_vmacc_vv(ctx, &u.f_rmrr)) return true;
                break;
            case 0xf:
                /* 101111.. ........ .010.... .1010111 */
                /* ../git/target/riscv/insn32.decode:525 */
                if (trans_vnmsac_vv(ctx, &u.f_rmrr)) return true;
                break;
            case 0x10:
                /* 110000.. ........ .010.... .1010111 */
                /* ../git/target/riscv/insn32.decode:423 */
                if (trans_vwaddu_vv(ctx, &u.f_rmrr)) return true;
                break;
            case 0x11:
                /* 110001.. ........ .010.... .1010111 */
                /* ../git/target/riscv/insn32.decode:425 */
                if (trans_vwadd_vv(ctx, &u.f_rmrr)) return true;
                break;
            case 0x12:
                /* 110010.. ........ .010.... .1010111 */
                /* ../git/target/riscv/insn32.decode:427 */
                if (trans_vwsubu_vv(ctx, &u.f_rmrr)) return true;
                break;
            case 0x13:
                /* 110011.. ........ .010.... .1010111 */
                /* ../git/target/riscv/insn32.decode:429 */
                if (trans_vwsub_vv(ctx, &u.f_rmrr)) return true;
                break;
            case 0x14:
                /* 110100.. ........ .010.... .1010111 */
                /* ../git/target/riscv/insn32.decode:431 */
                if (trans_vwaddu_wv(ctx, &u.f_rmrr)) return true;
                break;
            case 0x15:
                /* 110101.. ........ .010.... .1010111 */
                /* ../git/target/riscv/insn32.decode:433 */
                if (trans_vwadd_wv(ctx, &u.f_rmrr)) return true;
                break;
            case 0x16:
                /* 110110.. ........ .010.... .1010111 */
                /* ../git/target/riscv/insn32.decode:435 */
                if (trans_vwsubu_wv(ctx, &u.f_rmrr)) return true;
                break;
            case 0x17:
                /* 110111.. ........ .010.... .1010111 */
                /* ../git/target/riscv/insn32.decode:437 */
                if (trans_vwsub_wv(ctx, &u.f_rmrr)) return true;
                break;
            case 0x18:
                /* 111000.. ........ .010.... .1010111 */
                /* ../git/target/riscv/insn32.decode:517 */
                if (trans_vwmulu_vv(ctx, &u.f_rmrr)) return true;
                break;
            case 0x1a:
                /* 111010.. ........ .010.... .1010111 */
                /* ../git/target/riscv/insn32.decode:519 */
                if (trans_vwmulsu_vv(ctx, &u.f_rmrr)) return true;
                break;
            case 0x1b:
                /* 111011.. ........ .010.... .1010111 */
                /* ../git/target/riscv/insn32.decode:521 */
                if (trans_vwmul_vv(ctx, &u.f_rmrr)) return true;
                break;
            case 0x1c:
                /* 111100.. ........ .010.... .1010111 */
                /* ../git/target/riscv/insn32.decode:531 */
                if (trans_vwmaccu_vv(ctx, &u.f_rmrr)) return true;
                break;
            case 0x1d:
                /* 111101.. ........ .010.... .1010111 */
                /* ../git/target/riscv/insn32.decode:533 */
                if (trans_vwmacc_vv(ctx, &u.f_rmrr)) return true;
                break;
            case 0x1f:
                /* 111111.. ........ .010.... .1010111 */
                /* ../git/target/riscv/insn32.decode:535 */
                if (trans_vwmaccsu_vv(ctx, &u.f_rmrr)) return true;
                break;
            }
            break;
        case 0x80003000u:
            /* 1....... ........ .011.... .1010111 */
            switch ((insn >> 26) & 0x1f) {
            case 0x0:
                /* 100000.. ........ .011.... .1010111 */
                /* ../git/target/riscv/insn32.decode:546 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                if (trans_vsaddu_vi(ctx, &u.f_rmrr)) return true;
                break;
            case 0x1:
                /* 100001.. ........ .011.... .1010111 */
                /* ../git/target/riscv/insn32.decode:549 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                if (trans_vsadd_vi(ctx, &u.f_rmrr)) return true;
                break;
            case 0x5:
                /* 100101.. ........ .011.... .1010111 */
                /* ../git/target/riscv/insn32.decode:460 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                if (trans_vsll_vi(ctx, &u.f_rmrr)) return true;
                break;
            case 0x7:
                /* 100111.. ........ .011.... .1010111 */
                decode_insn32_extract_r2rd(ctx, &u.f_decode_insn3221, insn);
                switch (insn & 0x020f8000) {
                case 0x02000000:
                    /* 1001111. ....0000 0011.... .1010111 */
                    /* ../git/target/riscv/insn32.decode:721 */
                    if (trans_vmv1r_v(ctx, &u.f_decode_insn3221)) return true;
                    break;
                case 0x02008000:
                    /* 1001111. ....0000 1011.... .1010111 */
                    /* ../git/target/riscv/insn32.decode:722 */
                    if (trans_vmv2r_v(ctx, &u.f_decode_insn3221)) return true;
                    break;
                case 0x02018000:
                    /* 1001111. ....0001 1011.... .1010111 */
                    /* ../git/target/riscv/insn32.decode:723 */
                    if (trans_vmv4r_v(ctx, &u.f_decode_insn3221)) return true;
                    break;
                case 0x02038000:
                    /* 1001111. ....0011 1011.... .1010111 */
                    /* ../git/target/riscv/insn32.decode:724 */
                    if (trans_vmv8r_v(ctx, &u.f_decode_insn3221)) return true;
                    break;
                }
                break;
            case 0x8:
                /* 101000.. ........ .011.... .1010111 */
                /* ../git/target/riscv/insn32.decode:463 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                if (trans_vsrl_vi(ctx, &u.f_rmrr)) return true;
                break;
            case 0x9:
                /* 101001.. ........ .011.... .1010111 */
                /* ../git/target/riscv/insn32.decode:466 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                if (trans_vsra_vi(ctx, &u.f_rmrr)) return true;
                break;
            case 0xa:
                /* 101010.. ........ .011.... .1010111 */
                /* ../git/target/riscv/insn32.decode:566 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                if (trans_vssrl_vi(ctx, &u.f_rmrr)) return true;
                break;
            case 0xb:
                /* 101011.. ........ .011.... .1010111 */
                /* ../git/target/riscv/insn32.decode:569 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                if (trans_vssra_vi(ctx, &u.f_rmrr)) return true;
                break;
            case 0xc:
                /* 101100.. ........ .011.... .1010111 */
                /* ../git/target/riscv/insn32.decode:469 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                if (trans_vnsrl_wi(ctx, &u.f_rmrr)) return true;
                break;
            case 0xd:
                /* 101101.. ........ .011.... .1010111 */
                /* ../git/target/riscv/insn32.decode:472 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                if (trans_vnsra_wi(ctx, &u.f_rmrr)) return true;
                break;
            case 0xe:
                /* 101110.. ........ .011.... .1010111 */
                /* ../git/target/riscv/insn32.decode:572 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                if (trans_vnclipu_wi(ctx, &u.f_rmrr)) return true;
                break;
            case 0xf:
                /* 101111.. ........ .011.... .1010111 */
                /* ../git/target/riscv/insn32.decode:575 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                if (trans_vnclip_wi(ctx, &u.f_rmrr)) return true;
                break;
            case 0x15:
                /* 110101.. ........ .011.... .1010111 */
                /* ../git/target/riscv/insn32.decode:975 */
                decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
                if (trans_vwsll_vi(ctx, &u.f_rmrr)) return true;
                break;
            }
            break;
        case 0x80004000u:
            /* 1....... ........ .100.... .1010111 */
            decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
            switch ((insn >> 26) & 0x1f) {
            case 0x0:
                /* 100000.. ........ .100.... .1010111 */
                /* ../git/target/riscv/insn32.decode:545 */
                if (trans_vsaddu_vx(ctx, &u.f_rmrr)) return true;
                break;
            case 0x1:
                /* 100001.. ........ .100.... .1010111 */
                /* ../git/target/riscv/insn32.decode:548 */
                if (trans_vsadd_vx(ctx, &u.f_rmrr)) return true;
                break;
            case 0x2:
                /* 100010.. ........ .100.... .1010111 */
                /* ../git/target/riscv/insn32.decode:551 */
                if (trans_vssubu_vx(ctx, &u.f_rmrr)) return true;
                break;
            case 0x3:
                /* 100011.. ........ .100.... .1010111 */
                /* ../git/target/riscv/insn32.decode:553 */
                if (trans_vssub_vx(ctx, &u.f_rmrr)) return true;
                break;
            case 0x5:
                /* 100101.. ........ .100.... .1010111 */
                /* ../git/target/riscv/insn32.decode:459 */
                if (trans_vsll_vx(ctx, &u.f_rmrr)) return true;
                break;
            case 0x7:
                /* 100111.. ........ .100.... .1010111 */
                /* ../git/target/riscv/insn32.decode:563 */
                if (trans_vsmul_vx(ctx, &u.f_rmrr)) return true;
                break;
            case 0x8:
                /* 101000.. ........ .100.... .1010111 */
                /* ../git/target/riscv/insn32.decode:462 */
                if (trans_vsrl_vx(ctx, &u.f_rmrr)) return true;
                break;
            case 0x9:
                /* 101001.. ........ .100.... .1010111 */
                /* ../git/target/riscv/insn32.decode:465 */
                if (trans_vsra_vx(ctx, &u.f_rmrr)) return true;
                break;
            case 0xa:
                /* 101010.. ........ .100.... .1010111 */
                /* ../git/target/riscv/insn32.decode:565 */
                if (trans_vssrl_vx(ctx, &u.f_rmrr)) return true;
                break;
            case 0xb:
                /* 101011.. ........ .100.... .1010111 */
                /* ../git/target/riscv/insn32.decode:568 */
                if (trans_vssra_vx(ctx, &u.f_rmrr)) return true;
                break;
            case 0xc:
                /* 101100.. ........ .100.... .1010111 */
                /* ../git/target/riscv/insn32.decode:468 */
                if (trans_vnsrl_wx(ctx, &u.f_rmrr)) return true;
                break;
            case 0xd:
                /* 101101.. ........ .100.... .1010111 */
                /* ../git/target/riscv/insn32.decode:471 */
                if (trans_vnsra_wx(ctx, &u.f_rmrr)) return true;
                break;
            case 0xe:
                /* 101110.. ........ .100.... .1010111 */
                /* ../git/target/riscv/insn32.decode:571 */
                if (trans_vnclipu_wx(ctx, &u.f_rmrr)) return true;
                break;
            case 0xf:
                /* 101111.. ........ .100.... .1010111 */
                /* ../git/target/riscv/insn32.decode:574 */
                if (trans_vnclip_wx(ctx, &u.f_rmrr)) return true;
                break;
            case 0x15:
                /* 110101.. ........ .100.... .1010111 */
                /* ../git/target/riscv/insn32.decode:974 */
                if (trans_vwsll_vx(ctx, &u.f_rmrr)) return true;
                break;
            }
            break;
        case 0x80005000u:
            /* 1....... ........ .101.... .1010111 */
            decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
            switch ((insn >> 26) & 0x1f) {
            case 0x0:
                /* 100000.. ........ .101.... .1010111 */
                /* ../git/target/riscv/insn32.decode:592 */
                if (trans_vfdiv_vf(ctx, &u.f_rmrr)) return true;
                break;
            case 0x1:
                /* 100001.. ........ .101.... .1010111 */
                /* ../git/target/riscv/insn32.decode:593 */
                if (trans_vfrdiv_vf(ctx, &u.f_rmrr)) return true;
                break;
            case 0x4:
                /* 100100.. ........ .101.... .1010111 */
                /* ../git/target/riscv/insn32.decode:590 */
                if (trans_vfmul_vf(ctx, &u.f_rmrr)) return true;
                break;
            case 0x7:
                /* 100111.. ........ .101.... .1010111 */
                /* ../git/target/riscv/insn32.decode:580 */
                if (trans_vfrsub_vf(ctx, &u.f_rmrr)) return true;
                break;
            case 0x8:
                /* 101000.. ........ .101.... .1010111 */
                /* ../git/target/riscv/insn32.decode:605 */
                if (trans_vfmadd_vf(ctx, &u.f_rmrr)) return true;
                break;
            case 0x9:
                /* 101001.. ........ .101.... .1010111 */
                /* ../git/target/riscv/insn32.decode:607 */
                if (trans_vfnmadd_vf(ctx, &u.f_rmrr)) return true;
                break;
            case 0xa:
                /* 101010.. ........ .101.... .1010111 */
                /* ../git/target/riscv/insn32.decode:609 */
                if (trans_vfmsub_vf(ctx, &u.f_rmrr)) return true;
                break;
            case 0xb:
                /* 101011.. ........ .101.... .1010111 */
                /* ../git/target/riscv/insn32.decode:611 */
                if (trans_vfnmsub_vf(ctx, &u.f_rmrr)) return true;
                break;
            case 0xc:
                /* 101100.. ........ .101.... .1010111 */
                /* ../git/target/riscv/insn32.decode:599 */
                if (trans_vfmacc_vf(ctx, &u.f_rmrr)) return true;
                break;
            case 0xd:
                /* 101101.. ........ .101.... .1010111 */
                /* ../git/target/riscv/insn32.decode:598 */
                if (trans_vfnmacc_vf(ctx, &u.f_rmrr)) return true;
                break;
            case 0xe:
                /* 101110.. ........ .101.... .1010111 */
                /* ../git/target/riscv/insn32.decode:601 */
                if (trans_vfmsac_vf(ctx, &u.f_rmrr)) return true;
                break;
            case 0xf:
                /* 101111.. ........ .101.... .1010111 */
                /* ../git/target/riscv/insn32.decode:603 */
                if (trans_vfnmsac_vf(ctx, &u.f_rmrr)) return true;
                break;
            case 0x10:
                /* 110000.. ........ .101.... .1010111 */
                /* ../git/target/riscv/insn32.decode:582 */
                if (trans_vfwadd_vf(ctx, &u.f_rmrr)) return true;
                break;
            case 0x12:
                /* 110010.. ........ .101.... .1010111 */
                /* ../git/target/riscv/insn32.decode:586 */
                if (trans_vfwsub_vf(ctx, &u.f_rmrr)) return true;
                break;
            case 0x14:
                /* 110100.. ........ .101.... .1010111 */
                /* ../git/target/riscv/insn32.decode:584 */
                if (trans_vfwadd_wf(ctx, &u.f_rmrr)) return true;
                break;
            case 0x16:
                /* 110110.. ........ .101.... .1010111 */
                /* ../git/target/riscv/insn32.decode:588 */
                if (trans_vfwsub_wf(ctx, &u.f_rmrr)) return true;
                break;
            case 0x18:
                /* 111000.. ........ .101.... .1010111 */
                /* ../git/target/riscv/insn32.decode:595 */
                if (trans_vfwmul_vf(ctx, &u.f_rmrr)) return true;
                break;
            case 0x1b:
                /* 111011.. ........ .101.... .1010111 */
                /* ../git/target/riscv/insn32.decode:951 */
                if (trans_vfwmaccbf16_vf(ctx, &u.f_rmrr)) return true;
                break;
            case 0x1c:
                /* 111100.. ........ .101.... .1010111 */
                /* ../git/target/riscv/insn32.decode:613 */
                if (trans_vfwmacc_vf(ctx, &u.f_rmrr)) return true;
                break;
            case 0x1d:
                /* 111101.. ........ .101.... .1010111 */
                /* ../git/target/riscv/insn32.decode:615 */
                if (trans_vfwnmacc_vf(ctx, &u.f_rmrr)) return true;
                break;
            case 0x1e:
                /* 111110.. ........ .101.... .1010111 */
                /* ../git/target/riscv/insn32.decode:617 */
                if (trans_vfwmsac_vf(ctx, &u.f_rmrr)) return true;
                break;
            case 0x1f:
                /* 111111.. ........ .101.... .1010111 */
                /* ../git/target/riscv/insn32.decode:619 */
                if (trans_vfwnmsac_vf(ctx, &u.f_rmrr)) return true;
                break;
            }
            break;
        case 0x80006000u:
            /* 1....... ........ .110.... .1010111 */
            decode_insn32_extract_r_vm(ctx, &u.f_rmrr, insn);
            switch ((insn >> 26) & 0x1f) {
            case 0x0:
                /* 100000.. ........ .110.... .1010111 */
                /* ../git/target/riscv/insn32.decode:510 */
                if (trans_vdivu_vx(ctx, &u.f_rmrr)) return true;
                break;
            case 0x1:
                /* 100001.. ........ .110.... .1010111 */
                /* ../git/target/riscv/insn32.decode:512 */
                if (trans_vdiv_vx(ctx, &u.f_rmrr)) return true;
                break;
            case 0x2:
                /* 100010.. ........ .110.... .1010111 */
                /* ../git/target/riscv/insn32.decode:514 */
                if (trans_vremu_vx(ctx, &u.f_rmrr)) return true;
                break;
            case 0x3:
                /* 100011.. ........ .110.... .1010111 */
                /* ../git/target/riscv/insn32.decode:516 */
                if (trans_vrem_vx(ctx, &u.f_rmrr)) return true;
                break;
            case 0x4:
                /* 100100.. ........ .110.... .1010111 */
                /* ../git/target/riscv/insn32.decode:506 */
                if (trans_vmulhu_vx(ctx, &u.f_rmrr)) return true;
                break;
            case 0x5:
                /* 100101.. ........ .110.... .1010111 */
                /* ../git/target/riscv/insn32.decode:502 */
                if (trans_vmul_vx(ctx, &u.f_rmrr)) return true;
                break;
            case 0x6:
                /* 100110.. ........ .110.... .1010111 */
                /* ../git/target/riscv/insn32.decode:508 */
                if (trans_vmulhsu_vx(ctx, &u.f_rmrr)) return true;
                break;
            case 0x7:
                /* 100111.. ........ .110.... .1010111 */
                /* ../git/target/riscv/insn32.decode:504 */
                if (trans_vmulh_vx(ctx, &u.f_rmrr)) return true;
                break;
            case 0x9:
                /* 101001.. ........ .110.... .1010111 */
                /* ../git/target/riscv/insn32.decode:528 */
                if (trans_vmadd_vx(ctx, &u.f_rmrr)) return true;
                break;
            case 0xb:
                /* 101011.. ........ .110.... .1010111 */
                /* ../git/target/riscv/insn32.decode:530 */
                if (trans_vnmsub_vx(ctx, &u.f_rmrr)) return true;
                break;
            case 0xd:
                /* 101101.. ........ .110.... .1010111 */
                /* ../git/target/riscv/insn32.decode:524 */
                if (trans_vmacc_vx(ctx, &u.f_rmrr)) return true;
                break;
            case 0xf:
                /* 101111.. ........ .110.... .1010111 */
                /* ../git/target/riscv/insn32.decode:526 */
                if (trans_vnmsac_vx(ctx, &u.f_rmrr)) return true;
                break;
            case 0x10:
                /* 110000.. ........ .110.... .1010111 */
                /* ../git/target/riscv/insn32.decode:424 */
                if (trans_vwaddu_vx(ctx, &u.f_rmrr)) return true;
                break;
            case 0x11:
                /* 110001.. ........ .110.... .1010111 */
                /* ../git/target/riscv/insn32.decode:426 */
                if (trans_vwadd_vx(ctx, &u.f_rmrr)) return true;
                break;
            case 0x12:
                /* 110010.. ........ .110.... .1010111 */
                /* ../git/target/riscv/insn32.decode:428 */
                if (trans_vwsubu_vx(ctx, &u.f_rmrr)) return true;
                break;
            case 0x13:
                /* 110011.. ........ .110.... .1010111 */
                /* ../git/target/riscv/insn32.decode:430 */
                if (trans_vwsub_vx(ctx, &u.f_rmrr)) return true;
                break;
            case 0x14:
                /* 110100.. ........ .110.... .1010111 */
                /* ../git/target/riscv/insn32.decode:432 */
                if (trans_vwaddu_wx(ctx, &u.f_rmrr)) return true;
                break;
            case 0x15:
                /* 110101.. ........ .110.... .1010111 */
                /* ../git/target/riscv/insn32.decode:434 */
                if (trans_vwadd_wx(ctx, &u.f_rmrr)) return true;
                break;
            case 0x16:
                /* 110110.. ........ .110.... .1010111 */
                /* ../git/target/riscv/insn32.decode:436 */
                if (trans_vwsubu_wx(ctx, &u.f_rmrr)) return true;
                break;
            case 0x17:
                /* 110111.. ........ .110.... .1010111 */
                /* ../git/target/riscv/insn32.decode:438 */
                if (trans_vwsub_wx(ctx, &u.f_rmrr)) return true;
                break;
            case 0x18:
                /* 111000.. ........ .110.... .1010111 */
                /* ../git/target/riscv/insn32.decode:518 */
                if (trans_vwmulu_vx(ctx, &u.f_rmrr)) return true;
                break;
            case 0x1a:
                /* 111010.. ........ .110.... .1010111 */
                /* ../git/target/riscv/insn32.decode:520 */
                if (trans_vwmulsu_vx(ctx, &u.f_rmrr)) return true;
                break;
            case 0x1b:
                /* 111011.. ........ .110.... .1010111 */
                /* ../git/target/riscv/insn32.decode:522 */
                if (trans_vwmul_vx(ctx, &u.f_rmrr)) return true;
                break;
            case 0x1c:
                /* 111100.. ........ .110.... .1010111 */
                /* ../git/target/riscv/insn32.decode:532 */
                if (trans_vwmaccu_vx(ctx, &u.f_rmrr)) return true;
                break;
            case 0x1d:
                /* 111101.. ........ .110.... .1010111 */
                /* ../git/target/riscv/insn32.decode:534 */
                if (trans_vwmacc_vx(ctx, &u.f_rmrr)) return true;
                break;
            case 0x1e:
                /* 111110.. ........ .110.... .1010111 */
                /* ../git/target/riscv/insn32.decode:537 */
                if (trans_vwmaccus_vx(ctx, &u.f_rmrr)) return true;
                break;
            case 0x1f:
                /* 111111.. ........ .110.... .1010111 */
                /* ../git/target/riscv/insn32.decode:536 */
                if (trans_vwmaccsu_vx(ctx, &u.f_rmrr)) return true;
                break;
            }
            break;
        case 0x80007000u:
            /* 1....... ........ .111.... .1010111 */
            switch ((insn >> 30) & 0x1) {
            case 0x0:
                /* 10...... ........ .111.... .1010111 */
                decode_insn32_extract_r(ctx, &u.f_r, insn);
                switch ((insn >> 25) & 0x1f) {
                case 0x0:
                    /* 1000000. ........ .111.... .1010111 */
                    /* ../git/target/riscv/insn32.decode:736 */
                    if (trans_vsetvl(ctx, &u.f_r)) return true;
                    break;
                }
                break;
            case 0x1:
                /* 11...... ........ .111.... .1010111 */
                /* ../git/target/riscv/insn32.decode:735 */
                decode_insn32_extract_r2_zimm10(ctx, &u.f_decode_insn3222, insn);
                if (trans_vsetivli(ctx, &u.f_decode_insn3222)) return true;
                break;
            }
            break;
        }
        break;
    case 0x0000005b:
        /* ........ ........ ........ .1011011 */
        switch ((insn >> 12) & 0x7) {
        case 0x0:
            /* ........ ........ .000.... .1011011 */
            /* ../git/target/riscv/insn32.decode:201 */
            decode_insn32_extract_i(ctx, &u.f_i, insn);
            if (trans_addid(ctx, &u.f_i)) return true;
            break;
        case 0x1:
            /* ........ ........ .001.... .1011011 */
            decode_insn32_extract_sh6(ctx, &u.f_shift, insn);
            switch ((insn >> 26) & 0x3f) {
            case 0x0:
                /* 000000.. ........ .001.... .1011011 */
                /* ../git/target/riscv/insn32.decode:202 */
                if (trans_sllid(ctx, &u.f_shift)) return true;
                break;
            }
            break;
        case 0x5:
            /* ........ ........ .101.... .1011011 */
            decode_insn32_extract_sh6(ctx, &u.f_shift, insn);
            switch ((insn >> 26) & 0x3f) {
            case 0x0:
                /* 000000.. ........ .101.... .1011011 */
                /* ../git/target/riscv/insn32.decode:203 */
                if (trans_srlid(ctx, &u.f_shift)) return true;
                break;
            case 0x10:
                /* 010000.. ........ .101.... .1011011 */
                /* ../git/target/riscv/insn32.decode:204 */
                if (trans_sraid(ctx, &u.f_shift)) return true;
                break;
            }
            break;
        }
        break;
    case 0x00000063:
        /* ........ ........ ........ .1100011 */
        decode_insn32_extract_b(ctx, &u.f_b, insn);
        switch ((insn >> 12) & 0x7) {
        case 0x0:
            /* ........ ........ .000.... .1100011 */
            /* ../git/target/riscv/insn32.decode:122 */
            if (trans_beq(ctx, &u.f_b)) return true;
            break;
        case 0x1:
            /* ........ ........ .001.... .1100011 */
            /* ../git/target/riscv/insn32.decode:123 */
            if (trans_bne(ctx, &u.f_b)) return true;
            break;
        case 0x4:
            /* ........ ........ .100.... .1100011 */
            /* ../git/target/riscv/insn32.decode:124 */
            if (trans_blt(ctx, &u.f_b)) return true;
            break;
        case 0x5:
            /* ........ ........ .101.... .1100011 */
            /* ../git/target/riscv/insn32.decode:125 */
            if (trans_bge(ctx, &u.f_b)) return true;
            break;
        case 0x6:
            /* ........ ........ .110.... .1100011 */
            /* ../git/target/riscv/insn32.decode:126 */
            if (trans_bltu(ctx, &u.f_b)) return true;
            break;
        case 0x7:
            /* ........ ........ .111.... .1100011 */
            /* ../git/target/riscv/insn32.decode:127 */
            if (trans_bgeu(ctx, &u.f_b)) return true;
            break;
        }
        break;
    case 0x00000067:
        /* ........ ........ ........ .1100111 */
        decode_insn32_extract_i(ctx, &u.f_i, insn);
        switch ((insn >> 12) & 0x7) {
        case 0x0:
            /* ........ ........ .000.... .1100111 */
            /* ../git/target/riscv/insn32.decode:121 */
            if (trans_jalr(ctx, &u.f_i)) return true;
            break;
        }
        break;
    case 0x0000006f:
        /* ........ ........ ........ .1101111 */
        /* ../git/target/riscv/insn32.decode:120 */
        decode_insn32_extract_j(ctx, &u.f_j, insn);
        if (trans_jal(ctx, &u.f_j)) return true;
        break;
    case 0x00000073:
        /* ........ ........ ........ .1110011 */
        switch ((insn >> 12) & 0x7) {
        case 0x0:
            /* ........ ........ .000.... .1110011 */
            switch (insn & 0xfe000f80u) {
            case 0x00000000:
                /* 0000000. ........ .0000000 01110011 */
                decode_insn32_extract_decode_insn32_Fmt_35(ctx, &u.f_empty, insn);
                switch ((insn >> 15) & 0x3ff) {
                case 0x0:
                    /* 00000000 00000000 00000000 01110011 */
                    /* ../git/target/riscv/insn32.decode:108 */
                    if (trans_ecall(ctx, &u.f_empty)) return true;
                    break;
                case 0x20:
                    /* 00000000 00010000 00000000 01110011 */
                    /* ../git/target/riscv/insn32.decode:109 */
                    if (trans_ebreak(ctx, &u.f_empty)) return true;
                    break;
                case 0x40:
                    /* 00000000 00100000 00000000 01110011 */
                    /* ../git/target/riscv/insn32.decode:110 */
                    if (trans_uret(ctx, &u.f_empty)) return true;
                    break;
                case 0x1a0:
                    /* 00000000 11010000 00000000 01110011 */
                    /* ../git/target/riscv/insn32.decode:739 */
                    if (trans_wrs_nto(ctx, &u.f_empty)) return true;
                    break;
                case 0x3a0:
                    /* 00000001 11010000 00000000 01110011 */
                    /* ../git/target/riscv/insn32.decode:740 */
                    if (trans_wrs_sto(ctx, &u.f_empty)) return true;
                    break;
                }
                break;
            case 0x10000000:
                /* 0001000. ........ .0000000 01110011 */
                switch ((insn >> 20) & 0x1f) {
                case 0x2:
                    /* 00010000 0010.... .0000000 01110011 */
                    decode_insn32_extract_decode_insn32_Fmt_35(ctx, &u.f_empty, insn);
                    switch ((insn >> 15) & 0x1f) {
                    case 0x0:
                        /* 00010000 00100000 00000000 01110011 */
                        /* ../git/target/riscv/insn32.decode:111 */
                        if (trans_sret(ctx, &u.f_empty)) return true;
                        break;
                    }
                    break;
                case 0x4:
                    /* 00010000 0100.... .0000000 01110011 */
                    /* ../git/target/riscv/insn32.decode:115 */
                    decode_insn32_extract_sfence_vm(ctx, &u.f_decode_insn3223, insn);
                    if (trans_sfence_vm(ctx, &u.f_decode_insn3223)) return true;
                    break;
                case 0x5:
                    /* 00010000 0101.... .0000000 01110011 */
                    decode_insn32_extract_decode_insn32_Fmt_35(ctx, &u.f_empty, insn);
                    switch ((insn >> 15) & 0x1f) {
                    case 0x0:
                        /* 00010000 01010000 00000000 01110011 */
                        /* ../git/target/riscv/insn32.decode:113 */
                        if (trans_wfi(ctx, &u.f_empty)) return true;
                        break;
                    }
                    break;
                }
                break;
            case 0x12000000:
                /* 0001001. ........ .0000000 01110011 */
                /* ../git/target/riscv/insn32.decode:114 */
                decode_insn32_extract_sfence_vma(ctx, &u.f_r2_s, insn);
                if (trans_sfence_vma(ctx, &u.f_r2_s)) return true;
                break;
            case 0x16000000:
                /* 0001011. ........ .0000000 01110011 */
                /* ../git/target/riscv/insn32.decode:892 */
                decode_insn32_extract_sfence_vma(ctx, &u.f_r2_s, insn);
                if (trans_sinval_vma(ctx, &u.f_r2_s)) return true;
                break;
            case 0x18000000:
                /* 0001100. ........ .0000000 01110011 */
                decode_insn32_extract_decode_insn32_Fmt_35(ctx, &u.f_empty, insn);
                switch ((insn >> 15) & 0x3ff) {
                case 0x0:
                    /* 00011000 00000000 00000000 01110011 */
                    /* ../git/target/riscv/insn32.decode:893 */
                    if (trans_sfence_w_inval(ctx, &u.f_empty)) return true;
                    break;
                case 0x20:
                    /* 00011000 00010000 00000000 01110011 */
                    /* ../git/target/riscv/insn32.decode:894 */
                    if (trans_sfence_inval_ir(ctx, &u.f_empty)) return true;
                    break;
                }
                break;
            case 0x22000000:
                /* 0010001. ........ .0000000 01110011 */
                /* ../git/target/riscv/insn32.decode:343 */
                decode_insn32_extract_hfence_vvma(ctx, &u.f_r2_s, insn);
                if (trans_hfence_vvma(ctx, &u.f_r2_s)) return true;
                break;
            case 0x26000000:
                /* 0010011. ........ .0000000 01110011 */
                /* ../git/target/riscv/insn32.decode:895 */
                decode_insn32_extract_hfence_vvma(ctx, &u.f_r2_s, insn);
                if (trans_hinval_vvma(ctx, &u.f_r2_s)) return true;
                break;
            case 0x30000000:
                /* 0011000. ........ .0000000 01110011 */
                decode_insn32_extract_decode_insn32_Fmt_35(ctx, &u.f_empty, insn);
                switch ((insn >> 15) & 0x3ff) {
                case 0x40:
                    /* 00110000 00100000 00000000 01110011 */
                    /* ../git/target/riscv/insn32.decode:112 */
                    if (trans_mret(ctx, &u.f_empty)) return true;
                    break;
                }
                break;
            case 0x62000000:
                /* 0110001. ........ .0000000 01110011 */
                /* ../git/target/riscv/insn32.decode:342 */
                decode_insn32_extract_hfence_gvma(ctx, &u.f_r2_s, insn);
                if (trans_hfence_gvma(ctx, &u.f_r2_s)) return true;
                break;
            case 0x66000000:
                /* 0110011. ........ .0000000 01110011 */
                /* ../git/target/riscv/insn32.decode:896 */
                decode_insn32_extract_hfence_gvma(ctx, &u.f_r2_s, insn);
                if (trans_hinval_gvma(ctx, &u.f_r2_s)) return true;
                break;
            }
            break;
        case 0x1:
            /* ........ ........ .001.... .1110011 */
            /* ../git/target/riscv/insn32.decode:163 */
            decode_insn32_extract_csr(ctx, &u.f_decode_insn3216, insn);
            if (trans_csrrw(ctx, &u.f_decode_insn3216)) return true;
            break;
        case 0x2:
            /* ........ ........ .010.... .1110011 */
            /* ../git/target/riscv/insn32.decode:164 */
            decode_insn32_extract_csr(ctx, &u.f_decode_insn3216, insn);
            if (trans_csrrs(ctx, &u.f_decode_insn3216)) return true;
            break;
        case 0x3:
            /* ........ ........ .011.... .1110011 */
            /* ../git/target/riscv/insn32.decode:165 */
            decode_insn32_extract_csr(ctx, &u.f_decode_insn3216, insn);
            if (trans_csrrc(ctx, &u.f_decode_insn3216)) return true;
            break;
        case 0x4:
            /* ........ ........ .100.... .1110011 */
            switch ((insn >> 25) & 0x7f) {
            case 0x30:
                /* 0110000. ........ .100.... .1110011 */
                decode_insn32_extract_r2(ctx, &u.f_r2, insn);
                switch ((insn >> 20) & 0x1f) {
                case 0x0:
                    /* 01100000 0000.... .100.... .1110011 */
                    /* ../git/target/riscv/insn32.decode:332 */
                    if (trans_hlv_b(ctx, &u.f_r2)) return true;
                    break;
                case 0x1:
                    /* 01100000 0001.... .100.... .1110011 */
                    /* ../git/target/riscv/insn32.decode:333 */
                    if (trans_hlv_bu(ctx, &u.f_r2)) return true;
                    break;
                }
                break;
            case 0x31:
                /* 0110001. ........ .100.... .1110011 */
                decode_insn32_extract_r2_s(ctx, &u.f_r2_s, insn);
                switch ((insn >> 7) & 0x1f) {
                case 0x0:
                    /* 0110001. ........ .1000000 01110011 */
                    /* ../git/target/riscv/insn32.decode:339 */
                    if (trans_hsv_b(ctx, &u.f_r2_s)) return true;
                    break;
                }
                break;
            case 0x32:
                /* 0110010. ........ .100.... .1110011 */
                decode_insn32_extract_r2(ctx, &u.f_r2, insn);
                switch ((insn >> 20) & 0x1f) {
                case 0x0:
                    /* 01100100 0000.... .100.... .1110011 */
                    /* ../git/target/riscv/insn32.decode:334 */
                    if (trans_hlv_h(ctx, &u.f_r2)) return true;
                    break;
                case 0x1:
                    /* 01100100 0001.... .100.... .1110011 */
                    /* ../git/target/riscv/insn32.decode:335 */
                    if (trans_hlv_hu(ctx, &u.f_r2)) return true;
                    break;
                case 0x3:
                    /* 01100100 0011.... .100.... .1110011 */
                    /* ../git/target/riscv/insn32.decode:336 */
                    if (trans_hlvx_hu(ctx, &u.f_r2)) return true;
                    break;
                }
                break;
            case 0x33:
                /* 0110011. ........ .100.... .1110011 */
                decode_insn32_extract_r2_s(ctx, &u.f_r2_s, insn);
                switch ((insn >> 7) & 0x1f) {
                case 0x0:
                    /* 0110011. ........ .1000000 01110011 */
                    /* ../git/target/riscv/insn32.decode:340 */
                    if (trans_hsv_h(ctx, &u.f_r2_s)) return true;
                    break;
                }
                break;
            case 0x34:
                /* 0110100. ........ .100.... .1110011 */
                decode_insn32_extract_r2(ctx, &u.f_r2, insn);
                switch ((insn >> 20) & 0x1f) {
                case 0x0:
                    /* 01101000 0000.... .100.... .1110011 */
                    /* ../git/target/riscv/insn32.decode:337 */
                    if (trans_hlv_w(ctx, &u.f_r2)) return true;
                    break;
                case 0x1:
                    /* 01101000 0001.... .100.... .1110011 */
                    /* ../git/target/riscv/insn32.decode:346 */
                    if (trans_hlv_wu(ctx, &u.f_r2)) return true;
                    break;
                case 0x3:
                    /* 01101000 0011.... .100.... .1110011 */
                    /* ../git/target/riscv/insn32.decode:338 */
                    if (trans_hlvx_wu(ctx, &u.f_r2)) return true;
                    break;
                }
                break;
            case 0x35:
                /* 0110101. ........ .100.... .1110011 */
                decode_insn32_extract_r2_s(ctx, &u.f_r2_s, insn);
                switch ((insn >> 7) & 0x1f) {
                case 0x0:
                    /* 0110101. ........ .1000000 01110011 */
                    /* ../git/target/riscv/insn32.decode:341 */
                    if (trans_hsv_w(ctx, &u.f_r2_s)) return true;
                    break;
                }
                break;
            case 0x36:
                /* 0110110. ........ .100.... .1110011 */
                decode_insn32_extract_r2(ctx, &u.f_r2, insn);
                switch ((insn >> 20) & 0x1f) {
                case 0x0:
                    /* 01101100 0000.... .100.... .1110011 */
                    /* ../git/target/riscv/insn32.decode:347 */
                    if (trans_hlv_d(ctx, &u.f_r2)) return true;
                    break;
                }
                break;
            case 0x37:
                /* 0110111. ........ .100.... .1110011 */
                decode_insn32_extract_r2_s(ctx, &u.f_r2_s, insn);
                switch ((insn >> 7) & 0x1f) {
                case 0x0:
                    /* 0110111. ........ .1000000 01110011 */
                    /* ../git/target/riscv/insn32.decode:348 */
                    if (trans_hsv_d(ctx, &u.f_r2_s)) return true;
                    break;
                }
                break;
            }
            break;
        case 0x5:
            /* ........ ........ .101.... .1110011 */
            /* ../git/target/riscv/insn32.decode:166 */
            decode_insn32_extract_csr(ctx, &u.f_decode_insn3216, insn);
            if (trans_csrrwi(ctx, &u.f_decode_insn3216)) return true;
            break;
        case 0x6:
            /* ........ ........ .110.... .1110011 */
            /* ../git/target/riscv/insn32.decode:167 */
            decode_insn32_extract_csr(ctx, &u.f_decode_insn3216, insn);
            if (trans_csrrsi(ctx, &u.f_decode_insn3216)) return true;
            break;
        case 0x7:
            /* ........ ........ .111.... .1110011 */
            /* ../git/target/riscv/insn32.decode:168 */
            decode_insn32_extract_csr(ctx, &u.f_decode_insn3216, insn);
            if (trans_csrrci(ctx, &u.f_decode_insn3216)) return true;
            break;
        }
        break;
    case 0x00000077:
        /* ........ ........ ........ .1110111 */
        switch (insn & 0xfe007000u) {
        case 0x82002000u:
            /* 1000001. ........ .010.... .1110111 */
            /* ../git/target/riscv/insn32.decode:996 */
            decode_insn32_extract_r_vm_1(ctx, &u.f_rmrr, insn);
            if (trans_vsm3me_vv(ctx, &u.f_rmrr)) return true;
            break;
        case 0x86002000u:
            /* 1000011. ........ .010.... .1110111 */
            /* ../git/target/riscv/insn32.decode:1004 */
            decode_insn32_extract_r_vm_1(ctx, &u.f_rmrr, insn);
            if (trans_vsm4k_vi(ctx, &u.f_rmrr)) return true;
            break;
        case 0x8a002000u:
            /* 1000101. ........ .010.... .1110111 */
            /* ../git/target/riscv/insn32.decode:987 */
            decode_insn32_extract_r_vm_1(ctx, &u.f_rmrr, insn);
            if (trans_vaeskf1_vi(ctx, &u.f_rmrr)) return true;
            break;
        case 0xa2002000u:
            /* 1010001. ........ .010.... .1110111 */
            decode_insn32_extract_r2_vm_1(ctx, &u.f_rmr, insn);
            switch ((insn >> 15) & 0x1f) {
            case 0x0:
                /* 1010001. ....0000 0010.... .1110111 */
                /* ../git/target/riscv/insn32.decode:984 */
                if (trans_vaesdm_vv(ctx, &u.f_rmr)) return true;
                break;
            case 0x1:
                /* 1010001. ....0000 1010.... .1110111 */
                /* ../git/target/riscv/insn32.decode:980 */
                if (trans_vaesdf_vv(ctx, &u.f_rmr)) return true;
                break;
            case 0x2:
                /* 1010001. ....0001 0010.... .1110111 */
                /* ../git/target/riscv/insn32.decode:982 */
                if (trans_vaesem_vv(ctx, &u.f_rmr)) return true;
                break;
            case 0x3:
                /* 1010001. ....0001 1010.... .1110111 */
                /* ../git/target/riscv/insn32.decode:978 */
                if (trans_vaesef_vv(ctx, &u.f_rmr)) return true;
                break;
            case 0x10:
                /* 1010001. ....1000 0010.... .1110111 */
                /* ../git/target/riscv/insn32.decode:1005 */
                if (trans_vsm4r_vv(ctx, &u.f_rmr)) return true;
                break;
            case 0x11:
                /* 1010001. ....1000 1010.... .1110111 */
                /* ../git/target/riscv/insn32.decode:1001 */
                if (trans_vgmul_vv(ctx, &u.f_rmr)) return true;
                break;
            }
            break;
        case 0xa6002000u:
            /* 1010011. ........ .010.... .1110111 */
            decode_insn32_extract_r2_vm_1(ctx, &u.f_rmr, insn);
            switch ((insn >> 15) & 0x1f) {
            case 0x0:
                /* 1010011. ....0000 0010.... .1110111 */
                /* ../git/target/riscv/insn32.decode:985 */
                if (trans_vaesdm_vs(ctx, &u.f_rmr)) return true;
                break;
            case 0x1:
                /* 1010011. ....0000 1010.... .1110111 */
                /* ../git/target/riscv/insn32.decode:981 */
                if (trans_vaesdf_vs(ctx, &u.f_rmr)) return true;
                break;
            case 0x2:
                /* 1010011. ....0001 0010.... .1110111 */
                /* ../git/target/riscv/insn32.decode:983 */
                if (trans_vaesem_vs(ctx, &u.f_rmr)) return true;
                break;
            case 0x3:
                /* 1010011. ....0001 1010.... .1110111 */
                /* ../git/target/riscv/insn32.decode:979 */
                if (trans_vaesef_vs(ctx, &u.f_rmr)) return true;
                break;
            case 0x7:
                /* 1010011. ....0011 1010.... .1110111 */
                /* ../git/target/riscv/insn32.decode:986 */
                if (trans_vaesz_vs(ctx, &u.f_rmr)) return true;
                break;
            case 0x10:
                /* 1010011. ....1000 0010.... .1110111 */
                /* ../git/target/riscv/insn32.decode:1006 */
                if (trans_vsm4r_vs(ctx, &u.f_rmr)) return true;
                break;
            }
            break;
        case 0xaa002000u:
            /* 1010101. ........ .010.... .1110111 */
            /* ../git/target/riscv/insn32.decode:988 */
            decode_insn32_extract_r_vm_1(ctx, &u.f_rmrr, insn);
            if (trans_vaeskf2_vi(ctx, &u.f_rmrr)) return true;
            break;
        case 0xae002000u:
            /* 1010111. ........ .010.... .1110111 */
            /* ../git/target/riscv/insn32.decode:997 */
            decode_insn32_extract_r_vm_1(ctx, &u.f_rmrr, insn);
            if (trans_vsm3c_vi(ctx, &u.f_rmrr)) return true;
            break;
        case 0xb2002000u:
            /* 1011001. ........ .010.... .1110111 */
            /* ../git/target/riscv/insn32.decode:1000 */
            decode_insn32_extract_r_vm_1(ctx, &u.f_rmrr, insn);
            if (trans_vghsh_vv(ctx, &u.f_rmrr)) return true;
            break;
        case 0xb6002000u:
            /* 1011011. ........ .010.... .1110111 */
            /* ../git/target/riscv/insn32.decode:991 */
            decode_insn32_extract_r_vm_1(ctx, &u.f_rmrr, insn);
            if (trans_vsha2ms_vv(ctx, &u.f_rmrr)) return true;
            break;
        case 0xba002000u:
            /* 1011101. ........ .010.... .1110111 */
            /* ../git/target/riscv/insn32.decode:992 */
            decode_insn32_extract_r_vm_1(ctx, &u.f_rmrr, insn);
            if (trans_vsha2ch_vv(ctx, &u.f_rmrr)) return true;
            break;
        case 0xbe002000u:
            /* 1011111. ........ .010.... .1110111 */
            /* ../git/target/riscv/insn32.decode:993 */
            decode_insn32_extract_r_vm_1(ctx, &u.f_rmrr, insn);
            if (trans_vsha2cl_vv(ctx, &u.f_rmrr)) return true;
            break;
        }
        break;
    case 0x0000007b:
        /* ........ ........ ........ .1111011 */
        decode_insn32_extract_r(ctx, &u.f_r, insn);
        switch (insn & 0xfe007000u) {
        case 0x00000000:
            /* 0000000. ........ .000.... .1111011 */
            /* ../git/target/riscv/insn32.decode:205 */
            if (trans_addd(ctx, &u.f_r)) return true;
            break;
        case 0x00001000:
            /* 0000000. ........ .001.... .1111011 */
            /* ../git/target/riscv/insn32.decode:207 */
            if (trans_slld(ctx, &u.f_r)) return true;
            break;
        case 0x00005000:
            /* 0000000. ........ .101.... .1111011 */
            /* ../git/target/riscv/insn32.decode:208 */
            if (trans_srld(ctx, &u.f_r)) return true;
            break;
        case 0x02000000:
            /* 0000001. ........ .000.... .1111011 */
            /* ../git/target/riscv/insn32.decode:229 */
            if (trans_muld(ctx, &u.f_r)) return true;
            break;
        case 0x02004000:
            /* 0000001. ........ .100.... .1111011 */
            /* ../git/target/riscv/insn32.decode:230 */
            if (trans_divd(ctx, &u.f_r)) return true;
            break;
        case 0x02005000:
            /* 0000001. ........ .101.... .1111011 */
            /* ../git/target/riscv/insn32.decode:231 */
            if (trans_divud(ctx, &u.f_r)) return true;
            break;
        case 0x02006000:
            /* 0000001. ........ .110.... .1111011 */
            /* ../git/target/riscv/insn32.decode:232 */
            if (trans_remd(ctx, &u.f_r)) return true;
            break;
        case 0x02007000:
            /* 0000001. ........ .111.... .1111011 */
            /* ../git/target/riscv/insn32.decode:233 */
            if (trans_remud(ctx, &u.f_r)) return true;
            break;
        case 0x40000000:
            /* 0100000. ........ .000.... .1111011 */
            /* ../git/target/riscv/insn32.decode:206 */
            if (trans_subd(ctx, &u.f_r)) return true;
            break;
        case 0x40005000:
            /* 0100000. ........ .101.... .1111011 */
            /* ../git/target/riscv/insn32.decode:209 */
            if (trans_srad(ctx, &u.f_r)) return true;
            break;
        }
        break;
    }
    return false;
}
