diff options
author | Jakob Stoklund Olesen <stoklund@2pi.dk> | 2011-08-09 23:41:44 +0000 |
---|---|---|
committer | Jakob Stoklund Olesen <stoklund@2pi.dk> | 2011-08-09 23:41:44 +0000 |
commit | c70c2cafe19d90ee0230cc4257772fe68567f06e (patch) | |
tree | c82cb67c70772699ee214db6cd70ce81e749ce68 /lib/Target/ARM/Disassembler/ARMDisassembler.cpp | |
parent | de317f40f7a9962372adea162a12ec35a628efa1 (diff) |
Promote VMOVS to VMOVD when possible.
On Cortex-A8, we use the NEON v2f32 instructions for f32 arithmetic. For
better latency, we also send D-register copies down the NEON pipeline by
translating them to vorr instructions.
This patch promotes even S-register copies to D-register copies when
possible so they can also go down the NEON pipeline. Example:
vldr.32 s0, LCPI0_0
loop:
vorr d1, d0, d0
loop2:
...
vadd.f32 d1, d1, d16
The vorr instruction looked like this after regalloc:
%S2<def> = COPY %S0, %D1<imp-def>
Copies involving odd S-registers, and copies that don't define the full
D-register are left alone.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137182 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/ARM/Disassembler/ARMDisassembler.cpp')
0 files changed, 0 insertions, 0 deletions