Fix expansion of shifts by exactly NVT bits on arch's (like X86) that have
authorChris Lattner <sabre@nondot.org>
Mon, 11 Apr 2005 20:08:52 +0000 (20:08 +0000)
committerChris Lattner <sabre@nondot.org>
Mon, 11 Apr 2005 20:08:52 +0000 (20:08 +0000)
commitee27f57a6a4dd7fa9259b3604f563907da1f65ef
tree2da04563c8d4ed39862eddb6b19b61a9f8986013
parent30e82431b35866ba148fc32c95accb424238bbe3
Fix expansion of shifts by exactly NVT bits on arch's (like X86) that have
masking shifts.

This fixes the miscompilation of this:

long long test1(unsigned A, unsigned B) {
        return ((unsigned long long)A << 32) | B;
}

into this:

test1:
        movl 4(%esp), %edx
        movl %edx, %eax
        orl 8(%esp), %eax
        ret

allowing us to generate this instead:

test1:
        movl 4(%esp), %edx
        movl 8(%esp), %eax
        ret

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