llvm-6502/lib/CodeGen/SelectionDAG
Chris Lattner ee27f57a6a 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
2005-04-11 20:08:52 +00:00
..
LegalizeDAG.cpp Fix expansion of shifts by exactly NVT bits on arch's (like X86) that have 2005-04-11 20:08:52 +00:00
Makefile Change Library Names Not To Conflict With Others When Installed 2004-10-27 23:18:45 +00:00
SelectionDAG.cpp Don't bother sign/zext_inreg'ing the result of an and operation if we know 2005-04-10 23:37:16 +00:00
SelectionDAGISel.cpp Emit BRCONDTWOWAY when possible. 2005-04-09 03:30:29 +00:00
SelectionDAGPrinter.cpp Don't mash stuff together. 2005-01-16 07:28:31 +00:00
TargetLowering.cpp Add a hook to find out how the target handles shift amounts that are out of 2005-01-19 03:36:14 +00:00