[llvm-commits] [PATCH]Convert vmov instructions between GPR and S registers for Cortex-A9

Silviu Baranga silbar01 at arm.com
Tue Aug 7 06:37:39 PDT 2012


Hi,

There is a performance penalty on Cortex-A9 when switching between VFP and
NEON code.
For the VFP VMOV instructions between S registers and GPR registers, we have
a NEON
instruction with the same functionality which can be used instead (VMOV.32).
Because
we know the required lane for the VMOV.32 instruction only post-RA, this
instruction
is currently not being used, even when surrounded by NEON code.

This patch implements a post-RA pass which converts VMOV instructions
between GPR
and S registers into equivalent VMOV.32 instructions, when the VMOV
instruction is
followed by NEON-specific instruction. The code introduced by this patch
will also
be useful for other similar transformations.

Please review this patch.

Thanks,
Silviu
-------------- next part --------------
A non-text attachment was scrubbed...
Name: vmov32.diff
Type: application/octet-stream
Size: 14227 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20120807/76d9cbde/attachment.obj>


More information about the llvm-commits mailing list