qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Dmitry Zhurikhin <zhur@ispras.ru>
To: qemu-devel@nongnu.org
Subject: [Qemu-devel] QEMU state of ARM NEON support.
Date: Mon, 22 Mar 2010 16:43:59 +0300	[thread overview]
Message-ID: <4BA7741F.60209@ispras.ru> (raw)

[-- Attachment #1: Type: text/plain, Size: 1714 bytes --]

Hello.  We made a small experiment to analyze QEMU state of NEON support.  We 
took our tests from Valgrind that we wrote to test support for all NEON 
instructions and ran them inside of QEMU.  I am attaching the output files from 
trunk QEMU as well as reference file showing what output should be (taken from 
the real test board).  We find the results interesting.  Overall NEON support is 
great.  Here is a list of what problems we've seen so far:
   - To start with, QEMU translator doesn't support at all 128-bit polynomial 
VMULL instruction and VSLI and VSRI instructions.  Though there are two patches 
in the mailing list to address missing VSLI and VSRI instructions problem.  One 
patch adds support only for VSLI instruction.  The other adds support for both 
of them but its emulation of VSLI instruction is incorrect.
   - QEMU also raises 'Illegal instruction' interrupt on some kinds of VCVT 
instructions and converts all values incorrectly.  Seems like QEMU recognizes 
VCVT as another instruction.
   - Many instructions are emulated (partially) incorrectly.  They include 
VQSHL(U), V(Q)RSHL, VRSHR, V(R)SRA, VMUL, VMLA, VMLS, VMULL, VMLAL, VMLSL, VZIP, 
128-bit VUZP, 64-bit V(Q)(R)SHR(U)N, VQ(R)DMUL(L,H), VQDMLSL, VQDMLAL, VSHLL, 
VRECPE and VRSQRT(E,S).
   - Encoding of integer constants with cmode 1101 is processed incorrectly (see 
VMOV or VMVN).
   - Flush-to-zero is not performed before executing floating-point NEON 
instructions as it should be (which results in incorrect VCGT and VCLE 
instructions result).
   - Saturation flag is not set.
   - QEMU reports "Internal resource leak"s for some instructions.

Hope this information will be helpful.


     Regards,
     Dmitry

[-- Attachment #2: qemu-neon-test.tar.bz2 --]
[-- Type: application/x-bzip, Size: 74234 bytes --]

             reply	other threads:[~2010-03-22 13:44 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-03-22 13:43 Dmitry Zhurikhin [this message]
2010-03-25  7:52 ` [Qemu-devel] QEMU state of ARM NEON support Juha.Riihimaki
2010-03-25 10:27   ` Dmitry Zhurikhin
2010-03-25 11:04     ` Juha.Riihimaki
2010-03-25 14:00   ` WIP flush-to-zero patch [was: Re: [Qemu-devel] QEMU state of ARM NEON support.] Nathan Froyd
2010-03-25 16:11     ` Richard Henderson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4BA7741F.60209@ispras.ru \
    --to=zhur@ispras.ru \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).