qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH 18/20] target/arm: Reorg NEON VLD/VST all elemen


From: Richard Henderson
Subject: Re: [Qemu-devel] [PATCH 18/20] target/arm: Reorg NEON VLD/VST all elements
Date: Fri, 19 Oct 2018 08:15:47 -0700
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.2.1

On 10/19/18 6:50 AM, Peter Maydell wrote:
> On 11 October 2018 at 21:52, Richard Henderson
> <address@hidden> wrote:
>> Instead of shifts and masks, use direct loads and stores from the neon
>> register file.  Mirror the iteration structure of the ARM pseudocode
>> more closely.  Correct the parameters of the VLD2 A2 insn.
> 
> So is this actually fixing a bug here? The new code definitely
> looks right, but I can't make heads nor tails of the old code,
> so I'm not sure whether it actually behaved differently...

Hmm, that comment was written in July.  Working backward,

-    {4, 2, 1},
+    {2, 2, 2},

which is for "VLD2 (multiple 2-element structures) A2", which does have

    regs = 2; inc = 2;

in the pseudocode.  So, yes, we had the wrong stride (last number) for that 
insn.

Aside from that the old code and the new code should have the same end result.

The old code computed addresses as it stepped through register elements, and so
accesses memory in a "random" order.  The new code accesses memory sequentially
and computes the register element that corresponds.  This is for simplicity of
tcg computation of addresses and not correctness.


r~



reply via email to

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