[llvm-commits] CVS: llvm/lib/Target/PowerPC/README.txt

Chris Lattner lattner at cs.uiuc.edu
Thu May 4 22:36:27 PDT 2006



Changes in directory llvm/lib/Target/PowerPC:

README.txt updated: 1.85 -> 1.86
---
Log message:

New note, Nate, please check to see if I'm full of it :)


---
Diffs of the changes:  (+33 -0)

 README.txt |   33 +++++++++++++++++++++++++++++++++
 1 files changed, 33 insertions(+)


Index: llvm/lib/Target/PowerPC/README.txt
diff -u llvm/lib/Target/PowerPC/README.txt:1.85 llvm/lib/Target/PowerPC/README.txt:1.86
--- llvm/lib/Target/PowerPC/README.txt:1.85	Thu Apr 13 11:48:00 2006
+++ llvm/lib/Target/PowerPC/README.txt	Fri May  5 00:36:15 2006
@@ -559,3 +559,36 @@
      // need to flag these together so that the value isn't live across a call.
      //setOperationAction(ISD::SINT_TO_FP, MVT::i32, Custom);
 
+===-------------------------------------------------------------------------===
+
+Another missed rlwimi case:
+
+void %foo(uint *%tmp) {
+        %tmp = load uint* %tmp          ; <uint> [#uses=3]
+        %tmp1 = shr uint %tmp, ubyte 31         ; <uint> [#uses=1]
+        %tmp1 = cast uint %tmp1 to ubyte                ; <ubyte> [#uses=1]
+        %tmp4.mask = shr uint %tmp, ubyte 30            ; <uint> [#uses=1]
+        %tmp4.mask = cast uint %tmp4.mask to ubyte              ; <ubyte> [#uses=1]
+        %tmp = or ubyte %tmp4.mask, %tmp1               ; <ubyte> [#uses=1]
+        %tmp10 = cast ubyte %tmp to uint                ; <uint> [#uses=1]
+        %tmp11 = shl uint %tmp10, ubyte 31              ; <uint> [#uses=1]
+        %tmp12 = and uint %tmp, 2147483647              ; <uint> [#uses=1]
+        %tmp13 = or uint %tmp11, %tmp12         ; <uint> [#uses=1]
+        store uint %tmp13, uint* %tmp
+        ret void
+}
+
+We emit:
+
+_foo:
+        lwz r2, 0(r3)
+        srwi r4, r2, 30
+        srwi r5, r2, 31
+        or r4, r4, r5
+        slwi r4, r4, 31
+        rlwimi r4, r2, 0, 1, 31
+        stw r4, 0(r3)
+        blr
+
+I *think* that could use another rlwimi.
+






More information about the llvm-commits mailing list