1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-21 12:02:58 +02:00
llvm-mirror/test/Transforms
Charlie Turner 18cdd84f54 [SLP] Treat SelectInsts as reduction values.
Summary:
Certain workloads, in particular sum-of-absdiff loops, can be vectorized using SLP if it can treat select instructions as reduction values.

The test case is a bit awkward. The AArch64 cost model needs some tuning to not be so pessimistic about selects. I've had to tweak the SLP threshold here.

Reviewers: jmolloy, mzolotukhin, spatel, nadav

Subscribers: nadav, mssimpso, aemerson, llvm-commits

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

llvm-svn: 251424
2015-10-27 17:49:11 +00:00
..
ADCE
AddDiscriminators DI: Require subprogram definitions to be distinct 2015-08-28 20:26:49 +00:00
AlignmentFromAssumptions
ArgumentPromotion DI: Require subprogram definitions to be distinct 2015-08-28 20:26:49 +00:00
AtomicExpand [ARM] Emit clrex in the expanded cmpxchg fail block. 2015-09-22 17:22:58 +00:00
BBVectorize [PM/AA] Rebuild LLVM's alias analysis infrastructure in a way compatible 2015-09-09 17:55:00 +00:00
BDCE
BranchFolding Make the default triple optional by allowing an empty string 2015-09-16 05:34:32 +00:00
CodeExtractor
CodeGenPrepare [CGP] transform select instructions into branches and sink expensive operands 2015-10-19 21:59:12 +00:00
ConstantHoisting
ConstantMerge [opaque pointer type] Add textual IR support for explicit type parameter for global aliases 2015-09-11 03:22:04 +00:00
ConstProp [test] (NFC) Simplify Transforms/ConstProp/calls.ll 2015-08-28 18:04:20 +00:00
CorrelatedValuePropagation [LazyValueInfo] Report nonnull range for nonnull pointers 2015-09-18 13:01:48 +00:00
DeadArgElim [DeadArgElim] Split the invoke successor edge 2015-09-23 15:41:09 +00:00
DeadStoreElimination [DeadStoreElimination] Remove dead zero store to calloc initialized memory 2015-09-23 11:38:44 +00:00
EarlyCSE [EarlyCSE] Fix handling of target memory intrinsics for CSE'ing loads. 2015-10-07 07:41:29 +00:00
EliminateAvailableExternally
Float2Int
FunctionAttrs [FunctionAttr] Infer nonnull attributes on returns 2015-08-31 19:44:38 +00:00
GCOVProfiling DI: Require subprogram definitions to be distinct 2015-08-28 20:26:49 +00:00
GlobalDCE [opaque pointer type] Add textual IR support for explicit type parameter for global aliases 2015-09-11 03:22:04 +00:00
GlobalOpt GlobalOpt does not treat externally_initialized globals correctly 2015-10-12 13:20:52 +00:00
GVN GVN: don't try to replace instruction with itself. 2015-10-23 20:30:02 +00:00
IndVarSimplify [SCEV] Remove a test case added in r249168 2015-10-22 19:57:41 +00:00
Inline [InlineFunction] Correctly inline TerminatePadInst 2015-10-13 22:08:17 +00:00
InstCombine [InstCombine] Teach instcombine not to create extra PHI nodes when folding GEPs 2015-10-26 10:25:05 +00:00
InstMerge
InstSimplify Handle non-constant shifts in computeKnownBits, and use computeKnownBits for constant folding in InstCombine/Simplify 2015-10-23 20:37:08 +00:00
Internalize [opaque pointer type] Add textual IR support for explicit type parameter for global aliases 2015-09-11 03:22:04 +00:00
IPConstantProp
IRCE
JumpThreading Recommit r250345, it was reverted in r250366 to investigate a bot failure. 2015-10-15 14:59:40 +00:00
LCSSA
LICM [LICM] Hoist calls to readonly argmemonly functions even with stores in the loop 2015-09-21 22:27:59 +00:00
LoadCombine
LoopDeletion
LoopDistribute [LAA] Hold bounds via ValueHandles during SCEV expansion 2015-08-21 23:19:57 +00:00
LoopIdiom DI: Require subprogram definitions to be distinct 2015-08-28 20:26:49 +00:00
LoopInterchange
LoopReroll [LoopReroll] Ignore debug intrinsics 2015-09-28 17:03:23 +00:00
LoopRotate DI: Require subprogram definitions to be distinct 2015-08-28 20:26:49 +00:00
LoopSimplify DI: Require subprogram definitions to be distinct 2015-08-28 20:26:49 +00:00
LoopStrengthReduce [ScalarEvolutionExpander] Properly insert no-op casts + EH Pads 2015-10-27 07:36:42 +00:00
LoopUnroll [Tests] Add one more case to LoopUnroll/pr18861.ll for better coverage. 2015-10-02 19:21:52 +00:00
LoopUnswitch Teach LoopUnswitch not to perform non-trivial unswitching on loops containing convergent operations. 2015-10-09 18:40:20 +00:00
LoopVectorize Loop Vectorizer - skipping "bitcast" before GEP 2015-10-26 13:42:41 +00:00
LowerAtomic
LowerBitSets [opaque pointer type] Add textual IR support for explicit type parameter for global aliases 2015-09-11 03:22:04 +00:00
LowerExpectIntrinsic
LowerInvoke
LowerSwitch [LowerSwitch] Fix a bug when LowerSwitch deletes the default block 2015-08-11 18:12:26 +00:00
Mem2Reg DI: Update tests before adding !dbg subprogram attachments 2015-08-28 23:32:00 +00:00
MemCpyOpt [MemCpyOpt] Fix wrong merging adjacent nontemporal stores into memset calls. 2015-10-09 10:53:41 +00:00
MergeFunc MergeFunctions: Clear GlobalNumbers ValueMap 2015-10-05 17:26:36 +00:00
MetaRenamer [opaque pointer type] Add textual IR support for explicit type parameter for global aliases 2015-09-11 03:22:04 +00:00
NaryReassociate [NaryReassociate] SeenExprs records WeakVH 2015-10-01 03:51:44 +00:00
ObjCARC [PM/AA] Rebuild LLVM's alias analysis infrastructure in a way compatible 2015-09-09 17:55:00 +00:00
PartiallyInlineLibCalls
PhaseOrdering
PlaceSafepoints [PlaceSafepoints] Make the width of a counted loop settable. 2015-09-15 01:42:48 +00:00
PruneEH
Reassociate Fix a bunch of trivial cases of 'CHECK[^:]*$' in the tests. NFCI 2015-08-10 19:01:27 +00:00
Reg2Mem
RewriteStatepointsForGC [RS4GC] Strip noalias attribute after statepoint rewrite 2015-10-26 19:06:01 +00:00
SafeStack [safestack] Fast access to the unsafe stack pointer on AArch64/Android. 2015-10-26 18:28:25 +00:00
SampleProfile Fix SamplePGO segfault when debug info is missing. 2015-10-27 17:37:00 +00:00
Scalarizer DI: Require subprogram definitions to be distinct 2015-08-28 20:26:49 +00:00
ScalarRepl DI: Require subprogram definitions to be distinct 2015-08-28 20:26:49 +00:00
SCCP [opaque pointer type] Add textual IR support for explicit type parameter for global aliases 2015-09-11 03:22:04 +00:00
SeparateConstOffsetFromGEP [SeparateConstOffsetFromGEP] sext(a)+sext(b) => sext(a+b) when a+b can't sign-overflow. 2015-08-14 02:02:05 +00:00
SimplifyCFG Revert rL251061 [SimplifyCFG] Extend SimplifyResume to handle phi of trivial landing pad. 2015-10-23 21:13:01 +00:00
Sink
SLPVectorizer [SLP] Treat SelectInsts as reduction values. 2015-10-27 17:49:11 +00:00
SpeculativeExecution
SROA [PM] Port SROA to the new pass manager. 2015-09-12 09:09:14 +00:00
StraightLineStrengthReduce [SeparateConstOffsetFromGEP] strengthen the inbounds attribute 2015-08-13 18:48:49 +00:00
StripSymbols DI: Require subprogram definitions to be distinct 2015-08-28 20:26:49 +00:00
StructurizeCFG Fix CHECK directives that weren't checking. 2015-08-31 21:10:35 +00:00
TailCallElim Fix a bunch of trivial cases of 'CHECK[^:]*$' in the tests. NFCI 2015-08-10 19:01:27 +00:00
TailDup
Util