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 | 5d979d57ae5229af6d64864a5bce471a991df15a (patch) | |
| tree | e8a89f6ce6a830470aa276a3045792de66a2729f /llvm/lib | |
| parent | e1b7fa3410c35b965e271c636719883f24af6e49 (diff) | |
| download | bcm5719-llvm-5d979d57ae5229af6d64864a5bce471a991df15a.tar.gz bcm5719-llvm-5d979d57ae5229af6d64864a5bce471a991df15a.zip | |
Add an easy microoptimization I noticed.
llvm-svn: 43164
Diffstat (limited to 'llvm/lib')
| -rw-r--r-- | llvm/lib/Target/ARM/README.txt | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/llvm/lib/Target/ARM/README.txt b/llvm/lib/Target/ARM/README.txt index f05ae1c4230..1fb775064ef 100644 --- a/llvm/lib/Target/ARM/README.txt +++ b/llvm/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. + + +//===---------------------------------------------------------------------===// |

