llvm-project/llvm/test/Transforms
Alexey Bataev c574d2fbac [SLP]Improve vectorization of stores.
Patch tries to improve the vectorization of stores. Originally, we just
check the type and the base pointer of the store.
Patch adds some extra checks to avoid non-profitable vectorization
cases. It includes analysis of the scalar values to be stored and
triggers the vectorization attempt only if the scalar values have
same/alt opcode and are from same basic block, i.e. we don't end up
immediately with the gather node, which is not profitable.
This also improves compile time by filtering out non-profitable cases.

Part of D57059.

Differential Revision: https://reviews.llvm.org/D104122
2021-07-08 12:35:39 -07:00
..
ADCE Revert "[NFC] remove explicit default value for strboolattr attribute in tests" 2021-05-24 19:43:40 +02:00
AddDiscriminators Revert "[NFC] remove explicit default value for strboolattr attribute in tests" 2021-05-24 19:43:40 +02:00
AggressiveInstCombine
AlignmentFromAssumptions [AssumeBundles] offset should be added to correctly calculate align 2021-04-02 12:32:05 +09:00
ArgumentPromotion [test] Properly match parameter/argument ABI attributes 2021-05-31 09:12:18 -07:00
AtomicExpand [AtomicExpandPass][AArch64] Promote xchg with floating-point types to integer ones 2021-05-29 08:57:27 +02:00
Attributor [Attributor][FIX] Replace uses first, then values 2021-07-06 22:43:51 -05:00
BDCE [DCE] Don't remove non-willreturn calls 2021-02-19 12:35:40 +01:00
BlockExtractor
BranchFolding
CallSiteSplitting
CalledValuePropagation
CanonicalizeAliases
CanonicalizeFreezeInLoops
CodeExtractor
CodeGenPrepare Revert "[NFC] remove explicit default value for strboolattr attribute in tests" 2021-05-24 19:43:40 +02:00
ConstantHoisting [ARM] Set the immediate cost of GEP operands to 0 2021-06-30 19:19:03 +01:00
ConstantMerge [ConstantMerge] Don't merge thread_local constants with non-thread_local constants 2021-04-28 23:44:20 +01:00
ConstraintElimination [ConstraintElimination] Only strip casts preserving the representation. 2021-03-26 20:07:41 +00:00
Coroutines [coro async] Cap the alignment of spilled values (vs. allocas) at the max frame alignment 2021-07-07 08:06:25 -07:00
CorrelatedValuePropagation [CVP] Guard against poison in common phi value transform (PR50399) 2021-05-25 20:47:17 +02:00
CrossDSOCFI
DCE [Tests] Add willreturn to libcalls in some tests 2021-01-22 21:47:35 +01:00
DeadArgElim [test] Properly match parameter/argument ABI attributes 2021-05-31 09:12:18 -07:00
DeadStoreElimination [DSE] Preserve address space 2021-06-27 20:26:00 +02:00
DivRemPairs
EarlyCSE [FPEnv] EarlyCSE support for constrained intrinsics, default FP environment edition 2021-05-20 14:40:51 -04:00
EliminateAvailableExternally
EntryExitInstrumenter
ExpandMemCmp
FixIrreducible
Float2Int
ForcedFunctionAttrs
FunctionAttrs [tests] Update Transforms/FunctionAttrs/nosync.ll 2021-05-06 01:39:18 +02:00
FunctionImport Revert "[NFC] remove explicit default value for strboolattr attribute in tests" 2021-05-24 19:43:40 +02:00
FunctionSpecialization [FuncSpec] Add an option to specializing literal constant 2021-06-30 11:26:44 +08:00
GCOVProfiling [GCOVProfiling][test] Ensure that 'opt' drops any files in a temp directory 2021-06-20 22:48:35 +02:00
GVN [InstCombine] Use poison constant to represent the result of unreachable instrs 2021-06-21 09:58:44 +09:00
GVNHoist Revert "[NFC] remove explicit default value for strboolattr attribute in tests" 2021-05-24 19:43:40 +02:00
GVNSink [GVNSink] auto-generate test checks; NFC 2021-04-02 13:16:35 -04:00
GlobalDCE
GlobalMerge
GlobalOpt [IR] Make TypeFinder aware of DIArgList values 2021-05-28 17:09:45 +02:00
GlobalSplit [test] Fix mix of variable use/def and regex match 2021-03-24 17:58:16 +00:00
GuardWidening
HardwareLoops [test, HardwareLoops] Fix use of var defined in CHECK-NOT 2021-03-30 15:06:32 +01:00
HelloNew
HotColdSplit
IRCE [SCEV] By more careful when traversing phis in isImpliedViaMerge. 2021-05-07 19:52:29 +01:00
IROutliner [IROutliner] Adding DebugInfo handling for IR Outlined Functions 2021-06-15 10:57:08 -05:00
IndVarSimplify [IndVarSimplify][X86] Regenerate loop-invariant-conditions.ll test checks 2021-07-07 13:58:28 +01:00
IndirectBrExpand
InferAddressSpaces [Intrinsics] Make MemCpyInlineInst a MemCpyInst 2021-07-02 10:25:24 -07:00
InferFunctionAttrs [BuildLibCalls] Remove inaccessiblememonly inference for calloc 2021-04-29 00:17:37 +02:00
Inline [Test] delete LPM RUNs in inline_nossp.ll 2021-06-29 17:09:42 -07:00
InstCombine [Instcombine]Transform reduction+(sext/zext(<n x i1>) to <n x im>) to [-]zext/trunc(ctpop(bitcast <n x i1> to in)) to im. 2021-07-08 07:56:41 -07:00
InstMerge
InstNamer
InstSimplify [InstSimplify] fix bug in poison propagation for FP ops 2021-07-06 14:06:50 -04:00
InterleavedAccess [InterleaveAccess] Copy fast math flags when adjusting binary operators in interleave access pass 2021-06-17 09:53:33 +01:00
Internalize [Internalize] Preserve variables externally initialized. 2021-07-08 10:48:19 -04:00
JumpThreading [BasicAA] Handle PHIs without incoming values gracefully 2021-06-07 21:39:01 +00:00
LCSSA
LICM Precommit tests for context senstive attribute dropping 2021-06-24 13:18:16 -04:00
LoadStoreVectorizer [LoadStoreVectorizer] Support opaque pointers 2021-06-27 15:42:16 +02:00
LoopBoundSplit [LoopBoundSplit] Ignore phi node which is not scevable 2021-06-09 09:44:36 +01:00
LoopDataPrefetch
LoopDeletion [Test] Add loop deletion switch tests 2021-07-08 17:28:08 +07:00
LoopDistribute [SCEVExpander] ReuseOrCreateCast(): use IRBuilder to actually create the cast 2021-04-19 18:38:39 +03:00
LoopFlatten [LoopFlatten] Simplify loops so that the pass can operate on unsimplified loops. 2021-05-12 19:22:01 +01:00
LoopFusion [llvm] Unbreak no-asserts testing after 18839be9c5 2021-04-27 05:46:43 -04:00
LoopIdiom [Intrinsics] Make MemCpyInlineInst a MemCpyInst 2021-07-02 10:25:24 -07:00
LoopInstSimplify
LoopInterchange [LoopInterhcange] Handle movement of reduction phis appropriately 2021-05-31 16:27:38 -04:00
LoopLoadElim [IndVars] Provide eliminateIVComparison with context 2021-03-19 12:28:22 +07:00
LoopPredication [NFCI] SCEVExpander: emit intrinsics for integral {u,s}{min,max} SCEV expressions 2021-03-06 21:52:46 +03:00
LoopReroll autogen two tests for ease of update 2021-06-30 11:47:36 -07:00
LoopRotate Revert "[NFC] remove explicit default value for strboolattr attribute in tests" 2021-05-24 19:43:40 +02:00
LoopSimplify [InstCombine] Fully disable select to and/or i1 folding 2021-05-06 09:29:52 +09:00
LoopSimplifyCFG
LoopStrengthReduce [SCEVExpander] Support opaque pointers 2021-07-07 20:47:59 +02:00
LoopTransformWarning
LoopUnroll autogen two tests for ease of update 2021-06-30 11:47:36 -07:00
LoopUnrollAndJam [LoopUnrollAndJam] Change LoopUnrollAndJamPass to LoopNest pass 2021-06-08 20:30:02 +09:00
LoopUnswitch Explicitly enable the new pass manager in this test. 2021-03-25 18:10:36 -07:00
LoopVectorize [SLP][COST][X86]Improve cost model for masked gather. 2021-07-08 11:53:30 -07:00
LoopVersioning Split a test for ease of auto update 2021-06-21 11:02:26 -07:00
LoopVersioningLICM [llvm] Update tests that got missed in adee485adf. 2021-06-23 10:29:58 +01:00
LowerAtomic
LowerConstantIntrinsics [LowerConstantIntrinsics] reuse isManifestLogic from ConstantFolding 2021-05-14 15:35:21 -07:00
LowerExpectIntrinsic
LowerGuardIntrinsic
LowerInvoke
LowerMatrixIntrinsics [Matrix] Fix crash during fusion if the same load is re-used. 2021-07-02 14:00:17 +01:00
LowerSwitch
LowerTypeTests [OpaquePtr] Support forward references in textual IR 2021-06-29 20:10:31 +02:00
LowerWidenableCondition
MakeGuardsExplicit
Mem2Reg [Mem2Reg] Regenerate test checks (NFC) 2021-06-21 11:06:28 +02:00
MemCpyOpt [Intrinsics] Make MemCpyInlineInst a MemCpyInst 2021-07-02 10:25:24 -07:00
MergeFunc
MergeICmps Revert "[BuildLibCalls/SimplifyLibCalls] Fix attributes on created CallInst instructions." 2021-06-24 19:24:34 -07:00
MetaRenamer
NameAnonGlobals
NaryReassociate [NARY] Don't optimize min/max if there are side uses (part2) 2021-04-30 19:02:02 +07:00
NewGVN Revert "[NFC] remove explicit default value for strboolattr attribute in tests" 2021-05-24 19:43:40 +02:00
ObjCARC [ObjC][ARC] Prevent moving objc_retain calls past objc_release calls 2021-07-05 12:16:15 -07:00
OpenMP [OpenMP] Change analysis remarks to not emit on cold functions 2021-06-30 11:54:24 -04:00
PGOProfile [SimplifyCFG] Tail-merging all blocks with `ret` terminator 2021-06-24 13:15:39 +03:00
PartialInlining
PartiallyInlineLibCalls [PartiallyInlineLibCalls] Disable sqrt expansion for strictfp. 2021-06-17 14:15:12 -07:00
PhaseOrdering [OpenMP] Change OpenMPOpt to check openmp metadata 2021-06-25 16:34:22 -04:00
PlaceSafepoints
PreISelIntrinsicLowering
PruneEH [SimplifyCFG] Tail-merging all blocks with `ret` terminator 2021-06-24 13:15:39 +03:00
Reassociate Partial Reapply "[DebugInfo] Use variadic debug values to salvage BinOps and GEP instrs with non-const operands" 2021-06-24 09:46:38 +01:00
Reg2Mem
RelLookupTableConverter/X86 [Passes] Add relative lookup table converter pass 2021-04-13 01:29:41 +00:00
RewriteStatepointsForGC Allow ptrtoint/inttoptr of non-integral pointer types in IR 2021-06-11 13:38:32 -07:00
SCCP [ConstantRanges] Use APInt for constant case for urem/srem. 2021-06-30 11:18:20 +01:00
SLPVectorizer [SLP]Improve vectorization of stores. 2021-07-08 12:35:39 -07:00
SROA [Mem2Reg] Regenerate test checks (NFC) 2021-06-21 11:06:28 +02:00
SafeStack [SafeStack] Use proper API to get stack guard 2021-05-30 00:52:48 -07:00
SampleProfile [CSSPGO] Undoing the concept of dangling pseudo probe 2021-06-18 15:14:11 -07:00
ScalarizeMaskedMemIntrin Expand masked mem intrinsics correctly wrt big-endian 2021-02-11 08:59:52 +00:00
Scalarizer Update @llvm.powi to handle different int sizes for the exponent 2021-06-17 09:38:28 +02:00
SeparateConstOffsetFromGEP [test] Make global in split-gep-and-gvn.ll not constant 2021-04-19 11:03:19 -07:00
SimpleLoopUnswitch [SimpleLoopUnswich] Fixa a bug on ComputeUnswitchedCost with partial unswitch 2021-06-22 16:18:00 +01:00
SimplifyCFG [SimplifyCFG] simplifyUnreachable(): erase instructions iff they are guaranteed to transfer execution to unreachable 2021-07-03 10:45:44 +03:00
Sink
SpeculativeExecution
StraightLineStrengthReduce Revert "[NFC] remove explicit default value for strboolattr attribute in tests" 2021-05-24 19:43:40 +02:00
StripDeadPrototypes
StripSymbols [DebugInfo] Support for signed constants inside DIExpression 2021-03-30 23:20:38 +05:30
StructurizeCFG Revert "[NFC] remove explicit default value for strboolattr attribute in tests" 2021-05-24 19:43:40 +02:00
SyntheticCountsPropagation
TailCallElim [test] Properly match parameter/argument ABI attributes 2021-05-31 09:12:18 -07:00
ThinLTOBitcodeWriter Revert "ThinLTO: Fix inline assembly references to static functions with CFI" 2021-06-23 19:24:56 -07:00
TypePromotion/ARM
UnifyFunctionExitNodes
UnifyLoopExits
Util Revert "[NFC] remove explicit default value for strboolattr attribute in tests" 2021-05-24 19:43:40 +02:00
VectorCombine [VectorCombine] Limit scalarization to non-poison indices for now. 2021-06-14 16:40:14 +01:00
WholeProgramDevirt [OpaquePtr] Support forward references in textual IR 2021-06-29 20:10:31 +02:00