[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