aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNate Begeman <natebegeman@mac.com>2006-03-21 18:58:20 +0000
committerNate Begeman <natebegeman@mac.com>2006-03-21 18:58:20 +0000
commitc0a8b6df2adc690998cd6e523e6bd37dd4c16bd3 (patch)
tree12ace742cd01a15900cc600c1bc2077cbe8ad53c
parent4d2182a729481fa87baba22f268b562c6e83de12 (diff)
Update readme
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26924 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lib/Target/PowerPC/README.txt34
1 files changed, 34 insertions, 0 deletions
diff --git a/lib/Target/PowerPC/README.txt b/lib/Target/PowerPC/README.txt
index e6d22dac1a..c90343eeee 100644
--- a/lib/Target/PowerPC/README.txt
+++ b/lib/Target/PowerPC/README.txt
@@ -549,3 +549,37 @@ We need to codegen -0.0 vector efficiently (no constant pool load).
When -ffast-math is on, we can use 0.0.
===-------------------------------------------------------------------------===
+
+float foo(float X) { return (int)(X); }
+
+Currently produces
+
+_foo:
+ lis r2, ha16(LCPI1_0)
+ lis r3, 17200
+ fctiwz f0, f1
+ stfd f0, -8(r1)
+ lwz r4, -4(r1)
+ xoris r4, r4, 32768
+ stw r4, -12(r1)
+ stw r3, -16(r1)
+ lfs f0, lo16(LCPI1_0)(r2)
+ lfd f1, -16(r1)
+ fsub f0, f1, f0
+ frsp f1, f0
+ blr
+
+When we have ppc64 working properly, it could produce the nicer code:
+
+_foo:
+ fctiwz f0, f1
+ stfd f0, -8(r1)
+ lwz r4, -4(r1)
+ extsh r4, r4
+ std r4, -16(r1)
+ lfd f1, -16(r1)
+ fcfid f0, f0
+ frsp f0, f0
+ blr
+
+Note: this would speed up SingleSource/Misc/pi by about 30%