llvm-project/llvm/test/Transforms
Sam Parker 39af8a3a3b [DAGCombine][ARM] Enable extending masked loads
Add generic DAG combine for extending masked loads.

Allow us to generate sext/zext masked loads which can access v4i8,
v8i8 and v4i16 memory to produce v4i32, v8i16 and v4i32 respectively.

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

llvm-svn: 375085
2019-10-17 07:55:55 +00:00
..
ADCE Add missing test for r366215 2019-07-16 15:28:29 +00:00
AddDiscriminators Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
AggressiveInstCombine [NFC] run specific pass instead of whole -O3 pipeline for popcount recoginzation testcase. 2019-10-11 05:30:18 +00:00
AlignmentFromAssumptions [AlignmentFromAssumptions] getNewAlignmentDiff(): use getURemExpr() 2019-08-23 02:17:04 +00:00
ArgumentPromotion IR: print value numbers for unnamed function arguments 2019-08-03 14:28:34 +00:00
AtomicExpand [lit] Delete empty lines at the end of lit.local.cfg NFC 2019-06-17 09:51:07 +00:00
BDCE Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
BlockExtractor [BlockExtractor] Avoid assert with wrong line format 2019-08-20 14:46:02 +00:00
BranchFolding Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
CallSiteSplitting CallSiteSplitting: Respect convergent and noduplicate 2019-05-29 16:59:48 +00:00
CalledValuePropagation Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
CanonicalizeAliases Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
CodeExtractor [CodeExtractor] Fix sinking of allocas with multiple bitcast uses (PR42451) 2019-07-10 16:32:20 +00:00
CodeGenPrepare Reapply r374743 with a fix for the ocaml binding 2019-10-14 16:15:14 +00:00
ConstProp [ConstantFold] fix inconsistent handling of extractelement with undef index (PR42689) 2019-10-13 17:34:08 +00:00
ConstantHoisting [RISCV] Fix RISCVTTIImpl::getIntImmCost for immediates where getMinSignedBits() > 64 2019-07-09 10:56:18 +00:00
ConstantMerge Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
Coroutines [coroutine] Fixes "cannot move instruction since its users are not dominated by CoroBegin" problem. 2019-08-15 00:48:51 +00:00
CorrelatedValuePropagation [CVP] Remove a masking operation if range information implies it's a noop 2019-10-11 03:48:56 +00:00
CrossDSOCFI Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
DCE [FPEnv] Strict FP tests should use the requisite function attributes. 2019-10-04 17:03:46 +00:00
DeadArgElim [FunctionAttrs] Annotate "willreturn" for intrinsics 2019-07-28 06:09:56 +00:00
DeadStoreElimination [FunctionAttrs] Annotate "willreturn" for intrinsics 2019-07-28 06:09:56 +00:00
DivRemPairs [DivRemPairs] Don't assert that we won't ever get expanded-form rem pairs in different BB's (PR43500) 2019-09-29 15:25:24 +00:00
EarlyCSE [EarlyCSE] Add support for unary FNeg to EarlyCSE 2019-08-07 14:34:41 +00:00
EliminateAvailableExternally Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
EntryExitInstrumenter Reland "[ARM] push LR before __gnu_mcount_nc" 2019-08-16 23:30:16 +00:00
ExpandMemCmp Revert "Reland "r364412 [ExpandMemCmp][MergeICmps] Move passes out of CodeGen into opt pipeline."" 2019-09-10 10:39:09 +00:00
Float2Int [Float2Int] avoid crashing on unreachable code (PR38502) 2019-09-19 16:31:17 +00:00
ForcedFunctionAttrs Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
FunctionAttrs [Attributor] Shortcut no-return through will-return 2019-10-13 21:25:53 +00:00
FunctionImport Reland "Change the X86 datalayout to add three address spaces 2019-09-10 23:15:38 +00:00
GCOVProfiling Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
GVN [GVN] Propagate simple equalities from assumes within the tail of the block 2019-09-03 17:31:19 +00:00
GVNHoist Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
GVNSink [GVNSink] Add unary FNeg support to GVNSink pass 2019-06-28 19:57:31 +00:00
GlobalDCE Revert "Dead Virtual Function Elimination" 2019-10-14 23:25:25 +00:00
GlobalMerge Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
GlobalOpt [GlobalOpt] prevent crashing on large integer types (PR42932) 2019-08-09 12:43:25 +00:00
GlobalSplit Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
GuardWidening [GuardWidening] Wire up a NPM version of the LoopGuardWidening pass 2019-04-18 19:17:14 +00:00
HardwareLoops Revert "[HardwareLoops] Optimisation remarks" 2019-10-16 10:55:06 +00:00
HotColdSplit Invalidate assumption cache before outlining. 2019-10-04 22:46:42 +00:00
IPConstantProp Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
IRCE [SCEV] Add smin support to getRangeRef 2019-09-12 21:32:27 +00:00
IndVarSimplify Remove a stale comment, noted in post commit review for rL375038 2019-10-16 20:27:10 +00:00
IndirectBrExpand Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
InferAddressSpaces AMDGPU: Add intrinsics for address space identification 2019-09-05 02:20:39 +00:00
InferFunctionAttrs [Attributor][MustExec] Deduce dereferenceable and nonnull attribute using MustBeExecutedContextExplorer 2019-10-08 15:25:56 +00:00
Inline [Inliner] Remove incorrect early exit during switch cost computation 2019-09-20 23:29:17 +00:00
InstCombine [InstCombine][AMDGPU] Fix crash with v3i16/v3f16 buffer intrinsics 2019-10-16 11:14:01 +00:00
InstMerge [MergedLoadStoreMotion] Sink stores to BB with more than 2 predecessors 2019-09-05 17:00:32 +00:00
InstNamer Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
InstSimplify [InstSimplify] fold fma/fmuladd with a NaN or undef operand 2019-10-02 12:12:02 +00:00
InterleavedAccess Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
Internalize Revert "Dead Virtual Function Elimination" 2019-10-14 23:25:25 +00:00
JumpThreading IR: print value numbers for unnamed function arguments 2019-08-03 14:28:34 +00:00
LCSSA Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
LICM [MemorySSA] Don't hoist stores if interfering uses (as calls) exist. 2019-10-03 22:20:04 +00:00
LoadStoreVectorizer Handle casts changing pointer size in the vectorizer 2019-08-02 04:03:37 +00:00
LoopDataPrefetch Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
LoopDeletion Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
LoopDistribute Revert "[IRBuilder] Fold consistently for or/and whether constant is LHS or RHS" 2019-07-07 22:12:01 +00:00
LoopFusion [LoopFusion] Add ability to fuse guarded loops 2019-09-26 21:42:45 +00:00
LoopIdiom [LoopIdiom] BCmp: loop exit count must not be wider than size_t that `bcmp` takes 2019-10-14 19:46:34 +00:00
LoopInstSimplify [LoopPassManager + MemorySSA] Only enable use of MemorySSA for LPMs known to preserve it. 2019-08-21 17:00:57 +00:00
LoopInterchange [LoopInterchange] Properly move condition, induction increment and ops to latch. 2019-09-11 08:23:23 +00:00
LoopLoadElim LoopLoadElim: Respect convergent 2019-06-12 13:50:47 +00:00
LoopPredication [LoopPred] Extend LFTR normalization to the inverse EQ case 2019-07-09 01:27:45 +00:00
LoopReroll [SCEV] Use NoWrapFlags when expanding a simple mul 2019-06-17 10:05:18 +00:00
LoopRotate [LoopPassManager + MemorySSA] Only enable use of MemorySSA for LPMs known to preserve it. 2019-08-21 17:00:57 +00:00
LoopSimplify [DebugInfo@O2][LoopVectorize] pr39024: Vectorized code linenos step through loop even after completion 2019-06-19 10:50:47 +00:00
LoopSimplifyCFG Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
LoopStrengthReduce [NFC][LSR] Avoid undefined grep in pr2570.ll 2019-06-19 16:02:54 +00:00
LoopTransformWarning Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
LoopUnroll [Unroll] Do NOT unroll a loop with small runtime upperbound 2019-09-26 21:40:27 +00:00
LoopUnrollAndJam Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
LoopUnswitch [LoopUnroll+LoopUnswitch] do not transform loops containing callbr 2019-07-15 21:16:29 +00:00
LoopVectorize [DAGCombine][ARM] Enable extending masked loads 2019-10-17 07:55:55 +00:00
LoopVersioning LoopVersioning: Respect convergent 2019-06-12 14:05:58 +00:00
LoopVersioningLICM LoopVersioningLICM: Respect convergent and noduplicate 2019-05-29 20:47:59 +00:00
LowerAtomic Transforms: lower fadd and fsub atomicrmw instructions 2019-05-23 17:03:43 +00:00
LowerConstantIntrinsics Reapply r374743 with a fix for the ocaml binding 2019-10-14 16:15:14 +00:00
LowerExpectIntrinsic Reland "clang-misexpect: Profile Guided Validation of Performance Annotations in LLVM" 2019-09-11 16:19:50 +00:00
LowerGuardIntrinsic Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
LowerInvoke Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
LowerSwitch Fix a crash when the default of a switch is removed 2019-06-03 17:54:15 +00:00
LowerTypeTests LowerTypeTests: Rename local functions to avoid collisions with identically named functions in ThinLTO modules. 2019-10-03 23:42:44 +00:00
LowerWidenableCondition Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
MakeGuardsExplicit Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
Mem2Reg Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
MemCpyOpt [ValueTracking] Improve pointer offset computation for cases of same base 2019-10-10 21:30:43 +00:00
MergeFunc IR: print value numbers for unnamed function arguments 2019-08-03 14:28:34 +00:00
MergeICmps [MergeICmps] Make the pass compatible with the new pass manager. 2019-05-23 12:35:26 +00:00
MetaRenamer Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
NameAnonGlobals Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
NaryReassociate Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
NewGVN [NewGVN] Check that call has an access. 2019-10-15 17:25:36 +00:00
ObjCARC [ObjC][ARC] Skip debug instructions when computing the insert point of 2019-09-19 20:58:51 +00:00
PGOProfile [PGO] Don't group COMDAT variables for compiler generated profile variables in ELF 2019-09-30 18:11:22 +00:00
PartiallyInlineLibCalls Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
PhaseOrdering [NFC][PhaseOrdering] Add end-to-end tests for the 'two shifts by sext' problem 2019-09-27 19:32:43 +00:00
PlaceSafepoints Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
PreISelIntrinsicLowering Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
PruneEH Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
Reassociate [Reassoc] Small fix to support unary FNeg in NegateValue(...) 2019-08-23 15:49:38 +00:00
Reg2Mem Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
RewriteStatepointsForGC Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
SCCP [SCCP] Update condition to avoid overflow. 2019-07-31 18:22:22 +00:00
SLPVectorizer [SLP] avoid reduction transform on patterns that the backend can load-combine (2nd try) 2019-10-16 18:06:24 +00:00
SROA Revert [SROA] Reuse existing lifetime markers if possible 2019-10-15 04:32:07 +00:00
SafeStack [SafeStack] Insert the deref before remaining elements 2019-07-24 00:16:23 +00:00
SampleProfile [SampleFDO] Add indexing for function profiles so they can be loaded on demand 2019-10-09 21:36:03 +00:00
ScalarizeMaskedMemIntrin/X86 [ScalarizeMaskedMemIntrin] Add test case for expanding scatter. 2019-08-07 23:16:29 +00:00
Scalarizer [Intrinsic] Add the llvm.umul.fix.sat intrinsic 2019-09-07 12:16:14 +00:00
SeparateConstOffsetFromGEP [lit] Delete empty lines at the end of lit.local.cfg NFC 2019-06-17 09:51:07 +00:00
SimpleLoopUnswitch [MemorySSA] Update for partial unswitch. 2019-10-14 23:52:39 +00:00
SimplifyCFG [SimplifyCFG] mergeConditionalStoreToAddress(): consider cost, not instruction count 2019-09-18 19:46:57 +00:00
Sink Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
SpeculateAroundPHIs Ignore indirect branches from callbr. 2019-08-14 16:44:07 +00:00
SpeculativeExecution Support FNeg in SpeculativeExecution pass 2019-05-14 16:51:18 +00:00
StraightLineStrengthReduce Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
StripDeadPrototypes Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
StripSymbols Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
StructurizeCFG StructurizeCFG: Relax uniformity checks. 2019-05-24 08:59:17 +00:00
SyntheticCountsPropagation Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
TailCallElim Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
ThinLTOBitcodeWriter cfi-icall: Allow the jump table to be optionally made non-canonical. 2019-08-09 22:31:59 +00:00
Util Handle successor's PHI node correctly when flattening CFG merges two if-regions 2019-09-26 15:20:17 +00:00
WholeProgramDevirt IR: print value numbers for unnamed function arguments 2019-08-03 14:28:34 +00:00