From 3a7c33a853b03d9dcde400b9d58e02c25d9789db Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Fri, 19 Oct 2007 03:29:26 +0000 Subject: [PATCH] Add an easy microoptimization I noticed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43164 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Target/ARM/README.txt | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/lib/Target/ARM/README.txt b/lib/Target/ARM/README.txt index f05ae1c4230..1fb775064ef 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. + + +//===---------------------------------------------------------------------===// -- 2.34.1