llvm-6502/include/llvm
Nate Begeman ab48be3772 Check in code to scalarize arbitrarily wide packed types for some simple
vector operations (load, add, sub, mul).

This allows us to codegen:
void %foo(<4 x float> * %a) {
entry:
  %tmp1 = load <4 x float> * %a;
  %tmp2 = add <4 x float> %tmp1, %tmp1
  store <4 x float> %tmp2, <4 x float> *%a
  ret void
}

on ppc as:
_foo:
        lfs f0, 12(r3)
        lfs f1, 8(r3)
        lfs f2, 4(r3)
        lfs f3, 0(r3)
        fadds f0, f0, f0
        fadds f1, f1, f1
        fadds f2, f2, f2
        fadds f3, f3, f3
        stfs f0, 12(r3)
        stfs f1, 8(r3)
        stfs f2, 4(r3)
        stfs f3, 0(r3)
        blr


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24484 91177308-0d34-0410-b5e6-96231b3b80d8
2005-11-22 18:16:00 +00:00
..
ADT Fix comment. 2005-10-26 15:02:21 +00:00
Analysis Fix the dominates method to return true if the two nodes are the same. Add 2005-11-18 07:27:33 +00:00
Assembly
Bytecode
CodeGen Check in code to scalarize arbitrarily wide packed types for some simple 2005-11-22 18:16:00 +00:00
Config add malloc_zone_statistics, remove mstats 2005-11-14 07:24:17 +00:00
Debugger
ExecutionEngine
Support Allow per-character control over what target assemblers allow in symbol 2005-11-10 21:39:12 +00:00
System For PR616: 2005-08-24 10:07:20 +00:00
Target Teach the type lowering code about turning packed types into vector types. 2005-11-17 21:44:42 +00:00
Transforms needs to go here to apparently. 2005-11-10 02:07:45 +00:00
AbstractTypeUser.h remove a dead method 2005-11-12 08:42:30 +00:00
Argument.h
BasicBlock.h Remove some dead argument names which irritates GCC at certain warning levels. 2005-10-25 17:59:28 +00:00
CallGraphSCCPass.h
CallingConv.h
Constant.h Remove some dead argument names which irritates GCC at certain warning levels. 2005-10-25 17:59:28 +00:00
Constants.h Change the signature of replaceUsesOfWithOnConstant to take a Use* and not 2005-10-04 18:12:13 +00:00
DerivedTypes.h Shrink derived types by 8 bytes each by not having to have 2 vtables pointers 2005-11-13 03:26:12 +00:00
Function.h Add a missing Module::setTargetTriple method. 2005-10-25 17:58:00 +00:00
GlobalValue.h Add support for putting globals in a particular section 2005-11-12 00:09:49 +00:00
GlobalVariable.h Change the signature of replaceUsesOfWithOnConstant to take a Use* and not 2005-10-04 18:12:13 +00:00
InstrTypes.h
Instruction.def
Instruction.h Remove some dead argument names which irritates GCC at certain warning levels. 2005-10-25 17:59:28 +00:00
Instructions.h add an accessor 2005-11-05 21:58:30 +00:00
IntrinsicInst.h
Intrinsics.h Add support for a cycle counter intrinsic. As basically all processors have 2005-11-11 16:45:18 +00:00
Linker.h
Module.h Add a missing Module::setTargetTriple method. 2005-10-25 17:58:00 +00:00
ModuleProvider.h
Pass.h
PassAnalysisSupport.h
PassManager.h
PassSupport.h
SymbolTable.h
SymbolTableListTraits.h
Type.h Shrink derived types by 8 bytes each by not having to have 2 vtables pointers 2005-11-13 03:26:12 +00:00
Use.h
User.h
Value.h remove a comma to compile with pedantic gcc 2005-10-08 01:24:19 +00:00