[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-ppc] [Qemu-devel] [PATCH 00/34] tcg, target/ppc vector improve
From: |
Mark Cave-Ayland |
Subject: |
Re: [Qemu-ppc] [Qemu-devel] [PATCH 00/34] tcg, target/ppc vector improvements |
Date: |
Thu, 3 Jan 2019 18:31:09 +0000 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.4.0 |
On 18/12/2018 06:38, Richard Henderson wrote:
> This implements some of the things that I talked about with Mark
> this morning / yesterday. In particular:
>
> (0) Implement expanders for nand, nor, eqv logical operations.
>
> (1) Implement saturating arithmetic for the tcg backend.
>
> While I had expanders for these, they always went to helpers.
> It's easy enough to expand byte and half-word operations for x86.
> Beyond that, 32 and 64-bit operations can be expanded with integers.
>
> (2) Implement minmax arithmetic for the tcg backend.
>
> While I had integral minmax operations, I had not yet added
> any vector expanders for this. (The integral stuff came in
> for atomic minmax.)
>
> (3) Trivial conversions to minmax for target/arm.
>
> (4) Patches 11-18 are identical to Mark's.
>
> (5) Patches 19-25 implement splat and logicals for VMX and VSX.
>
> VSX is no more difficult than VMX for these. It does seem to be
> just about everything that we can do for VSX at the momement.
>
> (6) Patches 26-33 implement saturating arithmetic for VMX.
>
> (7) Patch 34 implements minmax arithmetic for VMX.
>
> I've tested the new operations via aarch64 guest, as that's the set
> of risu test cases I've got handy. The rest is untested so far.
I've taken my previous PPC patchsets below:
[PATCH v5 0/9] target/ppc: prepare for conversion to TCG vector operations
https://lists.gnu.org/archive/html/qemu-devel/2019-01/msg00063.html
[PATCH v2 0/8] target/ppc: remove various endian hacks from int_helper.c
https://lists.gnu.org/archive/html/qemu-devel/2018-12/msg06149.html
and then rebased this patchset on top of them (including a squash of the vsplt
fix
posted earlier today at
https://lists.gnu.org/archive/html/qemu-devel/2019-01/msg00287.html) and pushed
the
result to https://github.com/mcayland/qemu/tree/ppc-altivec-v5.5-rth.
Fixing the vsplt instruction now gives a readable display in my MacOS tests,
but I'm
still seeing "shadows" such as https://www.ilande.co.uk/tmp/qemu/badapple4.png
which
I've bisected down to:
commit 71f229eb331e979971a0a79e5a2fcdfb9380bd06
Author: Richard Henderson <address@hidden>
Date: Mon Dec 17 22:39:10 2018 -0800
target/ppc: convert vadd*s and vsub*s to vector operations
Signed-off-by: Richard Henderson <address@hidden>
So looks like there's something still not quite right with the saturation
flag/vector
saturation implementation.
ATB,
Mark.