diff options
author | Nate Begeman <natebegeman@mac.com> | 2006-03-21 18:58:20 +0000 |
---|---|---|
committer | Nate Begeman <natebegeman@mac.com> | 2006-03-21 18:58:20 +0000 |
commit | 013127981adaf7e88a62bde4c3a5709c9ebdff0e (patch) | |
tree | abb6c65a9c2cd81afcde3b71ad9b7532f0b0cf89 /llvm/lib | |
parent | a7afeff8750bfa5975e48f0c739ea1630c0120b3 (diff) | |
download | bcm5719-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.txt | 34 |
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% |