llvm-6502/lib/CodeGen/SelectionDAG
Simon Pilgrim a744a15e97 [DagCombiner] Allow shuffles to merge through bitcasts
Currently shuffles may only be combined if they are of the same type, despite the fact that bitcasts are often introduced in between shuffle nodes (e.g. x86 shuffle type widening).

This patch allows a single input shuffle to peek through bitcasts and if the input is another shuffle will merge them, shuffling using the smallest sized type, and re-applying the bitcasts at the inputs and output instead.

Dropped old ShuffleToZext test - this patch removes the use of the zext and vector-zext.ll covers these anyhow.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@231380 91177308-0d34-0410-b5e6-96231b3b80d8
2015-03-05 17:14:04 +00:00
..
CMakeLists.txt [Statepoints 3/4] Statepoint infrastructure for garbage collection: SelectionDAGBuilder 2014-12-02 18:50:36 +00:00
DAGCombiner.cpp [DagCombiner] Allow shuffles to merge through bitcasts 2015-03-05 17:14:04 +00:00
FastISel.cpp Move DataLayout back to the TargetMachine from TargetSubtargetInfo 2015-01-26 19:03:15 +00:00
FunctionLoweringInfo.cpp getRegForInlineAsmConstraint wants to use TargetRegisterInfo for 2015-02-26 22:38:43 +00:00
InstrEmitter.cpp Move DataLayout back to the TargetMachine from TargetSubtargetInfo 2015-01-26 19:03:15 +00:00
InstrEmitter.h
LegalizeDAG.cpp [SDAG] Handle LowerOperation returning its input consistently 2015-02-24 12:59:47 +00:00
LegalizeFloatTypes.cpp Fix makeLibCall argument (signed) in SoftenFloatRes_XINT_TO_FP function 2015-02-10 23:30:14 +00:00
LegalizeIntegerTypes.cpp AVX-512, SKX: Enabled masked_load/store operations for this target. 2015-03-05 15:11:35 +00:00
LegalizeTypes.cpp [PowerPC] Implement readcyclecounter for PPC32 2014-12-02 22:01:00 +00:00
LegalizeTypes.h Fixed a bug in type legalizer for masked load/store intrinsics. 2015-01-22 12:07:59 +00:00
LegalizeTypesGeneric.cpp
LegalizeVectorOps.cpp [SDAG] Handle LowerOperation returning its input consistently 2015-02-24 12:59:47 +00:00
LegalizeVectorTypes.cpp Fixed a bug in type legalizer for masked load/store intrinsics. 2015-01-22 12:07:59 +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 Update SetVector to rely on the underlying set's insert to return a pair<iterator, bool> 2014-11-19 07:49:26 +00:00
ScheduleDAGSDNodes.cpp Prefer SmallVector::append/insert over push_back loops. 2015-02-17 15:29:18 +00:00
ScheduleDAGSDNodes.h
ScheduleDAGVLIW.cpp
SDNodeDbgValue.h
SelectionDAG.cpp Accidentaly inverted the condition again. Sorry. 2015-03-02 16:45:08 +00:00
SelectionDAGBuilder.cpp Revert change r231366 as it broke clang-native-arm-cortex-a9 Analysis/properties.m test. 2015-03-05 15:41:14 +00:00
SelectionDAGBuilder.h Revert change r231366 as it broke clang-native-arm-cortex-a9 Analysis/properties.m test. 2015-03-05 15:41:14 +00:00
SelectionDAGDumper.cpp Add generic fmad DAG node. 2015-02-20 22:10:33 +00:00
SelectionDAGISel.cpp Use report_fatal_error instead of unreachable for -fast-isel-abort 2015-03-04 01:48:39 +00:00
SelectionDAGPrinter.cpp
StatepointLowering.cpp Revert change r231366 as it broke clang-native-arm-cortex-a9 Analysis/properties.m test. 2015-03-05 15:41:14 +00:00
StatepointLowering.h [Statepoints 3/4] Statepoint infrastructure for garbage collection: SelectionDAGBuilder 2014-12-02 18:50:36 +00:00
TargetLowering.cpp getRegForInlineAsmConstraint wants to use TargetRegisterInfo for 2015-02-26 22:38:43 +00:00
TargetSelectionDAGInfo.cpp