summaryrefslogtreecommitdiff
path: root/utils
diff options
context:
space:
mode:
authorJakob Stoklund Olesen <stoklund@2pi.dk>2011-08-09 23:41:44 +0000
committerJakob Stoklund Olesen <stoklund@2pi.dk>2011-08-09 23:41:44 +0000
commitc70c2cafe19d90ee0230cc4257772fe68567f06e (patch)
treec82cb67c70772699ee214db6cd70ce81e749ce68 /utils
parentde317f40f7a9962372adea162a12ec35a628efa1 (diff)
downloadllvm-c70c2cafe19d90ee0230cc4257772fe68567f06e.tar.gz
llvm-c70c2cafe19d90ee0230cc4257772fe68567f06e.tar.bz2
llvm-c70c2cafe19d90ee0230cc4257772fe68567f06e.tar.xz
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 'utils')
0 files changed, 0 insertions, 0 deletions