llvm/test/Transforms
Michael Kuperstein 04912c8225 [InstCombine] Canonicalize insert splat sequences into an insert + shuffle
This adds a combine that canonicalizes a chain of inserts which broadcasts
a value into a single insert + a splat shufflevector.

This fixes PR31286.

Differential Revision: https://reviews.llvm.org/D27992


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@290641 91177308-0d34-0410-b5e6-96231b3b80d8
2016-12-28 00:18:08 +00:00
..
ADCE [ADCE] Add code to remove dead branches 2016-12-13 16:42:18 +00:00
AddDiscriminators Introduce updateDiscriminator interface to DILocation to make it cleaner assigning discriminators. 2016-10-26 15:48:45 +00:00
AlignmentFromAssumptions
ArgumentPromotion
AtomicExpand
BBVectorize [InstCombine] Canonicalize insert splat sequences into an insert + shuffle 2016-12-28 00:18:08 +00:00
BDCE [BDCE] Skip metadata while replacing uses. 2016-12-07 21:47:32 +00:00
BranchFolding
CodeExtractor
CodeGenPrepare [Analysis] Centralize objectsize lowering logic. 2016-12-20 23:46:36 +00:00
ConstantHoisting
ConstantMerge
ConstProp [InstCombiner] Simplify lib calls to round{,f} 2016-12-26 14:29:29 +00:00
Coroutines
CorrelatedValuePropagation Revert @llvm.assume with operator bundles (r289755-r289757) 2016-12-19 08:22:17 +00:00
CountingFunctionInserter
CrossDSOCFI
DCE llvm/test/Transforms/DCE/calls-errno.ll: Suppress checking @pow(+0,-1). 2016-11-04 18:50:45 +00:00
DeadArgElim
DeadStoreElimination
EarlyCSE [EarlyCSE] Make MemorySSA memory dependency check more aggressive. 2016-10-25 16:18:47 +00:00
EliminateAvailableExternally
Float2Int
ForcedFunctionAttrs
FunctionAttrs IR, X86: Understand !absolute_symbol metadata on global variables. 2016-12-08 19:01:00 +00:00
FunctionImport [ThinLTO] Ensure callees get hot threshold when first seen on cold path 2016-12-15 18:21:01 +00:00
GCOVProfiling [IR] Remove the DIExpression field from DIGlobalVariable. 2016-12-20 02:09:43 +00:00
GlobalDCE Test the different scenarios of GlobalDCE and comdats more 2016-12-26 08:54:01 +00:00
GlobalMerge Renumber testcase metadata nodes after r290153. 2016-12-22 00:45:21 +00:00
GlobalOpt Renumber testcase metadata nodes after r290153. 2016-12-22 00:45:21 +00:00
GlobalSplit [GlobalSplit] Port to the new pass manager. 2016-11-21 00:28:23 +00:00
GuardWidening
GVN Fix some DOS-style line endings that I suspect snuck in from one of the 2016-12-23 02:02:26 +00:00
GVNHoist Revert "[GVNHoist] Move GVNHoist to function simplification part of pipeline." 2016-12-17 01:53:15 +00:00
IndVarSimplify [IndVars] Change the order to compute WidenAddRec in widenIVUse. 2016-11-15 17:34:52 +00:00
InferFunctionAttrs
Inline [PM] Turn on the new PM's inliner in addition to the current one for 2016-12-27 07:18:43 +00:00
InstCombine [InstCombine] Canonicalize insert splat sequences into an insert + shuffle 2016-12-28 00:18:08 +00:00
InstMerge
InstSimplify Revert @llvm.assume with operator bundles (r289755-r289757) 2016-12-19 08:22:17 +00:00
InterleavedAccess/X86
Internalize
IPConstantProp
IRCE [IRCE] Avoid loop optimizations on pre and post loops 2016-12-13 21:05:21 +00:00
JumpThreading Revert @llvm.assume with operator bundles (r289755-r289757) 2016-12-19 08:22:17 +00:00
LCSSA
LICM [LICM] Work around LICM needs to maintain state across loops. 2016-12-23 13:12:50 +00:00
LoadCombine
LoadStoreVectorizer [LoadStoreVectorizer] Enable vectorization of stores in the presence of an aliasing load 2016-11-23 17:43:15 +00:00
LoopDataPrefetch
LoopDeletion
LoopDistribute [LDist] Match behavior between invoking via optimization pipeline or opt -loop-distribute 2016-12-21 04:07:40 +00:00
LoopIdiom Revert "[SCEVExpand] do not hoist divisions by zero (PR30935)" 2016-12-12 18:52:32 +00:00
LoopInterchange
LoopLoadElim
LoopReroll [LoopReroll] Make root-finding more aggressive. 2016-11-21 22:35:34 +00:00
LoopRotate Revert @llvm.assume with operator bundles (r289755-r289757) 2016-12-19 08:22:17 +00:00
LoopSimplify Preserve loop metadata when folding branches to a common destination. 2016-12-16 21:23:59 +00:00
LoopSimplifyCFG
LoopStrengthReduce Revert r286999 which caused buildbot test failures. Some testcases need to be made target specific. 2016-11-15 19:42:05 +00:00
LoopUnroll [LoopUnroll] Implement profile-based loop peeling 2016-11-30 21:13:57 +00:00
LoopUnswitch [Loop Unswitch] Patch to selective unswitch only the reachable branch instructions. 2016-11-25 14:07:44 +00:00
LoopVectorize Renumber testcase metadata nodes after r290153. 2016-12-22 00:45:21 +00:00
LoopVersioning [LDist] Match behavior between invoking via optimization pipeline or opt -loop-distribute 2016-12-21 04:07:40 +00:00
LoopVersioningLICM
LowerAtomic
LowerExpectIntrinsic
LowerGuardIntrinsic
LowerInvoke
LowerSwitch
LowerTypeTests [cfi] Emit jump tables as a function-level inline asm. 2016-12-22 22:22:35 +00:00
Mem2Reg
MemCpyOpt [MemCpyOpt] Don't sink LoadInst below possible clobber. 2016-12-27 17:58:12 +00:00
MergeFunc
MetaRenamer
NameAnonGlobals
NaryReassociate Revert @llvm.assume with operator bundles (r289755-r289757) 2016-12-19 08:22:17 +00:00
NewGVN Don't use our own incorrect version of isTriviallyDeadInstruction in NewGVN. Fixes PR/31472 2016-12-26 18:44:36 +00:00
ObjCARC
PartiallyInlineLibCalls
PGOProfile Fix the test cases committed in r289521. 2016-12-13 17:34:29 +00:00
PhaseOrdering
PlaceSafepoints
PreISelIntrinsicLowering
PruneEH
Reassociate Fixed the lost FastMathFlags in Reassociate optimization. 2016-11-22 20:23:04 +00:00
Reg2Mem
RewriteStatepointsForGC
SafeStack
SampleProfile Renumber testcase metadata nodes after r290153. 2016-12-22 00:45:21 +00:00
Scalarizer
SCCP [SCCP] Make the test added in r289175 more meaningful. 2016-12-09 03:49:20 +00:00
SeparateConstOffsetFromGEP
SimplifyCFG Renumber testcase metadata nodes after r290153. 2016-12-22 00:45:21 +00:00
Sink
SLPVectorizer [InstCombine] Canonicalize insert splat sequences into an insert + shuffle 2016-12-28 00:18:08 +00:00
SpeculativeExecution SpeculativeExecution: Allow speculating more inst types 2016-10-28 20:00:33 +00:00
SROA [DIExpression] Introduce a dedicated DW_OP_LLVM_fragment operation 2016-12-05 18:04:47 +00:00
StraightLineStrengthReduce
StripDeadPrototypes
StripSymbols Renumber testcase metadata nodes after r290153. 2016-12-22 00:45:21 +00:00
StructurizeCFG [StructurizeCFG] Fix infinite loop in rebuildSSA. 2016-11-29 21:49:02 +00:00
TailCallElim Avoid tail recursion elimination across calls with operand bundles 2016-11-07 21:01:49 +00:00
ThinLTOBitcodeWriter IPO: Introduce ThinLTOBitcodeWriter pass. 2016-12-16 00:26:30 +00:00
Util [AliasAnalysis] Teach BasicAA about memcpy. 2016-12-25 22:42:27 +00:00
WholeProgramDevirt WholeProgramDevirt: Teach the pass to handle structs of arrays. 2016-12-09 01:10:11 +00:00