llvm-6502/include/llvm/CodeGen
Nate Begeman 8cfa57b1b4 Teach the SelectionDAG ISel how to turn ConstantPacked values into
constant nodes with vector types.  Also teach the asm printer how to print
ConstantPacked constant pool entries.  This allows us to generate altivec
code such as the following, which adds a vector constantto a packed float.

LCPI1_0:  <4 x float> < float 0.0e+0, float 0.0e+0, float 0.0e+0, float 1.0e+0 >
        .space  4
        .space  4
        .space  4
        .long   1065353216      ; float 1
        .text
        .align  4
        .globl  _foo
_foo:
        lis r2, ha16(LCPI1_0)
        la r2, lo16(LCPI1_0)(r2)
        li r4, 0
        lvx v0, r4, r2
        lvx v1, r4, r3
        vaddfp v0, v1, v0
        stvx v0, r4, r3
        blr

For the llvm code:

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


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24616 91177308-0d34-0410-b5e6-96231b3b80d8
2005-12-06 06:18:55 +00:00
..
AsmPrinter.h Add a new flag 2005-11-21 23:06:08 +00:00
ELFWriter.h Add two helper methods, adjust a prototype 2005-07-16 17:40:34 +00:00
InstrScheduling.h Remove trailing whitespace 2005-04-21 20:39:54 +00:00
IntrinsicLowering.h add a flag 2005-11-16 07:21:15 +00:00
LiveInterval.h add a new method 2005-10-20 07:37:59 +00:00
LiveIntervalAnalysis.h add missing prototype 2005-10-21 15:49:28 +00:00
LiveVariables.h Fix a problem Duraid noticed, where we weren't removing values from the kills 2005-08-25 05:45:31 +00:00
MachineBasicBlock.h Remove trailing whitespace 2005-04-21 20:39:54 +00:00
MachineCodeEmitter.h new is not a valid default anywhere, so make this pure virtual 2005-07-28 18:13:59 +00:00
MachineConstantPool.h add a helper method 2005-07-11 04:49:33 +00:00
MachineFrameInfo.h Change a comment slightly 2005-11-06 17:40:18 +00:00
MachineFunction.h remove an inappropriate comment 2005-08-31 22:49:51 +00:00
MachineFunctionPass.h Remove trailing whitespace 2005-04-21 20:39:54 +00:00
MachineInstr.h Mark these as V9 specific 2005-08-01 20:38:31 +00:00
MachineInstrBuilder.h Remove trailing whitespace 2005-04-21 20:39:54 +00:00
MachineRelocation.h Eliminate tabs and trailing spaces. 2005-07-27 05:53:44 +00:00
Passes.h Remove a prototype 2005-10-24 04:13:21 +00:00
SchedGraphCommon.h Convert tabs to spaces 2005-04-22 03:46:24 +00:00
SelectionDAG.h Teach tblgen to accept register source operands in patterns, e.g. 2005-12-01 00:18:45 +00:00
SelectionDAGISel.h add a method 2005-08-18 18:44:33 +00:00
SelectionDAGNodes.h Teach the SelectionDAG ISel how to turn ConstantPacked values into 2005-12-06 06:18:55 +00:00
SSARegMap.h add an assertion 2005-01-05 16:27:34 +00:00
ValueSet.h Remove trailing whitespace 2005-04-21 20:39:54 +00:00
ValueTypes.h First chunk of actually generating vector code for packed types. These 2005-11-30 08:22:07 +00:00