On Tue, 21 Nov 2017, Richard Henderson wrote:
> Signed-off-by: Richard Henderson <[email protected]>
> +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