qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v6 38/82] target/arm: Implement SVE2 ADDHNB, ADDHNT


From: Peter Maydell
Subject: Re: [PATCH v6 38/82] target/arm: Implement SVE2 ADDHNB, ADDHNT
Date: Wed, 12 May 2021 16:23:17 +0100

On Fri, 30 Apr 2021 at 22:00, Richard Henderson
<richard.henderson@linaro.org> wrote:
>
> From: Stephen Long <steplong@quicinc.com>
>
> Signed-off-by: Stephen Long <steplong@quicinc.com>
> Message-Id: <20200417162231.10374-2-steplong@quicinc.com>
> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
> ---

> diff --git a/target/arm/sve_helper.c b/target/arm/sve_helper.c
> index 572d41a26c..2dead1f056 100644
> --- a/target/arm/sve_helper.c
> +++ b/target/arm/sve_helper.c
> @@ -2112,6 +2112,42 @@ DO_SHRNT(sve2_uqrshrnt_d, uint64_t, uint32_t,     , 
> H1_4, DO_UQRSHRN_D)
>  #undef DO_SHRNB
>  #undef DO_SHRNT
>
> +#define DO_BINOPNB(NAME, TYPEW, TYPEN, SHIFT, OP)                           \
> +void HELPER(NAME)(void *vd, void *vn, void *vm, uint32_t desc)              \
> +{                                                                           \
> +    intptr_t i, opr_sz = simd_oprsz(desc);                                  \
> +    for (i = 0; i < opr_sz; i += sizeof(TYPEW)) {                           \
> +        TYPEW nn = *(TYPEW *)(vn + i);                                      \
> +        TYPEW mm = *(TYPEW *)(vm + i);                                      \
> +        *(TYPEW *)(vd + i) = (TYPEN)OP(nn, mm, SHIFT);                      \
> +    }                                                                       \
> +}

Doesn't this need H macros like the 'T' version ?

> +
> +#define DO_BINOPNT(NAME, TYPEW, TYPEN, SHIFT, HW, HN, OP)                   \
> +void HELPER(NAME)(void *vd, void *vn, void *vm, uint32_t desc)              \
> +{                                                                           \
> +    intptr_t i, opr_sz = simd_oprsz(desc);                                  \
> +    for (i = 0; i < opr_sz; i += sizeof(TYPEW)) {                           \
> +        TYPEW nn = *(TYPEW *)(vn + HW(i));                                  \
> +        TYPEW mm = *(TYPEW *)(vm + HW(i));                                  \
> +        *(TYPEN *)(vd + HN(i + sizeof(TYPEN))) = OP(nn, mm, SHIFT);         \
> +    }                                                                       \
> +}

Otherwise
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>

thanks
-- PMM



reply via email to

[Prev in Thread] Current Thread [Next in Thread]