llvm-project/llvm/test/Transforms
Sanjay Patel 396d18aeb6 [InstCombine] replace shuffle's insertelement operand if inserted scalar is not demanded
This pattern is noted as a regression from:
D70246
...where we removed an over-aggressive shuffle simplification.

SimplifyDemandedVectorElts fails to catch this case when the insert has multiple uses,
so I'm proposing to pattern match the minimal sequence directly. This fold does not
conflict with any of our current shuffle undef/poison semantics.

Differential Revision: https://reviews.llvm.org/D71220
2019-12-10 10:10:05 -05:00
..
ADCE Add missing test for r366215 2019-07-16 15:28:29 +00:00
AddDiscriminators
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 AMDGPU: Select global atomicrmw fadd 2019-11-06 16:06:38 -08:00
Attributor [ValueTracking] Allow context-sensitive nullness check for non-pointers 2019-12-09 15:15:52 -06:00
BDCE Clang-trunk Generates Wrong Debug values with -O1 2019-11-21 13:53:10 -08:00
BlockExtractor [BlockExtractor] Avoid assert with wrong line format 2019-08-20 14:46:02 +00:00
BranchFolding
CallSiteSplitting CallSiteSplitting: Respect convergent and noduplicate 2019-05-29 16:59:48 +00:00
CalledValuePropagation
CanonicalizeAliases
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 [AArch64TTI] Compute imm materialization cost for AArch64 intrinsics 2019-12-04 11:09:03 +00:00
ConstantMerge
Coroutines [coroutine] Fixes "cannot move instruction since its users are not dominated by CoroBegin" problem. 2019-08-15 00:48:51 +00:00
CorrelatedValuePropagation [ConstantRange][LVI] Use overflow flags from `sub` to constrain the range 2019-11-07 16:18:03 +03:00
CrossDSOCFI
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 Revert "[DSE] Fix for a dangling point bug in DeadStoreElimination." 2019-12-05 19:29:21 +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 [IR] Fix mayReadFromMemory() for writeonly calls 2019-10-21 06:52:08 +00:00
EliminateAvailableExternally
EntryExitInstrumenter Reland "[ARM] push LR before __gnu_mcount_nc" 2019-08-16 23:30:16 +00:00
ExpandMemCmp [X86] Make memcmp vector lowering handle arbitrary expansions 2019-10-30 09:12:57 +02:00
Float2Int [Float2Int] avoid crashing on unreachable code (PR38502) 2019-09-19 16:31:17 +00:00
ForcedFunctionAttrs
FunctionAttrs [Attributor] Copy or port test cases related to Attributor to` Attributor` test folder 2019-12-02 15:36:29 +00:00
FunctionImport Reland "Change the X86 datalayout to add three address spaces 2019-09-10 23:15:38 +00:00
GCOVProfiling
GVN [GVN] Propagate simple equalities from assumes within the tail of the block 2019-09-03 17:31:19 +00:00
GVNHoist
GVNSink [GVNSink] Add unary FNeg support to GVNSink pass 2019-06-28 19:57:31 +00:00
GlobalDCE Reland: Dead Virtual Function Elimination 2019-10-17 09:58:57 +00:00
GlobalMerge
GlobalOpt remove UB from test by making GV alignment explicit 2019-12-01 15:16:31 +00:00
GlobalSplit
GuardWidening Broaden the definition of a "widenable branch" 2019-11-21 10:46:16 -08:00
HardwareLoops Recommit "[HardwareLoops] Optimisation remarks" 2019-11-05 09:06:22 +00:00
HotColdSplit Fix failing testcase to check for the correct output 2019-12-02 16:19:35 -08:00
IPConstantProp [IPConstantProp][NFCI] Improve and modernize tests 2019-12-09 15:24:08 -06:00
IRCE [SCEV] Add smin support to getRangeRef 2019-09-12 21:32:27 +00:00
IndVarSimplify [LoopPred] Enable new transformation by default 2019-11-06 15:41:57 -08:00
IndirectBrExpand
InferAddressSpaces AMDGPU: Add intrinsics for address space identification 2019-09-05 02:20:39 +00:00
InferFunctionAttrs [Attributor] Copy or port test cases related to Attributor to` Attributor` test folder 2019-12-02 15:36:29 +00:00
Inline [InlineCost] Fix infinite loop in indirect call evaluation 2019-11-28 08:27:50 +02:00
InstCombine [InstCombine] replace shuffle's insertelement operand if inserted scalar is not demanded 2019-12-10 10:10:05 -05:00
InstMerge [MergedLoadStoreMotion] Sink stores to BB with more than 2 predecessors 2019-09-05 17:00:32 +00:00
InstNamer
InstSimplify [ValueTracking] Allow context-sensitive nullness check for non-pointers 2019-12-09 15:15:52 -06:00
InterleavedAccess [ARM] Disable VLD4 under MVE 2019-12-08 10:37:29 +00:00
Internalize Reland: Dead Virtual Function Elimination 2019-10-17 09:58:57 +00:00
JumpThreading [JumpThreading] Use profile data even with the new pass manager 2019-11-22 08:21:48 -08:00
LCSSA [LCSSA] Don't use VH callbacks to invalidate SCEV when creating LCSSA phis 2019-12-06 13:21:49 +07:00
LICM [ValueTracking] Allow context-sensitive nullness check for non-pointers 2019-12-09 15:15:52 -06:00
LoadStoreVectorizer Handle casts changing pointer size in the vectorizer 2019-08-02 04:03:37 +00:00
LoopDataPrefetch
LoopDeletion
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 Revert BCmp Loop Idiom recognition transform (PR43870) 2019-11-02 12:48:03 +03: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] Improve inner exit loop safety checks. 2019-12-04 17:46:01 +00:00
LoopLoadElim LoopLoadElim: Respect convergent 2019-06-12 13:50:47 +00:00
LoopPredication [LoopPred] Robustly handle partially unswitched loops 2019-11-21 15:44:36 -08: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
LoopStrengthReduce [NFC][LSR] Avoid undefined grep in pr2570.ll 2019-06-19 16:02:54 +00:00
LoopTransformWarning
LoopUnroll [InstCombine] Revert rL341831: relax one-use check in foldICmpAddConstant() (PR44100) 2019-12-02 18:06:15 +03:00
LoopUnrollAndJam
LoopUnswitch [LoopUnroll+LoopUnswitch] do not transform loops containing callbr 2019-07-15 21:16:29 +00:00
LoopVectorize [ARM] Add missing REQUIRES: asserts to test. NFC 2019-12-09 11:43:43 +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
LowerInvoke
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
MakeGuardsExplicit
Mem2Reg
MemCpyOpt Revert "Revert "As a follow-up to my initial mail to llvm-dev here's a first pass at the O1 described there."" 2019-11-26 20:28:52 -08:00
MergeFunc [IR] Redefine Freeze instruction 2019-11-12 10:49:00 +09:00
MergeICmps [MergeICmps] Make the pass compatible with the new pass manager. 2019-05-23 12:35:26 +00:00
MetaRenamer
NameAnonGlobals
NaryReassociate
NewGVN [NewGVN] Check that call has an access. 2019-10-15 17:25:36 +00:00
ObjCARC llvm/ObjCARC: Eliminate inlined AutoreleaseRV calls 2019-11-19 12:02:01 -08:00
PGOProfile [PGO] Don't group COMDAT variables for compiler generated profile variables in ELF 2019-09-30 18:11:22 +00:00
PartiallyInlineLibCalls
PhaseOrdering Revert "[Attributor] Move pass after InstCombine to futher eliminate null pointer checks" 2019-11-27 22:45:47 +01:00
PlaceSafepoints
PreISelIntrinsicLowering [ObjC] Override TailCallKind when lowering objc intrinsics 2019-11-11 08:30:06 -08:00
PruneEH
Reassociate [DBG][OPT] Attempt to salvage or undef debug info when removing trivially deletable instructions in the Reassociate Expression pass. 2019-11-12 15:17:04 +00:00
Reg2Mem
RewriteStatepointsForGC
SCCP [SCCP] Update condition to avoid overflow. 2019-07-31 18:22:22 +00:00
SLPVectorizer [SLP] Enhance SLPVectorizer to vectorize different combinations of aggregates 2019-12-03 19:29:27 +03:00
SROA [NFC] Precommit test showing SROA loses `!tbaa.struct` metadata 2019-12-02 11:48:01 +03:00
SafeStack [SafeStack] Insert the deref before remaining elements 2019-07-24 00:16:23 +00:00
SampleProfile [AutoFDO] Inline replay for cold/small callees from sample profile loader 2019-12-06 11:44:45 -08:00
ScalarizeMaskedMemIntrin/X86 [ScalarizeMaskedMemIntrin] Add test case for expanding scatter. 2019-08-07 23:16:29 +00:00
Scalarizer [Scalarizer] Treat values from unreachable blocks as undef 2019-11-15 11:13:37 +01:00
SeparateConstOffsetFromGEP [lit] Delete empty lines at the end of lit.local.cfg NFC 2019-06-17 09:51:07 +00:00
SimpleLoopUnswitch [SimpleLoopUnswitch] Invalidate the topmost loop with ExitBB as exiting. 2019-12-04 11:32:09 +00:00
SimplifyCFG Reapply: [DebugInfo] Recover debug intrinsics when killing duplicated/empty... 2019-12-10 13:33:32 +00:00
Sink
SpeculateAroundPHIs Ignore indirect branches from callbr. 2019-08-14 16:44:07 +00:00
SpeculativeExecution
StraightLineStrengthReduce
StripDeadPrototypes
StripSymbols
StructurizeCFG StructurizeCFG: Relax uniformity checks. 2019-05-24 08:59:17 +00:00
SyntheticCountsPropagation
TailCallElim
ThinLTOBitcodeWriter cfi-icall: Allow the jump table to be optionally made non-canonical. 2019-08-09 22:31:59 +00:00
TypePromotion/ARM add test for previous commit 2019-12-10 13:24:01 +00:00
Util LowerDbgDeclare: look through bitcasts. 2019-12-05 11:19:07 -08:00
WholeProgramDevirt IR: print value numbers for unnamed function arguments 2019-08-03 14:28:34 +00:00