llvm-6502/lib/CodeGen/SelectionDAG
Nate Begeman 5fbb5d2459 Teach LLVM how to scalarize packed types. Currently, this only works on
packed types with an element count of 1, although more generic support is
coming.  This allows LLVM to turn the following code:

void %foo(<1 x float> * %a) {
entry:
  %tmp1 = load <1 x float> * %a;
  %tmp2 = add <1 x float> %tmp1, %tmp1
  store <1 x float> %tmp2, <1 x float> *%a
  ret void
}

Into:

_foo:
        lfs f0, 0(r3)
        fadds f0, f0, f0
        stfs f0, 0(r3)
        blr


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24416 91177308-0d34-0410-b5e6-96231b3b80d8
2005-11-19 00:36:38 +00:00
..
DAGCombiner.cpp Fix operator precedence bug caught by VC++. 2005-11-12 00:59:01 +00:00
LegalizeDAG.cpp Teach LLVM how to scalarize packed types. Currently, this only works on 2005-11-19 00:36:38 +00:00
Makefile Change Library Names Not To Conflict With Others When Installed 2004-10-27 23:18:45 +00:00
ScheduleDAG.cpp Switch the allnodes list from a vector of pointers to an ilist of nodes.This eliminates the vector, allows constant time removal of a node froma graph, and makes iteration over the all nodes list stable when adding 2005-11-09 23:47:37 +00:00
SelectionDAG.cpp Teach LLVM how to scalarize packed types. Currently, this only works on 2005-11-19 00:36:38 +00:00
SelectionDAGISel.cpp Teach LLVM how to scalarize packed types. Currently, this only works on 2005-11-19 00:36:38 +00:00
SelectionDAGPrinter.cpp add a method 2005-10-01 00:17:07 +00:00
TargetLowering.cpp Invert the TargetLowering flag that controls divide by consant expansion. 2005-10-21 00:02:42 +00:00