llvm-6502/lib/CodeGen/SelectionDAG
Nate Begeman cc827e60b6 Fix a crash where ConstantVec nodes were being generated with the wrong
type when the target did not support them.  Also teach Legalize how to
expand ConstantVecs.

This allows us to generate

_test:
        lwz r2, 12(r3)
        lwz r4, 8(r3)
        lwz r5, 4(r3)
        lwz r6, 0(r3)
        addi r2, r2, 4
        addi r4, r4, 3
        addi r5, r5, 2
        addi r6, r6, 1
        stw r2, 12(r3)
        stw r4, 8(r3)
        stw r5, 4(r3)
        stw r6, 0(r3)
        blr

For:

void %test(%v4i *%P) {
        %T = load %v4i* %P
        %S = add %v4i %T, <int 1, int 2, int 3, int 4>
        store %v4i %S, %v4i * %P
        ret void
}

On PowerPC.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24633 91177308-0d34-0410-b5e6-96231b3b80d8
2005-12-07 19:48:11 +00:00
..
DAGCombiner.cpp Only transform (sext (truncate x)) -> (sextinreg x) if before legalize or 2005-12-07 18:02:05 +00:00
LegalizeDAG.cpp Fix a crash where ConstantVec nodes were being generated with the wrong 2005-12-07 19:48:11 +00:00
Makefile
ScheduleDAG.cpp Support multiple ValueTypes per RegisterClass, needed for upcoming vector 2005-12-01 04:51:06 +00:00
SelectionDAG.cpp Teach the SelectionDAG ISel how to turn ConstantPacked values into 2005-12-06 06:18:55 +00:00
SelectionDAGISel.cpp Fix a crash where ConstantVec nodes were being generated with the wrong 2005-12-07 19:48:11 +00:00
SelectionDAGPrinter.cpp Added an index field to GlobalAddressSDNode so it can represent X+12, etc. 2005-11-30 02:04:11 +00:00
TargetLowering.cpp Add the majority of the vector machien value types we expect to support, 2005-11-29 05:45:29 +00:00