[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 06/10] target-arm: A64: Add SIMD ZIP/UZP/TRN
From: |
Alex Bennée |
Subject: |
Re: [Qemu-devel] [PATCH 06/10] target-arm: A64: Add SIMD ZIP/UZP/TRN |
Date: |
Sat, 11 Jan 2014 08:30:10 +0000 |
User-agent: |
mu4e 0.9.9.6pre2; emacs 24.3.50.5 |
address@hidden writes:
> On 01/10/2014 09:12 AM, Peter Maydell wrote:
>> + for (i = 0; i < elements; i++) {
>> + switch (opcode) {
>> + case 1: /* UZP1/2 */
>> + {
>> + int midpoint = elements / 2;
>> + if (i < midpoint) {
>> + read_vec_element(s, tcg_res, rn, 2 * i + part, size);
>> + } else {
>> + read_vec_element(s, tcg_res, rm,
>> + 2 * (i - midpoint) + part, size);
>> + }
>> + break;
>> + }
>
> You're generating up to 16 * 3 + 2 = 50 opcodes here. I do wonder if it
> wouldn't be better to implement these as helpers. But,
What's the hit in terms of opcodes for calling a helper function? I
would have thought you spend 10s of opcodes with messing around with
stack frames and the like before you get to the helper.
I was wondering if there is a demand for more SIMD like TCG opcodes but
I suspect all the arches are subtly different enough to make it a pain
to abstract.
>
> Reviewed-by: Richard Henderson <address@hidden>
>
>
> r~
--
Sent with my mu4e
- [Qemu-devel] [PATCH 00/10] A64 SIMD patchset one: ld/st, C3.6.1..C3.6.7, Peter Maydell, 2014/01/10
- [Qemu-devel] [PATCH 08/10] target-arm: A64: Add SIMD copy operations, Peter Maydell, 2014/01/10
- [Qemu-devel] [PATCH 06/10] target-arm: A64: Add SIMD ZIP/UZP/TRN, Peter Maydell, 2014/01/10
- [Qemu-devel] [PATCH 10/10] target-arm: A64: Add SIMD scalar copy instructions, Peter Maydell, 2014/01/10
- [Qemu-devel] [PATCH 02/10] target-arm: A64: Add SIMD ld/st single, Peter Maydell, 2014/01/10
- [Qemu-devel] [PATCH 09/10] target-arm: A64: Add SIMD modified immediate group, Peter Maydell, 2014/01/10
- [Qemu-devel] [PATCH 05/10] target-arm: A64: Add SIMD TBL/TBLX, Peter Maydell, 2014/01/10