llvm-6502/lib/CodeGen/SelectionDAG
Evan Cheng c8e3b147ee Clean up my own mess.
X86 lowering normalize vector 0 to v4i32. However DAGCombine can fold (sub x, x) -> 0 after legalization. It can create a zero vector of a type that's not expected (e.g. v8i16). We don't want to disable the optimization since leaving a (sub x, x) is really bad. Add isel patterns for other types of vector 0 to ensure correctness. It's highly unlikely to happen other than in bugpoint reduced test cases.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48279 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-12 07:02:50 +00:00
..
CallingConvLower.cpp Increase ISD::ParamFlags to 64 bits. Increase the ByValSize 2008-03-10 02:17:22 +00:00
DAGCombiner.cpp Clean up my own mess. 2008-03-12 07:02:50 +00:00
LegalizeDAG.cpp Generalize ExpandIntToFP to handle the case where the operand is legal 2008-03-11 01:59:03 +00:00
LegalizeTypes.cpp Some LegalizeTypes code factorization and minor 2008-03-11 06:41:14 +00:00
LegalizeTypes.h Some LegalizeTypes code factorization and minor 2008-03-11 06:41:14 +00:00
LegalizeTypesExpand.cpp Some LegalizeTypes code factorization and minor 2008-03-11 06:41:14 +00:00
LegalizeTypesPromote.cpp Some LegalizeTypes code factorization and minor 2008-03-11 06:41:14 +00:00
LegalizeTypesScalarize.cpp
LegalizeTypesSplit.cpp Some LegalizeTypes code factorization and minor 2008-03-11 06:41:14 +00:00
Makefile
ScheduleDAG.cpp Recommitting parts of r48130. These do not appear to cause the observed failures. 2008-03-11 10:09:17 +00:00
ScheduleDAGList.cpp
ScheduleDAGRRList.cpp When the register allocator runs out of registers, spill a physical register around the def's and use's of the interval being allocated to make it possible for the interval to target a register and spill it right away and restore a register for uses. This likely generates terrible code but is before than aborting. 2008-03-11 07:19:34 +00:00
SelectionDAG.cpp Correctly propagate thread-local flag from aliasee to alias. This fixes PR2137 2008-03-11 22:38:53 +00:00
SelectionDAGISel.cpp Initial codegen support for functions and calls with multiple return values. 2008-03-11 21:11:25 +00:00
SelectionDAGPrinter.cpp
TargetLowering.cpp Use the correct value for InSignBit. 2008-03-11 21:29:43 +00:00