On 2020/3/15 6:47, Richard Henderson wrote: > On 3/12/20 7:58 AM, LIU Zhiwei wrote: >> + >> +/* Vector Floating-Point Merge Instruction */ >> +static bool opfvf_vfmerge_check(DisasContext *s, arg_rmrr *a) >> +{ >> + return (vext_check_isa_ill(s, RVV) && >> + vext_check_overlap_mask(s, a->rd, a->vm, false) && >> + vext_check_reg(s, a->rd, false) && >> + vext_check_reg(s, a->rs2, false) && >> + ((a->vm == 0) || (a->rs2 == 0)) && >> + (s->sew != 0)); >> +} >> +GEN_OPFVF_TRANS(vfmerge_vfm, opfvf_vfmerge_check) > Similar comments as for integer merge, using tcg_gen_gvec_dup_i64 for > unpredicated merges. > > In fact, there's no reason at all to define a helper function for this one. I > would expect you do be able to use the exact same helpers as for the integer > merges. Do you mean that I should expands TCGv to TCGv_i64 for vmv.v.x in translation? So that I can reuse it. void gen_helper_vmv_v_x(TCG_ptr, TCGv_i64, TCGv_env, TCGv_i32); Zhiwei > > r~