diff options
| author | Chris Lattner <sabre@nondot.org> | 2006-01-31 02:55:28 +0000 |
|---|---|---|
| committer | Chris Lattner <sabre@nondot.org> | 2006-01-31 02:55:28 +0000 |
| commit | a9bfca8d1e5c80b35cf94abe15c9d4bb4952b829 (patch) | |
| tree | c7456fd26a3d9c11d9e68027e17a33ce7dac438f /llvm/lib/Target | |
| parent | 0e70729e8327d649fdb5901c5d3dca331ed71ee7 (diff) | |
| download | bcm5719-llvm-a9bfca8d1e5c80b35cf94abe15c9d4bb4952b829.tar.gz bcm5719-llvm-a9bfca8d1e5c80b35cf94abe15c9d4bb4952b829.zip | |
add the 'lucas' optimization
llvm-svn: 25830
Diffstat (limited to 'llvm/lib/Target')
| -rw-r--r-- | llvm/lib/Target/PowerPC/README.txt | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/llvm/lib/Target/PowerPC/README.txt b/llvm/lib/Target/PowerPC/README.txt index 3d0736d65ea..b23b9a4cc4b 100644 --- a/llvm/lib/Target/PowerPC/README.txt +++ b/llvm/lib/Target/PowerPC/README.txt @@ -402,3 +402,28 @@ Implement TargetConstantVec, and set up PPC to custom lower ConstantVec into TargetConstantVec's if it's one of the many forms that are algorithmically computable using the spiffy altivec instructions. +===-------------------------------------------------------------------------=== + +Compile this: + +double %test(double %X) { + %Y = cast double %X to long + %Z = cast long %Y to double + ret double %Z +} + +to this: + +_test: + fctidz f0, f1 + stfd f0, -8(r1) + lwz r2, -4(r1) + lwz r3, -8(r1) + stw r2, -12(r1) + stw r3, -16(r1) + lfd f0, -16(r1) + fcfid f1, f0 + blr + +without the lwz/stw's. + |

