[llvm-commits] [llvm] r47827 - in /llvm/trunk: lib/Target/PowerPC/README.txt test/CodeGen/PowerPC/rlwimi-commute.ll

Chris Lattner sabre at nondot.org
Sun Mar 2 09:56:30 PST 2008


Author: lattner
Date: Sun Mar  2 11:56:29 2008
New Revision: 47827

URL: http://llvm.org/viewvc/llvm-project?rev=47827&view=rev
Log:
Evan implemented this.

Modified:
    llvm/trunk/lib/Target/PowerPC/README.txt
    llvm/trunk/test/CodeGen/PowerPC/rlwimi-commute.ll

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

==============================================================================
--- llvm/trunk/lib/Target/PowerPC/README.txt (original)
+++ llvm/trunk/lib/Target/PowerPC/README.txt Sun Mar  2 11:56:29 2008
@@ -154,29 +154,6 @@
 
 ===-------------------------------------------------------------------------===
 
-Compile this:
-
-int %f1(int %a, int %b) {
-        %tmp.1 = and int %a, 15         ; <int> [#uses=1]
-        %tmp.3 = and int %b, 240                ; <int> [#uses=1]
-        %tmp.4 = or int %tmp.3, %tmp.1          ; <int> [#uses=1]
-        ret int %tmp.4
-}
-
-without a copy.  We make this currently:
-
-_f1:
-        rlwinm r2, r4, 0, 24, 27
-        rlwimi r2, r3, 0, 28, 31
-        or r3, r2, r2
-        blr
-
-The two-addr pass or RA needs to learn when it is profitable to commute an
-instruction to avoid a copy AFTER the 2-addr instruction.  The 2-addr pass
-currently only commutes to avoid inserting a copy BEFORE the two addr instr.
-
-===-------------------------------------------------------------------------===
-
 Compile offsets from allocas:
 
 int *%test() {

Modified: llvm/trunk/test/CodeGen/PowerPC/rlwimi-commute.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/PowerPC/rlwimi-commute.ll?rev=47827&r1=47826&r2=47827&view=diff

==============================================================================
--- llvm/trunk/test/CodeGen/PowerPC/rlwimi-commute.ll (original)
+++ llvm/trunk/test/CodeGen/PowerPC/rlwimi-commute.ll Sun Mar  2 11:56:29 2008
@@ -24,3 +24,11 @@
 	store i32 %B.upgrd.4, i32* %E
 	ret void
 }
+
+define i32 @test3(i32 %a, i32 %b) {
+	%tmp.1 = and i32 %a, 15		; <i32> [#uses=1]
+	%tmp.3 = and i32 %b, 240		; <i32> [#uses=1]
+	%tmp.4 = or i32 %tmp.3, %tmp.1		; <i32> [#uses=1]
+	ret i32 %tmp.4
+}
+





More information about the llvm-commits mailing list