qemu-arm
[Top][All Lists]
Advanced

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

Re: [PATCH 16/55] target/arm: Implement MVE VREV16, VREV32, VREV64


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~



reply via email to

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