Remove some redundant checks, add a couple of new ones. This allows us to
authorChris Lattner <sabre@nondot.org>
Tue, 12 Apr 2005 02:54:39 +0000 (02:54 +0000)
committerChris Lattner <sabre@nondot.org>
Tue, 12 Apr 2005 02:54:39 +0000 (02:54 +0000)
commitfd1f1ee0baf9c808fdee14bdbfe76d4a5e66210d
tree10321072e8f584f4ccaa7f239423ac0582d17e3d
parent5b95ed652fcfe578aa8af4e21318fca989164e21
Remove some redundant checks, add a couple of new ones.  This allows us to
compile this:

int foo (unsigned long a, unsigned long long g) {
  return a >= g;
}

To:

foo:
        movl 8(%esp), %eax
        cmpl %eax, 4(%esp)
        setae %al
        cmpl $0, 12(%esp)
        sete %cl
        andb %al, %cl
        movzbl %cl, %eax
        ret

instead of:

foo:
        movl 8(%esp), %eax
        cmpl %eax, 4(%esp)
        setae %al
        movzbw %al, %cx
        movl 12(%esp), %edx
        cmpl $0, %edx
        sete %al
        movzbw %al, %ax
        cmpl $0, %edx
        cmove %cx, %ax
        movzbl %al, %eax
        ret

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21244 91177308-0d34-0410-b5e6-96231b3b80d8
lib/CodeGen/SelectionDAG/SelectionDAG.cpp