1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 19:23:23 +01:00
llvm-mirror/test/Transforms
Sanjay Patel 244e402b5c [InstCombine] reassociate splatted vector ops
bo (splat X), (bo Y, OtherOp) --> bo (splat (bo X, Y)), OtherOp

This patch depends on the splat analysis enhancement in D73549.
See the test with comment:
; Negative test - mismatched splat elements
...as the motivation for that first patch.

The motivating case for reassociating splatted ops is shown in PR42174:
https://bugs.llvm.org/show_bug.cgi?id=42174

In that example, a slight change in order-of-associative math results
in a big difference in IR and codegen. This patch gets all of the
unnecessary shuffles out of the way, but doesn't address the potential
scalarization (see D50992 or D73480 for that).

Differential Revision: https://reviews.llvm.org/D73703
2020-02-03 09:08:36 -05:00
..
ADCE Migrate function attribute "no-frame-pointer-elim" to "frame-pointer"="all" as cleanups after D56351 2019-12-24 15:57:33 -08:00
AddDiscriminators Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351 2019-12-24 16:27:51 -08:00
AggressiveInstCombine
AlignmentFromAssumptions
ArgumentPromotion [ArgPromo][Tests] Run update_test_checks on all ArgumentPromotion tests 2019-12-14 00:29:38 -06:00
AtomicExpand AMDGPU: Fix copy-pasted test name error 2019-12-11 19:44:47 +05:30
Attributor [Attributor] AANoRecurse check all call sites for norecurse 2020-02-02 23:57:17 -06:00
BDCE Clang-trunk Generates Wrong Debug values with -O1 2019-11-21 13:53:10 -08:00
BlockExtractor Revert "[Support] make report_fatal_error abort instead of exit" 2020-01-15 17:52:25 -08:00
BranchFolding
CalledValuePropagation
CallSiteSplitting
CanonicalizeAliases
CodeExtractor [CodeExtractor] Remove stale llvm.assume calls from extracted region 2020-01-28 17:18:01 -08:00
CodeGenPrepare [test] More tests to target specific directories after CodeGenPrepare requires TargetPassConfig (D73754) 2020-02-02 10:43:02 -08:00
ConstantHoisting Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351 2019-12-24 16:27:51 -08:00
ConstantMerge
ConstProp Fix tests of constant folding of fp operations on NaN values 2020-01-21 21:48:07 +02:00
Coroutines [Coroutines] Remove corresponding phi values when apply simplifyTerminatorLeadingToRet 2020-01-05 18:26:30 -05:00
CorrelatedValuePropagation [llvm] Fix broken cases of 'CHECK[^:]*$' in tests 2020-01-28 09:52:59 -07:00
CrossDSOCFI
DCE [BasicBlockUtils] Add utility to remove redundant dbg.value instrs 2019-12-16 11:41:21 +01:00
DeadArgElim [NFC] Fix trivial typos in comments 2020-01-06 10:50:26 +00:00
DeadStoreElimination [IR] Mark memset.* intrinsics as IntrWriteMem. 2020-01-16 10:35:46 +00:00
DivRemPairs
EarlyCSE Move target tests to target subdirectories 2020-01-31 15:27:18 -08:00
EliminateAvailableExternally
EntryExitInstrumenter
ExpandMemCmp
Float2Int
ForcedFunctionAttrs
FunctionAttrs [Attributor] Copy or port test cases related to Attributor to Attributor test folder 2019-12-02 15:36:29 +00:00
FunctionImport Revert "[Support] make report_fatal_error abort instead of exit" 2020-01-15 17:52:25 -08:00
GCOVProfiling Revert "[Support] make report_fatal_error abort instead of exit" 2020-01-15 17:52:25 -08:00
GlobalDCE [WPD/VFE] Always emit vcall_visibility metadata for -fwhole-program-vtables 2020-01-23 11:36:01 -08:00
GlobalMerge
GlobalOpt [Transforms][GlobalSRA] huge array causes long compilation time and huge memory usage. 2020-01-04 16:42:38 +03:00
GlobalSplit [WPD/VFE] Always emit vcall_visibility metadata for -fwhole-program-vtables 2020-01-23 11:36:01 -08:00
GuardWidening Broaden the definition of a "widenable branch" 2019-11-21 10:46:16 -08:00
GVN [GVN] add GVN parameters parsing to new pass manager 2020-01-16 23:53:46 +03:00
GVNHoist Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351 2019-12-24 16:27:51 -08:00
GVNSink
HardwareLoops
HotColdSplit [CodeExtractor] Remove stale llvm.assume calls from extracted region 2020-01-28 17:18:01 -08:00
IndirectBrExpand
IndVarSimplify [NFC][IndVarSimplify] Autogenerate exit_value_test2.ll check lines 2020-01-30 20:11:02 +03:00
InferAddressSpaces
InferFunctionAttrs [Attributor] Copy or port test cases related to Attributor to Attributor test folder 2019-12-02 15:36:29 +00:00
Inline [Inliner][NoAlias] Use call site attributes too 2020-02-02 23:21:29 -06:00
InstCombine [InstCombine] reassociate splatted vector ops 2020-02-03 09:08:36 -05:00
InstMerge
InstNamer
InstSimplify Fix tests of constant folding of fp operations on NaN values 2020-01-21 21:48:07 +02:00
InterleavedAccess [ARM] Disable VLD4 under MVE 2019-12-08 10:37:29 +00:00
Internalize
IPConstantProp [Attributor][FIX] Try to resolve non-determinism problem for now 2020-02-03 00:47:29 -06:00
IRCE [SCEV] get more accurate range for AddExpr with wrap flag. 2020-01-07 20:58:04 -05:00
JumpThreading [JumpThreading] Half the duplicate threshold at Oz 2020-02-03 08:40:20 +00:00
LCSSA [SSAUpdater] Don't call ValueIsRAUWd upon single use replacement 2020-01-23 15:53:53 +07:00
LICM Migrate function attribute "no-frame-pointer-elim" to "frame-pointer"="all" as cleanups after D56351 2019-12-24 15:57:33 -08:00
LoadStoreVectorizer
LoopDataPrefetch
LoopDeletion
LoopDistribute
LoopFusion [LoopFusion] Move instructions from FC1.GuardBlock to FC0.GuardBlock and 2020-01-30 18:02:22 +00:00
LoopIdiom
LoopInstSimplify
LoopInterchange [LoopInterchange] Improve inner exit loop safety checks. 2019-12-04 17:46:01 +00:00
LoopLoadElim
LoopPredication [BasicBlock] fix looping in getPostdominatingDeoptimizeCall 2020-01-17 15:40:02 +03:00
LoopReroll Migrate function attribute "no-frame-pointer-elim" to "frame-pointer"="all" as cleanups after D56351 2019-12-24 15:57:33 -08:00
LoopRotate [LoopRotate] add ability to repeat loop rotation until non-deoptimizing exit is found 2020-01-23 15:56:24 +03:00
LoopSimplify [LoopSimplify] Regenerate test checks; NFC 2020-01-11 11:02:24 +01:00
LoopSimplifyCFG
LoopStrengthReduce Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351 2019-12-24 16:27:51 -08:00
LoopTransformWarning
LoopUnroll [LoopUnroll] Avoid UB when converting from WeakVH to Value * 2020-01-23 10:36:39 -08:00
LoopUnrollAndJam [llvm] Make new pass manager's OptimizationLevel a class 2020-01-16 09:00:56 -08:00
LoopUnswitch
LoopVectorize [InstCombine] reassociate splatted vector ops 2020-02-03 09:08:36 -05:00
LoopVersioning
LoopVersioningLICM
LowerAtomic
LowerConstantIntrinsics
LowerExpectIntrinsic
LowerGuardIntrinsic
LowerInvoke
LowerMatrixIntrinsics [Matrix] Mark expressions shared between multiple remarks. 2020-01-28 09:27:55 -08:00
LowerSwitch
LowerTypeTests
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 [NewPM] Port MergeFunctions pass 2020-01-14 20:55:41 +01:00
MergeICmps Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351 2019-12-24 16:27:51 -08:00
MetaRenamer
NameAnonGlobals
NaryReassociate
NewGVN Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351 2019-12-24 16:27:51 -08:00
ObjCARC [IR] Mark memset.* intrinsics as IntrWriteMem. 2020-01-16 10:35:46 +00:00
PartiallyInlineLibCalls
PGOProfile [PGO] Attach appropriate funclet operand bundles to value profiling instrumentation calls 2020-01-24 11:20:53 -08:00
PhaseOrdering Reland [DataLayout] Fix occurrences that size and range of pointers are assumed to be the same. 2019-12-13 14:30:21 +00:00
PlaceSafepoints
PreISelIntrinsicLowering [ObjC] Override TailCallKind when lowering objc intrinsics 2019-11-11 08:30:06 -08:00
PruneEH
Reassociate [InstCombine] convert fsub nsz with fneg operand to -(X + Y) 2020-01-27 14:49:15 -05:00
Reg2Mem
RewriteStatepointsForGC
SafeStack Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351 2019-12-24 16:27:51 -08:00
SampleProfile [test] More tests to target specific directories after CodeGenPrepare requires TargetPassConfig (D73754) 2020-02-02 10:43:02 -08:00
ScalarizeMaskedMemIntrin/X86
Scalarizer Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351 2019-12-24 16:27:51 -08:00
SCCP [IPSCCP] Use ParamState for arguments at call sites. 2020-01-23 13:55:42 -08:00
SeparateConstOffsetFromGEP [SeparateConstOffsetFromGEP] Fix: sext(a) + sext(b) -> sext(a + b) matches add and sub instructions with one another 2020-01-17 12:22:52 -05:00
SimpleLoopUnswitch [SimpleLoopUnswitch] Invalidate the topmost loop with ExitBB as exiting. 2019-12-04 11:32:09 +00:00
SimplifyCFG [InstCombine] Update SimplifyCFG test 2020-01-30 10:11:42 +01:00
Sink
SLPVectorizer [PATCH] D73727: [SLP] drop poison-generating flags for shuffle reduction ops (PR44536) 2020-01-31 09:54:35 -05:00
SpeculateAroundPHIs
SpeculativeExecution
SROA [Metadata] Add TBAA struct metadata to AAMDNode 2020-01-06 11:05:15 +03:00
StraightLineStrengthReduce Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351 2019-12-24 16:27:51 -08:00
StripDeadPrototypes
StripSymbols
StructurizeCFG AMDGPU: Update more tests to use modern buffer intrinsics 2020-01-16 14:29:38 -05:00
SyntheticCountsPropagation
TailCallElim
ThinLTOBitcodeWriter
TypePromotion/ARM Revert "[ARM][TypePromotion] Enable by default" 2019-12-22 11:27:11 -08:00
Util Build assume from call 2020-02-02 19:43:36 +01:00
WholeProgramDevirt Restore "[LTO/WPD] Enable aggressive WPD under LTO option" 2020-01-27 07:55:05 -08:00