llvm-6502/lib/CodeGen/SelectionDAG
Chris Lattner bd0781ed12 Teach the dag mechanism that this:
long long test2(unsigned A, unsigned B) {
        return ((unsigned long long)A << 32) + B;
}

is equivalent to this:

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

Now they are both codegen'd to this on ppc:

_test2:
        blr

or this on x86:

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


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21231 91177308-0d34-0410-b5e6-96231b3b80d8
2005-04-11 20:29:59 +00:00
..
LegalizeDAG.cpp Teach the dag mechanism that this: 2005-04-11 20:29:59 +00:00
Makefile
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