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 LegalizeTypes support for EXTRACT_VECTOR_ELT. The 2008-02-27 13:34:40 +00:00
LegalizeTypesSplit.cpp Some LegalizeTypes code factorization and minor 2008-03-11 06:41:14 +00:00
Makefile remove attribution from lib Makefiles. 2007-12-29 20:09:26 +00:00
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 Rename MRegisterInfo to TargetRegisterInfo. 2008-02-10 18:45:23 +00:00
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 Final de-tabification. 2008-02-27 06:33:05 +00:00
TargetLowering.cpp Use the correct value for InSignBit. 2008-03-11 21:29:43 +00:00