Re: [Qemu-devel] [PATCH v6 21/26] tcg: Add generic vector ops for multiplication
On Tue, 21 Nov 2017, Richard Henderson wrote: > Signed-off-by: Richard Henderson > +void tcg_gen_mul_vec(unsigned vece, TCGv_vec r, TCGv_vec a, TCGv_vec b) > +{ > +TCGTemp *rt = tcgv_vec_temp(r); > +TCGTemp *at = tcgv_vec_temp(a); > +TCGTemp *bt = tcgv_vec_temp(b); > +TCGArg ri = temp_arg(rt); > +TCGArg ai = temp_arg(at); > +TCGArg bi = temp_arg(bt); > +TCGType type = rt->base_type; > +int can; > + > +tcg_debug_assert(at->base_type == type); > +tcg_debug_assert(bt->base_type == type); > +can = tcg_can_emit_vec_op(INDEX_op_cmp_vec, type, vece); Should be INDEX_op_mul_vec in the line above. > +if (can > 0) { > +vec_gen_3(INDEX_op_mul_vec, type, vece, ri, ai, bi); > +} else { > +tcg_debug_assert(can < 0); > +tcg_expand_vec_op(INDEX_op_mul_vec, type, vece, ri, ai, bi); > +} > +} -- Kirill
Re: [Qemu-devel] [PATCH v6 21/26] tcg: Add generic vector ops for multiplication
On 12/05/2017 03:33 AM, Kirill Batuzov wrote: > On Tue, 21 Nov 2017, Richard Henderson wrote: > >> Signed-off-by: Richard Henderson > >> +void tcg_gen_mul_vec(unsigned vece, TCGv_vec r, TCGv_vec a, TCGv_vec b) >> +{ >> +TCGTemp *rt = tcgv_vec_temp(r); >> +TCGTemp *at = tcgv_vec_temp(a); >> +TCGTemp *bt = tcgv_vec_temp(b); >> +TCGArg ri = temp_arg(rt); >> +TCGArg ai = temp_arg(at); >> +TCGArg bi = temp_arg(bt); >> +TCGType type = rt->base_type; >> +int can; >> + >> +tcg_debug_assert(at->base_type == type); >> +tcg_debug_assert(bt->base_type == type); >> +can = tcg_can_emit_vec_op(INDEX_op_cmp_vec, type, vece); > > Should be INDEX_op_mul_vec in the line above. Fixed, thanks. r~