implemented
authorChris Lattner <sabre@nondot.org>
Thu, 21 Sep 2006 06:14:54 +0000 (06:14 +0000)
committerChris Lattner <sabre@nondot.org>
Thu, 21 Sep 2006 06:14:54 +0000 (06:14 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30559 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/X86/README.txt

index cc689c4a857ca28a49976254fc487a0271de15fb..4a0be7bbb0cdc9d6d36f3b7338bfd25353d7ba4f 100644 (file)
@@ -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: