[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v6 56/82] target/arm: Implement SVE2 saturating multiply (ind
From: |
Peter Maydell |
Subject: |
Re: [PATCH v6 56/82] target/arm: Implement SVE2 saturating multiply (indexed) |
Date: |
Thu, 13 May 2021 13:45:45 +0100 |
On Fri, 30 Apr 2021 at 22:24, Richard Henderson
<richard.henderson@linaro.org> wrote:
>
> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
> ---
> target/arm/helper-sve.h | 5 +++++
> target/arm/sve.decode | 12 ++++++++++++
> target/arm/sve_helper.c | 20 ++++++++++++++++++++
> target/arm/translate-sve.c | 19 +++++++++++++++----
> 4 files changed, 52 insertions(+), 4 deletions(-)
>
> +#define DO_ZZX(NAME, TYPEW, TYPEN, HW, HN, OP) \
> +void HELPER(NAME)(void *vd, void *vn, void *vm, uint32_t desc) \
> +{ \
> + intptr_t i, j, oprsz = simd_oprsz(desc); \
> + intptr_t sel = extract32(desc, SIMD_DATA_SHIFT, 1) * sizeof(TYPEN); \
> + intptr_t idx = extract32(desc, SIMD_DATA_SHIFT + 1, 3) * sizeof(TYPEN); \
> + for (i = 0; i < oprsz; i += 16) { \
> + TYPEW mm = *(TYPEN *)(vm + i + idx); \
Again, not sure why we don't need an H macro here.
> + for (j = 0; j < 16; j += sizeof(TYPEW)) { \
> + TYPEW nn = *(TYPEN *)(vn + HN(i + j + sel)); \
> + *(TYPEW *)(vd + HW(i + j)) = OP(nn, mm); \
> + } \
> + } \
> +}
Otherwise
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
thanks
-- PMM
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Re: [PATCH v6 56/82] target/arm: Implement SVE2 saturating multiply (indexed),
Peter Maydell <=