* [Qemu-devel] [RISU PATCH] arm.risu: Avoid VTRN with Vd == Vm
@ 2019-06-13 14:37 Peter Maydell
2019-06-13 21:17 ` Richard Henderson
0 siblings, 1 reply; 3+ messages in thread
From: Peter Maydell @ 2019-06-13 14:37 UTC (permalink / raw
To: qemu-arm, qemu-devel; +Cc: Richard Henderson, Alex Bennée
The AArch32 VTRN instruction is specified to give an UNKNOWN
result if Vd and Vm are the same register; avoid generating
this in risu output, as we already do for VUZP and VZIP.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
---
Alex: this pattern error is why we don't pass your
testcases/aarch32-all/insn_VTRN__INC.risu.bin when compared
with a real Cortex-A7. You probably want to update that.
arm.risu | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/arm.risu b/arm.risu
index 9009e6b..c16d245 100644
--- a/arm.risu
+++ b/arm.risu
@@ -613,7 +613,8 @@ VCLT0 A1 1111 0011 1 d 11 sz:2 01 vd:4 0 f 100 q m 0 vm:4
VABS A1 1111 0011 1 d 11 sz:2 01 vd:4 0 f 110 q m 0 vm:4
VNEG A1 1111 0011 1 d 11 sz:2 01 vd:4 0 f 111 q m 0 vm:4
VSWP A1 1111 0011 1 d 11 sz:2 10 vd:4 00000 q m 0 vm:4
-VTRN A1 1111 0011 1 d 11 sz:2 10 vd:4 00001 q m 0 vm:4
+# d == m gives UNKNOWN results, so avoid it
+VTRN A1 1111 0011 1 d 11 sz:2 10 vd:4 00001 q m 0 vm:4 { ($d != $m) || ($vd != $vm); }
# d == m gives UNKNOWN results, so avoid it
VUZP A1 1111 0011 1 d 11 sz:2 10 vd:4 00010 q m 0 vm:4 { ($d != $m) || ($vd != $vm); }
VZIP A1 1111 0011 1 d 11 sz:2 10 vd:4 00011 q m 0 vm:4 { ($d != $m) || ($vd != $vm); }
--
2.20.1
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [Qemu-devel] [RISU PATCH] arm.risu: Avoid VTRN with Vd == Vm
2019-06-13 14:37 [Qemu-devel] [RISU PATCH] arm.risu: Avoid VTRN with Vd == Vm Peter Maydell
@ 2019-06-13 21:17 ` Richard Henderson
2019-06-17 14:24 ` Peter Maydell
0 siblings, 1 reply; 3+ messages in thread
From: Richard Henderson @ 2019-06-13 21:17 UTC (permalink / raw
To: Peter Maydell, qemu-arm, qemu-devel; +Cc: Alex Bennée
On 6/13/19 7:37 AM, Peter Maydell wrote:
> The AArch32 VTRN instruction is specified to give an UNKNOWN
> result if Vd and Vm are the same register; avoid generating
> this in risu output, as we already do for VUZP and VZIP.
>
> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
> ---
> Alex: this pattern error is why we don't pass your
> testcases/aarch32-all/insn_VTRN__INC.risu.bin when compared
> with a real Cortex-A7. You probably want to update that.
>
> arm.risu | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
r~
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [Qemu-devel] [RISU PATCH] arm.risu: Avoid VTRN with Vd == Vm
2019-06-13 21:17 ` Richard Henderson
@ 2019-06-17 14:24 ` Peter Maydell
0 siblings, 0 replies; 3+ messages in thread
From: Peter Maydell @ 2019-06-17 14:24 UTC (permalink / raw
To: Richard Henderson; +Cc: qemu-arm, Alex Bennée, QEMU Developers
On Thu, 13 Jun 2019 at 22:17, Richard Henderson
<richard.henderson@linaro.org> wrote:
>
> On 6/13/19 7:37 AM, Peter Maydell wrote:
> > The AArch32 VTRN instruction is specified to give an UNKNOWN
> > result if Vd and Vm are the same register; avoid generating
> > this in risu output, as we already do for VUZP and VZIP.
> >
> > Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
> > ---
> > Alex: this pattern error is why we don't pass your
> > testcases/aarch32-all/insn_VTRN__INC.risu.bin when compared
> > with a real Cortex-A7. You probably want to update that.
> >
> > arm.risu | 3 ++-
> > 1 file changed, 2 insertions(+), 1 deletion(-)
>
> Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Applied to risu master, thanks.
-- PMM
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2019-06-17 14:54 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-06-13 14:37 [Qemu-devel] [RISU PATCH] arm.risu: Avoid VTRN with Vd == Vm Peter Maydell
2019-06-13 21:17 ` Richard Henderson
2019-06-17 14:24 ` Peter Maydell
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.