llvm-6502/lib/CodeGen/SelectionDAG
Benjamin Kramer 4969310052 SelectionDAG: Teach FoldConstantArithmetic how to deal with vectors.
This required disabling a PowerPC optimization that did the following:
input:
x = BUILD_VECTOR <i32 16, i32 16, i32 16, i32 16>
lowered to:
tmp = BUILD_VECTOR <i32 8, i32 8, i32 8, i32 8>
x = ADD tmp, tmp

The add now gets folded immediately and we're back at the BUILD_VECTOR we
started from. I don't see a way to fix this currently so I left it disabled
for now.

Fix some trivially foldable X86 tests too.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174325 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-04 15:19:18 +00:00
..
CMakeLists.txt
DAGCombiner.cpp rdar://13126763 2013-02-02 00:22:03 +00:00
FastISel.cpp
FunctionLoweringInfo.cpp
InstrEmitter.cpp
InstrEmitter.h
LegalizeDAG.cpp Teach SDISel to combine fsin / fcos into a fsincos node if the following 2013-01-29 02:32:37 +00:00
LegalizeFloatTypes.cpp Make APFloat constructor require explicit semantics. 2013-01-22 09:46:31 +00:00
LegalizeIntegerTypes.cpp Legalizer: Reword comment again, per Duncan's suggestion. 2013-01-27 21:02:52 +00:00
LegalizeTypes.cpp
LegalizeTypes.h This patch aims to reduce compile time in LegalizeTypes by using SmallDenseMap, 2013-01-25 15:18:54 +00:00
LegalizeTypesGeneric.cpp
LegalizeVectorOps.cpp This patch aims to reduce compile time in LegalizeTypes by using SmallDenseMap, 2013-01-25 15:18:54 +00:00
LegalizeVectorTypes.cpp
LLVMBuild.txt
Makefile
ResourcePriorityQueue.cpp
ScheduleDAGFast.cpp
ScheduleDAGRRList.cpp Add a special handling case for untyped CopyFromReg node in GetCostForDef() of ScheduleDAGRRList 2013-01-29 21:18:43 +00:00
ScheduleDAGSDNodes.cpp
ScheduleDAGSDNodes.h
ScheduleDAGVLIW.cpp
SDNodeDbgValue.h
SDNodeOrdering.h
SelectionDAG.cpp SelectionDAG: Teach FoldConstantArithmetic how to deal with vectors. 2013-02-04 15:19:18 +00:00
SelectionDAGBuilder.cpp Fix errant fallthrough in the generation of the lifetime markers. 2013-02-01 19:25:23 +00:00
SelectionDAGBuilder.h
SelectionDAGDumper.cpp Teach SDISel to combine fsin / fcos into a fsincos node if the following 2013-01-29 02:32:37 +00:00
SelectionDAGISel.cpp
SelectionDAGPrinter.cpp
TargetLowering.cpp Use AttributeSet accessor methods instead of Attribute accessor methods. 2013-01-18 21:53:16 +00:00
TargetSelectionDAGInfo.cpp