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

Dan Gohman gohman at apple.com
Mon Jan 19 17:07:33 PST 2009


Author: djg
Date: Mon Jan 19 19:07:33 2009
New Revision: 62558

URL: http://llvm.org/viewvc/llvm-project?rev=62558&view=rev
Log:
Add a README entry noticed while investigating PR3216.

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

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

==============================================================================
--- llvm/trunk/lib/Target/README.txt (original)
+++ llvm/trunk/lib/Target/README.txt Mon Jan 19 19:07:33 2009
@@ -1651,3 +1651,25 @@
 
 //===---------------------------------------------------------------------===//
 
+This code:
+
+define inreg i32 @foo(i8* inreg %p) nounwind {
+  %tmp0 = load i8* %p
+  %tmp1 = ashr i8 %tmp0, 5
+  %tmp2 = sext i8 %tmp1 to i32
+  ret i32 %tmp2
+}
+
+could be dagcombine'd to a sign-extending load with a shift.
+For example, on x86 this currently gets this:
+
+	movb	(%eax), %al
+	sarb	$5, %al
+	movsbl	%al, %eax
+
+while it could get this:
+
+	movsbl	(%eax), %eax
+	sarl	$5, %eax
+
+//===---------------------------------------------------------------------===//





More information about the llvm-commits mailing list