llvm-6502/lib/CodeGen/SelectionDAG
Ahmed Bougacha 66649e00c9 [CodeGen] Combine concat_vector of trunc'd scalar to scalar_to_vector.
We already do:
  concat_vectors(scalar, undef) -> scalar_to_vector(scalar)
When the scalar is legal.
When it's not, but is a truncated legal scalar, we can also do:
  concat_vectors(trunc(scalar), undef) -> scalar_to_vector(scalar)
Which is equivalent, since the upper lanes are undef anyway.
While there, teach the combine to look at more than 2 operands.

Differential Revision: http://reviews.llvm.org/D8883


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@234530 91177308-0d34-0410-b5e6-96231b3b80d8
2015-04-09 20:04:47 +00:00
..
CMakeLists.txt [Statepoints 3/4] Statepoint infrastructure for garbage collection: SelectionDAGBuilder 2014-12-02 18:50:36 +00:00
DAGCombiner.cpp [CodeGen] Combine concat_vector of trunc'd scalar to scalar_to_vector. 2015-04-09 20:04:47 +00:00
FastISel.cpp CodeGen: Stop using DIDescriptor::is*() and auto-casting 2015-04-06 23:27:40 +00:00
FunctionLoweringInfo.cpp CodeGen: Stop using DIDescriptor::is*() and auto-casting 2015-04-06 23:27:40 +00:00
InstrEmitter.cpp CodeGen: Stop using DIDescriptor::is*() and auto-casting 2015-04-06 23:27:40 +00:00
InstrEmitter.h Remove the uses of getSubtargetImpl from InstrEmitter and remove 2014-10-09 01:35:29 +00:00
LegalizeDAG.cpp [CodeGen] Replace the reused stores' chain for extractelt expansion. 2015-03-09 22:51:05 +00:00
LegalizeFloatTypes.cpp Fix makeLibCall argument (signed) in SoftenFloatRes_XINT_TO_FP function 2015-02-10 23:30:14 +00:00
LegalizeIntegerTypes.cpp LegalizeTypes: Handle shift by 0 in ExpandShiftByConstant. 2015-03-06 01:13:01 +00:00
LegalizeTypes.cpp [PowerPC] Implement readcyclecounter for PPC32 2014-12-02 22:01:00 +00:00
LegalizeTypes.h [SDAG] Move TRUNCATE splitting logic into a helper, and use 2015-03-31 10:20:58 +00:00
LegalizeTypesGeneric.cpp AA metadata refactoring (introduce AAMDNodes) 2014-07-24 12:16:19 +00:00
LegalizeVectorOps.cpp fix typo and 80-col; NFC 2015-03-27 21:45:18 +00:00
LegalizeVectorTypes.cpp [SDAG] Move TRUNCATE splitting logic into a helper, and use 2015-03-31 10:20:58 +00:00
LLVMBuild.txt
Makefile
ResourcePriorityQueue.cpp unique_ptrify ResourcePriorityQueue::ResourceModel 2015-03-03 20:49:08 +00:00
ScheduleDAGFast.cpp Update SetVector to rely on the underlying set's insert to return a pair<iterator, bool> 2014-11-19 07:49:26 +00:00
ScheduleDAGRRList.cpp Fix a bug in SelectionDAG scheduling backtracking code: PR22304. 2015-03-27 03:44:13 +00:00
ScheduleDAGSDNodes.cpp Prefer SmallVector::append/insert over push_back loops. 2015-02-17 15:29:18 +00:00
ScheduleDAGSDNodes.h Canonicalize header guards into a common format. 2014-08-13 16:26:38 +00:00
ScheduleDAGVLIW.cpp Remove more calls to getSubtargetImpl from the schedulers and 2014-10-09 06:28:06 +00:00
SDNodeDbgValue.h constify the getters in SDNodeDbgValue. 2014-10-13 20:43:47 +00:00
SelectionDAG.cpp CodeGen: Stop using DIDescriptor::is*() and auto-casting 2015-04-06 23:27:40 +00:00
SelectionDAGBuilder.cpp CodeGen: Stop using DIDescriptor::is*() and auto-casting 2015-04-06 23:27:40 +00:00
SelectionDAGBuilder.h CodeGen: Assert that inlined-at locations agree 2015-04-03 19:20:26 +00:00
SelectionDAGDumper.cpp CodeGen: Use the new DebugLoc API, NFC 2015-03-30 19:14:47 +00:00
SelectionDAGISel.cpp CodeGen: Stop using DIDescriptor::is*() and auto-casting 2015-04-06 23:27:40 +00:00
SelectionDAGPrinter.cpp Revert "Introduce a string_ostream string builder facilty" 2014-06-26 22:52:05 +00:00
StatepointLowering.cpp Require a GC strategy be specified for functions which use gc.statepoint 2015-03-27 05:09:33 +00:00
StatepointLowering.h [Statepoints 3/4] Statepoint infrastructure for garbage collection: SelectionDAGBuilder 2014-12-02 18:50:36 +00:00
TargetLowering.cpp [CodeGen] Report error rather than crash when unable to makeLibCall. 2015-03-26 22:46:58 +00:00
TargetSelectionDAGInfo.cpp Have TargetSelectionDAGInfo take a DataLayout initializer rather than 2014-06-06 19:04:48 +00:00