|
From: | Richard Henderson |
Subject: | Re: [PATCH 16/55] target/arm: Implement MVE VREV16, VREV32, VREV64 |
Date: | Tue, 8 Jun 2021 15:23:29 -0700 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.8.1 |
On 6/7/21 9:57 AM, Peter Maydell wrote:
+static uint64_t mask_to_bytemask8(uint16_t mask) +{ + return mask_to_bytemask4(mask) | + ((uint64_t)mask_to_bytemask4(mask >> 4) << 32); +}
Again, suggest to share the array from expand_pred_b.
+DO_1OP(vrev16b, 2, uint16_t, H2, bswap16) +DO_1OP(vrev32b, 4, uint32_t, H4, bswap32) +DO_1OP(vrev32h, 4, uint32_t, H4, hswap32) +DO_1OP(vrev64b, 8, uint64_t, , bswap64) +DO_1OP(vrev64h, 8, uint64_t, , hswap64) +DO_1OP(vrev64w, 8, uint64_t, , wswap64)
I've started to wonder if we shouldn't add a no-op H8, just so we don't have the empty argument for checkpatch to complain about.
And in this particular case I suppose we could H##ESIZE, which would then negate my earlier suggestion for using sizeof.
+ MVEGenOneOpFn *fns[] = {
static const, etc. r~
[Prev in Thread] | Current Thread | [Next in Thread] |