summaryrefslogtreecommitdiffstats
path: root/llvm/lib
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
commit013127981adaf7e88a62bde4c3a5709c9ebdff0e (patch)
treeabb6c65a9c2cd81afcde3b71ad9b7532f0b0cf89 /llvm/lib
parenta7afeff8750bfa5975e48f0c739ea1630c0120b3 (diff)
downloadbcm5719-llvm-013127981adaf7e88a62bde4c3a5709c9ebdff0e.tar.gz
bcm5719-llvm-013127981adaf7e88a62bde4c3a5709c9ebdff0e.zip
Update readme
llvm-svn: 26924
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/Target/PowerPC/README.txt34
1 files changed, 34 insertions, 0 deletions
diff --git a/llvm/lib/Target/PowerPC/README.txt b/llvm/lib/Target/PowerPC/README.txt
index e6d22dac1a8..c90343eeee4 100644
--- a/llvm/lib/Target/PowerPC/README.txt
+++ b/llvm/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%
OpenPOWER on IntegriCloud