add the 'lucas' optimization

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25830 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2006-01-31 02:55:28 +00:00
parent b716343851
commit 56b6964473

View File

@ -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.