aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2006-09-21 06:14:54 +0000
committerChris Lattner <sabre@nondot.org>2006-09-21 06:14:54 +0000
commitb13f83eb23ad08cdee76b1ef6c2ae85782dd2dd4 (patch)
tree8b7f2826bf0446b782256502794175ce5c0f42e7
parent111c22824115ed77a8f14e555c10880d07a45eb4 (diff)
implemented
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30559 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lib/Target/X86/README.txt35
1 files changed, 0 insertions, 35 deletions
diff --git a/lib/Target/X86/README.txt b/lib/Target/X86/README.txt
index cc689c4a85..4a0be7bbb0 100644
--- a/lib/Target/X86/README.txt
+++ b/lib/Target/X86/README.txt
@@ -642,41 +642,6 @@ sequence)?
//===---------------------------------------------------------------------===//
-Compile:
-int %test(ulong *%tmp) {
- %tmp = load ulong* %tmp ; <ulong> [#uses=1]
- %tmp.mask = shr ulong %tmp, ubyte 50 ; <ulong> [#uses=1]
- %tmp.mask = cast ulong %tmp.mask to ubyte
- %tmp2 = and ubyte %tmp.mask, 3 ; <ubyte> [#uses=1]
- %tmp2 = cast ubyte %tmp2 to int ; <int> [#uses=1]
- ret int %tmp2
-}
-
-to:
-
-_test:
- movl 4(%esp), %eax
- movl 4(%eax), %eax
- shrl $18, %eax
- andl $3, %eax
- ret
-
-instead of:
-
-_test:
- movl 4(%esp), %eax
- movl 4(%eax), %eax
- shrl $18, %eax
- # TRUNCATE movb %al, %al
- andb $3, %al
- movzbl %al, %eax
- ret
-
-This saves a movzbl, and saves a truncate if it doesn't get coallesced right.
-This is a simple DAGCombine to propagate the zext through the and.
-
-//===---------------------------------------------------------------------===//
-
GCC's ix86_expand_int_movcc function (in i386.c) has a ton of interesting
simplifications for integer "x cmp y ? a : b". For example, instead of: