diff options
author | Chris Lattner <sabre@nondot.org> | 2007-10-19 03:29:26 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2007-10-19 03:29:26 +0000 |
commit | 3a7c33a853b03d9dcde400b9d58e02c25d9789db (patch) | |
tree | f9aeeeb97e7e1a9934c5a1e5746abf813d331255 /lib/Target | |
parent | 95cf196d1583e04fc217cd8ed1a997c1544c99b0 (diff) | |
download | external_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.txt | 19 |
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. + + +//===---------------------------------------------------------------------===// |