[llvm-commits] [llvm] r94317 - /llvm/trunk/lib/Target/PowerPC/README.txt

Chris Lattner sabre at nondot.org
Sat Jan 23 10:42:38 PST 2010


Author: lattner
Date: Sat Jan 23 12:42:37 2010
New Revision: 94317

URL: http://llvm.org/viewvc/llvm-project?rev=94317&view=rev
Log:
add a note

Modified:
    llvm/trunk/lib/Target/PowerPC/README.txt

Modified: llvm/trunk/lib/Target/PowerPC/README.txt
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/PowerPC/README.txt?rev=94317&r1=94316&r2=94317&view=diff

==============================================================================
--- llvm/trunk/lib/Target/PowerPC/README.txt (original)
+++ llvm/trunk/lib/Target/PowerPC/README.txt Sat Jan 23 12:42:37 2010
@@ -635,6 +635,35 @@
 
 ===-------------------------------------------------------------------------===
 
+We compile:
+
+define i32 @bar(i32 %x) nounwind readnone ssp {
+entry:
+  %0 = icmp eq i32 %x, 0                          ; <i1> [#uses=1]
+  %neg = select i1 %0, i32 -1, i32 0              ; <i32> [#uses=1]
+  ret i32 %neg
+}
+
+to:
+
+_bar:
+	cmplwi cr0, r3, 0
+	li r3, -1
+	beq cr0, LBB1_2
+; BB#1:                                                     ; %entry
+	li r3, 0
+LBB1_2:                                                     ; %entry
+	blr 
+
+it would be much better to produce:
+
+_bar: 
+        addic r3,r3,-1
+        subfe r3,r3,r3
+        blr
+
+===-------------------------------------------------------------------------===
+
 We currently compile 32-bit bswap:
 
 declare i32 @llvm.bswap.i32(i32 %A)





More information about the llvm-commits mailing list