On Wed, 2 Jul 2025 at 13:38, Richard Henderson
<richard.hender...@linaro.org> wrote:
>
> Signed-off-by: Richard Henderson <richard.hender...@linaro.org>
> ---


> +#define UNPK(NAME, SREG, TW, TN, HW, HN)                        \
> +void HELPER(NAME)(void *vd, void *vs, uint32_t desc)            \
> +{                                                               \
> +    ARMVectorReg scratch[SREG];                                 \
> +    size_t oprsz = simd_oprsz(desc);                            \
> +    size_t n = oprsz / sizeof(TW);                              \
> +    if ((vs - vd) < 2 * SREG * sizeof(ARMVectorReg)) {          \
> +        vs = memcpy(scratch, vs, sizeof(scratch));              \
> +    }                                                           \
> +    for (size_t r = 0; r < SREG; ++r) {                         \
> +        TN *s = vs + r * sizeof(ARMVectorReg);                  \
> +        for (size_t i = 0; i < 2; ++i) {                        \
> +            TW *d = vd + (2 * r + i) * sizeof(ARMVectorReg);    \
> +            for (size_t e = 0; e < n; ++e) {                    \
> +                d[HW(e)] = s[i * n + HN(e)];                    \
> +            }                                                   \
> +        }                                                       \
> +    }                                                           \
> +}

Similar remarks about the "when do we need to copy" check
and the H macros as patch 49, but otherwise

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

thanks
-- PMM

Reply via email to