1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 11:13:28 +01:00
llvm-mirror/test/Transforms
Roman Lebedev 4f96d992a3 [InstCombine] Canonicalize variable mask in masked merge
Summary:
Masked merge has a pattern of: `((x ^ y) & M) ^ y`.
But, there is no difference between `((x ^ y) & M) ^ y` and `((x ^ y) & ~M) ^ x`,
We should canonicalize the pattern to non-inverted mask.

https://rise4fun.com/Alive/Yol

Reviewers: spatel, craig.topper

Reviewed By: spatel

Subscribers: llvm-commits

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

llvm-svn: 331112
2018-04-28 15:45:07 +00:00
..
ADCE
AddDiscriminators Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1) 2018-01-19 17:13:12 +00:00
AggressiveInstCombine [AggressiveInstCombine] add tests for PR37098; NFC 2018-04-23 20:20:32 +00:00
AlignmentFromAssumptions [AlignmentFromAssumptions] Set source and dest alignments of memory intrinsiscs separately 2018-02-22 18:55:59 +00:00
ArgumentPromotion [ArgumentPromotion] don't break musttail invariant PR36543 2018-03-02 00:59:27 +00:00
AtomicExpand
BDCE [BDCE] Salvage debug info from dying insts 2018-02-21 01:55:33 +00:00
BlockExtractor BlockExtractor: Don’t delete functions directly 2018-03-12 22:28:18 +00:00
BranchFolding
CalledValuePropagation
CallSiteSplitting [CallSiteSplit] Make sure we remove nonnull if the parameter turns out to be a constant. 2018-04-23 20:09:08 +00:00
CodeExtractor [PartialInlining] Fix Crash from holding a reference to a destructed ORE. 2018-04-20 19:56:26 +00:00
CodeGenPrepare [CGP] Fix the remove of matched phis in complex addressing mode 2018-03-12 03:50:07 +00:00
ConstantHoisting
ConstantMerge
ConstProp
Coroutines [coroutines] Respect alloca alignment requirements when building coroutine frame 2018-04-03 20:54:20 +00:00
CorrelatedValuePropagation [CVP] simplify phi with constant incoming values that match common variable edge values 2018-04-10 20:42:39 +00:00
CrossDSOCFI
DCE [DCE] Salvage debug info from dead insts 2018-02-15 22:26:18 +00:00
DeadArgElim [DeadArgElim] Remove allocsize attributes on callsites 2018-04-12 02:06:01 +00:00
DeadStoreElimination [DSE] Teach the pass that atomic memory intrinsics are stores. 2018-04-23 19:06:49 +00:00
DivRemPairs
EarlyCSE [EarlyCSE] Don't hide earler invariant.scopes 2018-03-15 18:12:27 +00:00
EliminateAvailableExternally
EntryExitInstrumenter EntryExitInstrumenter: Handle musttail calls 2018-04-06 10:14:09 +00:00
ExpandMemCmp/X86
Float2Int
ForcedFunctionAttrs
FunctionAttrs [PM][FunctionAttrs] add NoUnwind attribute inference to PostOrderFunctionAttrs pass 2018-03-23 21:46:16 +00:00
FunctionImport [ThinLTO] Add an import cutoff for debugging/triaging 2018-04-01 15:54:40 +00:00
GCOVProfiling
GlobalDCE
GlobalMerge
GlobalOpt Fix a bug in GlobalOpt's handling of DIExpressions. 2018-04-27 21:41:36 +00:00
GlobalSplit
GuardWidening [LoopGuardWidening] Make PostDomTree optional 2018-04-27 23:15:56 +00:00
GVN Mark MergedLoadStoreMotion as not preserving MemDep results 2018-02-23 10:41:57 +00:00
GVNHoist [NFC] fix trivial typos in documents and comments 2018-04-12 05:53:20 +00:00
GVNSink
IndirectBrExpand Introduce the "retpoline" x86 mitigation technique for variant #2 of the speculative execution vulnerabilities disclosed today, specifically identified by CVE-2017-5715, "Branch Target Injection", and is one of the two halves to Spectre.. 2018-01-22 22:05:25 +00:00
IndVarSimplify [SCEV] Prove implications for SCEVUnknown Phis 2018-04-04 05:46:47 +00:00
InferAddressSpaces [AMDGPU] Switch to the new addr space mapping by default 2018-02-02 16:07:16 +00:00
InferFunctionAttrs
Inline Don't inline @llvm.icall.branch.funnel 2018-04-04 21:46:27 +00:00
InstCombine [InstCombine] Canonicalize variable mask in masked merge 2018-04-28 15:45:07 +00:00
InstMerge
InstNamer
InstSimplify Reland r301880(!): "[InstSimplify] Handle selects of GEPs with 0 offset" 2018-04-24 00:25:01 +00:00
InterleavedAccess
Internalize
IPConstantProp [IPSCCP] do not break musttail invariant (PR36485) 2018-03-01 01:19:18 +00:00
IRCE [IRCE] Only check for NSW on equality predicates 2018-04-18 13:50:28 +00:00
JumpThreading Fix typo in a test. 2018-04-20 13:51:36 +00:00
LCSSA [Test] Fix the test to output to /dev/null instead of redirecting. 2018-02-23 19:03:04 +00:00
LICM [MustExecute/LICM] Special case first instruction in throwing header 2018-04-27 20:44:01 +00:00
LoadStoreVectorizer [LoadStoreVectorize] Ignore interleaved invariant loads. 2018-04-24 15:28:47 +00:00
LoopDataPrefetch
LoopDeletion [LoopDeletion] Handle users in unreachable block 2018-01-12 07:24:43 +00:00
LoopDistribute
LoopIdiom Adding a width of the GEP index to the Data Layout. 2018-02-14 06:58:08 +00:00
LoopInterchange [LoopInterchange] Allow some loops with PHI nodes in the exit block. 2018-04-27 13:52:51 +00:00
LoopLoadElim
LoopPredication [LoopPredication] Add profitability check based on BPI 2018-03-22 16:03:59 +00:00
LoopReroll
LoopRotate [LoopRotate] Fix incorrect SCEV invalidation in loop rotation 2018-04-23 12:33:31 +00:00
LoopSimplify Revert "[SCEV] Make computeExitLimit more simple and more powerful" 2018-04-26 02:07:40 +00:00
LoopSimplifyCFG
LoopStrengthReduce Revert "[PowerPC] LSR tunings for PowerPC" 2018-03-09 16:08:55 +00:00
LoopUnroll [LoopUnroll] Only peel if a predicate becomes known in the loop body. 2018-04-18 12:29:24 +00:00
LoopUnswitch [NFC] Use FileCheck in test 2018-04-24 04:42:37 +00:00
LoopVectorize [LV][VPlan] Detect outer loops for explicit vectorization. 2018-04-24 17:04:17 +00:00
LoopVersioning
LoopVersioningLICM
LowerAtomic
LowerExpectIntrinsic
LowerGuardIntrinsic
LowerInvoke
LowerSwitch
LowerTypeTests [LowerTypeTests] Mark .cfi.jumptable nounwind. 2018-04-27 00:32:24 +00:00
Mem2Reg [Mem2Reg] Create merged debug locations for inserted phis 2018-04-17 22:03:08 +00:00
MemCpyOpt [MemCpyOpt] Skip optimizing basic blocks not reachable from entry 2018-04-23 19:55:04 +00:00
MergeFunc Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1) 2018-01-19 17:13:12 +00:00
MergeICmps [MergeICmp] Split blocks that do other work. 2018-04-09 13:14:06 +00:00
MetaRenamer Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1) 2018-01-19 17:13:12 +00:00
NameAnonGlobals
NaryReassociate Add early exit on reassociation of 0 expression. 2018-03-07 02:17:08 +00:00
NewGVN [NewGVN] Split OpPHI detection and creation. 2018-04-20 16:37:13 +00:00
ObjCARC [ObjCARC] Account for funclet token in storeStrong transform 2018-04-20 22:11:03 +00:00
PartiallyInlineLibCalls
PGOProfile [ICP] Do not attempt type matching for variable length arguments. 2018-04-25 17:19:21 +00:00
PhaseOrdering Adding a width of the GEP index to the Data Layout. 2018-02-14 06:58:08 +00:00
PlaceSafepoints Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1) 2018-01-19 17:13:12 +00:00
PreISelIntrinsicLowering
PruneEH [PM][FunctionAttrs] add NoUnwind attribute inference to PostOrderFunctionAttrs pass 2018-03-23 21:46:16 +00:00
Reassociate [Reassociate] add a test with debug info; NFC 2018-04-27 21:14:15 +00:00
Reg2Mem
RewriteStatepointsForGC [RewriteStatepoints] Fix stale parse points 2018-03-05 22:27:30 +00:00
SafeStack [SafeStack] Use updated CreateMemCpy API to set more accurate source and destination alignments. 2018-02-12 22:39:47 +00:00
SampleProfile
Scalarizer
SCCP Revert r328307: [IPSCCP] Use constant range information for comparisons of parameters. 2018-03-23 12:49:39 +00:00
SeparateConstOffsetFromGEP [AMDGPU] Change constant addr space to 4 2018-02-13 18:00:25 +00:00
SimpleLoopUnswitch [PM/LoopUnswitch] Fix a bug in the loop block set formation of the new 2018-04-24 10:33:08 +00:00
SimplifyCFG [RISCV] Implement isTruncateFree 2018-04-26 13:37:00 +00:00
Sink [Sink] Really really fix predicate in legality check 2018-01-11 21:28:57 +00:00
SLPVectorizer [NVPTX] Turn on Loop/SLP vectorization 2018-04-27 13:36:05 +00:00
SpeculateAroundPHIs
SpeculativeExecution
SROA [SROA] Take advantage of separate alignments for memcpy source and destination 2018-03-13 14:25:33 +00:00
StraightLineStrengthReduce
StripDeadPrototypes
StripSymbols
StructurizeCFG StructurizeCFG: Test for branch divergence correctly 2018-04-04 10:58:15 +00:00
SyntheticCountsPropagation
TailCallElim
ThinLTOBitcodeWriter Fix build failures for r330387 on buildbots that don't build the X86 target 2018-04-20 02:26:12 +00:00
Util LowerDbgDeclare: ignore dbg.declares for allocas with volatile access 2018-03-09 00:45:04 +00:00
WholeProgramDevirt Runtime flag to control branch funnel threshold 2018-04-06 21:32:36 +00:00