aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Target
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2007-10-19 03:29:26 +0000
committerChris Lattner <sabre@nondot.org>2007-10-19 03:29:26 +0000
commit3a7c33a853b03d9dcde400b9d58e02c25d9789db (patch)
treef9aeeeb97e7e1a9934c5a1e5746abf813d331255 /lib/Target
parent95cf196d1583e04fc217cd8ed1a997c1544c99b0 (diff)
downloadexternal_llvm-3a7c33a853b03d9dcde400b9d58e02c25d9789db.zip
external_llvm-3a7c33a853b03d9dcde400b9d58e02c25d9789db.tar.gz
external_llvm-3a7c33a853b03d9dcde400b9d58e02c25d9789db.tar.bz2
Add an easy microoptimization I noticed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43164 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target')
-rw-r--r--lib/Target/ARM/README.txt19
1 files changed, 19 insertions, 0 deletions
diff --git a/lib/Target/ARM/README.txt b/lib/Target/ARM/README.txt
index f05ae1c..1fb7750 100644
--- a/lib/Target/ARM/README.txt
+++ b/lib/Target/ARM/README.txt
@@ -573,3 +573,22 @@ __Z11no_overflowjj:
bx lr
//===---------------------------------------------------------------------===//
+
+Easy ARM microoptimization (with -mattr=+vfp2):
+
+define i64 @i(double %X) {
+ %Y = bitcast double %X to i64
+ ret i64 %Y
+}
+
+compiles into:
+
+_i:
+ fmdrr d0, r0, r1
+ fmrrd r0, r1, d0
+ bx lr
+
+This just needs a target-specific dag combine to merge the two ARMISD nodes.
+
+
+//===---------------------------------------------------------------------===//