llvm-6502/lib/CodeGen/SelectionDAG
Chandler Carruth 72753f87f2 [SDAG] Teach the SelectionDAG to canonicalize vector shuffles of splats
directly into blends of the splats.

These patterns show up even very late in the vector shuffle lowering
where we don't have any chance for DAG combining to kick in, and
blending is a tremendously simpler operation to model. By coercing the
shuffle into a blend we can much more easily match and lower shuffles of
splats.

Immediately with this change there are significantly more blends being
matched in the x86 vector shuffle lowering.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@229308 91177308-0d34-0410-b5e6-96231b3b80d8
2015-02-15 12:18:12 +00:00
..
CMakeLists.txt
DAGCombiner.cpp [x86] Fix PR22377, a regression with the new vector shuffle legality 2015-02-15 07:01:10 +00:00
FastISel.cpp Move DataLayout back to the TargetMachine from TargetSubtargetInfo 2015-01-26 19:03:15 +00:00
FunctionLoweringInfo.cpp
InstrEmitter.cpp Move DataLayout back to the TargetMachine from TargetSubtargetInfo 2015-01-26 19:03:15 +00:00
InstrEmitter.h
LegalizeDAG.cpp
LegalizeFloatTypes.cpp Fix makeLibCall argument (signed) in SoftenFloatRes_XINT_TO_FP function 2015-02-10 23:30:14 +00:00
LegalizeIntegerTypes.cpp
LegalizeTypes.cpp
LegalizeTypes.h
LegalizeTypesGeneric.cpp
LegalizeVectorOps.cpp [SDAG] Don't try to use FP_EXTEND/FP_ROUND for int<->fp promotions 2015-02-12 22:43:52 +00:00
LegalizeVectorTypes.cpp
LLVMBuild.txt
Makefile
ResourcePriorityQueue.cpp
ScheduleDAGFast.cpp
ScheduleDAGRRList.cpp
ScheduleDAGSDNodes.cpp
ScheduleDAGSDNodes.h
ScheduleDAGVLIW.cpp
SDNodeDbgValue.h
SelectionDAG.cpp [SDAG] Teach the SelectionDAG to canonicalize vector shuffles of splats 2015-02-15 12:18:12 +00:00
SelectionDAGBuilder.cpp CodeGen: Canonicalize access to function attributes, NFC 2015-02-14 01:44:41 +00:00
SelectionDAGBuilder.h
SelectionDAGDumper.cpp
SelectionDAGISel.cpp Unify the two EH personality classification routines I wrote 2015-02-14 00:21:02 +00:00
SelectionDAGPrinter.cpp
StatepointLowering.cpp Re-sort #include lines using my handy dandy ./utils/sort_includes.py 2015-02-13 09:09:03 +00:00
StatepointLowering.h
TargetLowering.cpp
TargetSelectionDAGInfo.cpp