Changes in directory llvm/lib/Target/X86:

README.txt updated: 1.162 -> 1.163
---
Log message:

new micro optzn


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

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


Index: llvm/lib/Target/X86/README.txt
diff -u llvm/lib/Target/X86/README.txt:1.162 
llvm/lib/Target/X86/README.txt:1.163
--- llvm/lib/Target/X86/README.txt:1.162        Tue Apr  3 18:41:34 2007
+++ llvm/lib/Target/X86/README.txt      Tue Apr 10 16:14:01 2007
@@ -1047,3 +1047,33 @@
 }
 
 
+//===---------------------------------------------------------------------===//
+
+Consider:
+
+int isnegative(unsigned int X) {
+   return !(X < 2147483648U);
+}
+
+We current compile this to:
+
+define i32 @isnegative(i32 %X) {
+        icmp slt i32 %X, 0              ; <i1>:0 [#uses=1]
+        %retval = zext i1 %0 to i32             ; <i32> [#uses=1]
+        ret i32 %retval
+}
+
+and:
+
+_isnegative:
+        cmpl $0, 4(%esp)
+        sets %al
+        movzbl %al, %eax
+        ret
+
+We should produce:
+
+       movl    4(%esp), %eax
+       shrl    $31, %eax
+        ret
+



_______________________________________________
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits

Reply via email to