[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v3 4/8] target/ppc: add vmulld instruction
From: |
Richard Henderson |
Subject: |
Re: [PATCH v3 4/8] target/ppc: add vmulld instruction |
Date: |
Thu, 25 Jun 2020 11:25:08 -0700 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.8.0 |
On 6/25/20 10:00 AM, Lijun Pan wrote:
> vmulld: Vector Multiply Low Doubleword.
>
> Signed-off-by: Lijun Pan <ljp@linux.ibm.com>
> ---
> v3: use tcg_gen_gvec_mul()
>
> target/ppc/translate/vmx-impl.inc.c | 1 +
> target/ppc/translate/vmx-ops.inc.c | 4 ++++
This part looks fine.
> tcg/ppc/tcg-target.h | 2 ++
> tcg/ppc/tcg-target.inc.c | 7 +++++--
This part must be a separate patch.
> @@ -3149,6 +3150,7 @@ static void tcg_out_vec_op(TCGContext *s, TCGOpcode opc,
> static const uint32_t
> add_op[4] = { VADDUBM, VADDUHM, VADDUWM, VADDUDM },
> sub_op[4] = { VSUBUBM, VSUBUHM, VSUBUWM, VSUBUDM },
> + mul_op[4] = { 0, 0, VMULUWM, VMULLD },
> neg_op[4] = { 0, 0, VNEGW, VNEGD },
> eq_op[4] = { VCMPEQUB, VCMPEQUH, VCMPEQUW, VCMPEQUD },
> ne_op[4] = { VCMPNEB, VCMPNEH, VCMPNEW, 0 },
> @@ -3199,8 +3201,9 @@ static void tcg_out_vec_op(TCGContext *s, TCGOpcode opc,
> a1 = 0;
> break;
> case INDEX_op_mul_vec:
> - tcg_debug_assert(vece == MO_32 && have_isa_2_07);
> - insn = VMULUWM;
> + tcg_debug_assert((vece == MO_32 && have_isa_2_07) ||
> + (vece == MO_64 && have_isa_3_10));
> + insn = mul_op[vece];
I think it would be ok to just index mul_op here, since the real isa check is
to be done elsewhere.
Missing a change to tcg_can_emit_vec_op to do that isa check, and allow
INDEX_op_mul_vec to be used for MO_64.
Missing a change to tcg_target_init to test for PPC_FEATURE2_ARCH_3_1.
r~
- Re: [PATCH v3 1/8] target/ppc: Introduce Power ISA 3.1 flag, (continued)
[PATCH v3 5/8] target/ppc: add vmulh{su}w instructions, Lijun Pan, 2020/06/25
[PATCH v3 6/8] fix the prototype of muls64/mulu64, Lijun Pan, 2020/06/25
[PATCH v3 2/8] target/ppc: add byte-reverse br[dwh] instructions, Lijun Pan, 2020/06/25
[PATCH v3 4/8] target/ppc: add vmulld instruction, Lijun Pan, 2020/06/25
- Re: [PATCH v3 4/8] target/ppc: add vmulld instruction,
Richard Henderson <=
[PATCH v3 3/8] target/ppc: convert vmuluwm to tcg_gen_gvec_mul, Lijun Pan, 2020/06/25
[PATCH v3 8/8] target/ppc: add vdiv{su}{wd} vmod{su}{wd} instructions, Lijun Pan, 2020/06/25
[PATCH v3 7/8] target/ppc: add vmulh{su}d instructions, Lijun Pan, 2020/06/25