This has been implemented. Tweak it into another note
authorChris Lattner <sabre@nondot.org>
Wed, 22 Mar 2006 05:33:23 +0000 (05:33 +0000)
committerChris Lattner <sabre@nondot.org>
Wed, 22 Mar 2006 05:33:23 +0000 (05:33 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26944 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/PowerPC/README.txt

index c90343eeee4e4e368b11ef99f738e820c4293caa..c9fba7fed476172199a618d0eca4bc3e339f9aee 100644 (file)
@@ -552,34 +552,20 @@ When -ffast-math is on, we can use 0.0.
 
 float foo(float X) { return (int)(X); }
 
-Currently produces
+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
+        lwz r2, -4(r1)
+        extsw r2, r2
+        std r2, -16(r1)
+        lfd f0, -16(r1)
+        fcfid f0, 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
+We could use a target dag combine to turn the lwz/extsw into an lwa when the 
+lwz has a single use.  Since LWA is cracked anyway, this would be a codesize
+win only.
 
-Note: this would speed up SingleSource/Misc/pi by about 30%