llvm-project/llvm/test/Transforms
David Green 46529978bf [ARM] Always use reductions intrinsics under MVE
Similar to a recent change to the X86 backend, this changes things so
that we always produce a reduction intrinsics for all reduction types,
not just the legal ones. This gives a better chance in the backend to
custom lower them to something more suitable for MVE. Especially for
something like fadd the in-order reduction produced during DAG lowering
is already better than the shuffles produced in the midend, and we can
do even better with a bit of custom lowering.

Differential Revision: https://reviews.llvm.org/D81398
2020-06-12 19:21:17 +01:00
..
ADCE [ADCE] Fix incorrect reporting of CFG changes 2020-04-14 20:26:13 +07:00
AddDiscriminators
AggressiveInstCombine [AggressiveInstCombine] Add test with baseline CHECKs for aggressive inst combine for ICmp instruction. 2020-02-12 15:09:38 +02:00
AlignmentFromAssumptions [AlignmentFromAssumptions] Fix a SCEV assertion resulting from address space differences. 2020-03-29 01:26:31 -05:00
ArgumentPromotion AllocaInst should store Align instead of MaybeAlign. 2020-05-16 14:53:16 -07:00
AtomicExpand Handle part-word LL/SC in atomic expansion pass 2020-04-28 10:07:39 -05:00
Attributor Reland [X86] Codegen for preallocated 2020-05-20 11:25:44 -07:00
BDCE
BlockExtractor Revert "Revert "Reland "[Support] make report_fatal_error `abort` instead of `exit`""" 2020-02-13 10:16:06 -08:00
BranchFolding
CallSiteSplitting [llvm] Fix missing FileCheck directive colons 2020-04-06 09:59:08 -06:00
CalledValuePropagation
CanonicalizeAliases
CanonicalizeFreezeInLoops [TargetPassConfig] Add CanonicalizeFreezeInLoops before LSR 2020-05-28 05:21:12 +09:00
CodeExtractor [CodeExtractor] Fix extraction of a value used only by intrinsics outside of region 2020-04-25 11:44:47 +03:00
CodeGenPrepare [IR] Remove assert from ShuffleVectorInst 2020-06-11 14:52:17 +01:00
ConstProp [ConstProp] Add test for bitcast to gep fold; NFC 2020-03-04 18:27:20 +01:00
ConstantHoisting
ConstantMerge
Coroutines CoroSplit: Fix coroutine splitting for retcon and retcon.once 2020-06-03 12:10:58 -07:00
CorrelatedValuePropagation StoreInst should store Align, not MaybeAlign 2020-05-15 12:26:58 -07:00
CrossDSOCFI
DCE Infer alignment of unmarked loads in IR/bitcode parsing. 2020-05-14 13:03:50 -07:00
DeadArgElim Preserve DbgLoc when DeadArgumentElimination rewrites a 'ret'. 2020-05-29 10:00:33 -07:00
DeadStoreElimination [DSE,MSSA] Relax post-dom restriction for objs visible after return. 2020-06-10 10:39:25 +01:00
DivRemPairs [ValueTracking] Fix crash in isGuaranteedNotToBeUndefOrPoison when V is in an unreachable block 2020-05-13 10:16:47 +09:00
EarlyCSE [Tests] Migrate a number of tests to gc-live bundle representation 2020-06-05 16:44:04 -07:00
EliminateAvailableExternally
EntryExitInstrumenter [llvm] Fix missing FileCheck directive colons 2020-04-06 09:59:08 -06:00
ExpandMemCmp [ExpandMemCmp] Allow overlaping loads in the zero-relational case. 2020-04-02 11:20:47 +02:00
FixIrreducible FixIrreducible: don't crash when moving a child loop 2020-04-22 07:47:30 +05:30
Float2Int
ForcedFunctionAttrs
FunctionAttrs Reland [X86] Codegen for preallocated 2020-05-20 11:25:44 -07:00
FunctionImport Revert "Revert "Reland "[Support] make report_fatal_error `abort` instead of `exit`""" 2020-02-13 10:16:06 -08:00
GCOVProfiling [gcov][test] Add mkdir -p %t && cd %t 2020-06-09 11:09:50 -07:00
GVN [BreakCritEdges] Add option to opt-out of perserving loop-simplify. 2020-06-12 11:47:13 +01:00
GVNHoist
GVNSink Fix another instance where a variable was renamed in the generated LLVM IR. [NFC] 2020-03-23 22:53:29 -07:00
GlobalDCE
GlobalMerge
GlobalOpt Reland [X86] Codegen for preallocated 2020-05-20 11:25:44 -07:00
GlobalSplit
GuardWidening [llvm] Fix missing FileCheck directive colons 2020-04-06 09:59:08 -06:00
HardwareLoops [HardwareLoops] llvm.loop.decrement.reg definition 2020-05-21 10:48:16 +01:00
HotColdSplit [HotColdSplit] Mark entire function cold when entry block is cold 2020-02-17 15:57:50 -08:00
IPConstantProp [IR] Convert null-pointer-is-valid into an enum attribute 2020-05-15 19:41:07 +02:00
IRCE Infer alignment of unmarked loads in IR/bitcode parsing. 2020-05-14 13:03:50 -07:00
IndVarSimplify [IndVarSimplify][LoopUtils] Avoid TOCTOU/ordering issues (PR45835) 2020-05-21 13:05:55 +03:00
IndirectBrExpand
InferAddressSpaces AMDGPU: Handle rewriting ptrmask for more address spaces 2020-05-28 14:35:15 -04:00
InferFunctionAttrs [llvm] Fix missing FileCheck directive colons 2020-04-06 09:59:08 -06:00
Inline [InlineCost] Preparational patch for creation of Printer pass. 2020-06-11 22:29:03 +00:00
InstCombine [InstCombine] "X - (X / C) * C == 0" to "X & C-1 == 0" 2020-06-12 10:20:06 +03:00
InstMerge
InstNamer [InstNamer] use 'i' for Instructions, not 'tmp' 2020-06-01 11:11:14 -04:00
InstSimplify [InstSimplify] fix bug in matching or-with-not op (PR46083) 2020-06-03 13:44:29 -04:00
InterleavedAccess [Alignment] Fix misaligned interleaved loads 2020-05-27 12:12:22 +00:00
Internalize
JumpThreading Infer alignment of unmarked loads in IR/bitcode parsing. 2020-05-14 13:03:50 -07:00
LCSSA
LICM [FPEnv] Intrinsic llvm.roundeven 2020-05-26 19:24:58 +07:00
LoadStoreVectorizer LoadStoreVectorizer: Match nested adds to prove vectorization is safe 2020-05-18 12:13:01 -07:00
LoopDataPrefetch
LoopDeletion
LoopDistribute
LoopFusion [LoopFusion] Update second loop guard non loop successor phis incoming 2020-06-09 21:14:51 +00:00
LoopIdiom StoreInst should store Align, not MaybeAlign 2020-05-15 12:26:58 -07:00
LoopInstSimplify
LoopInterchange [llvm] Fix yet more missing FileCheck colons 2020-04-13 10:49:19 -06:00
LoopLoadElim [LoopLoadElim] Fix crash by always checking simplify form 2020-04-10 09:23:28 +07:00
LoopPredication
LoopReroll [LoopReroll] Fix rerolling loop with use outside the loop 2020-05-13 13:03:03 +09:00
LoopRotate [LoopRotate] Cleanup test checks to fix issue reported on D77354 2020-04-03 17:21:37 +01:00
LoopSimplify [LoopSimplify] don't separate nested loops with convergent calls 2020-05-19 09:22:39 +05:30
LoopSimplifyCFG
LoopStrengthReduce [NFC] Move test vscale-factor-out-constant.ll to AArch64 sub-directory. 2020-06-04 12:55:28 -07:00
LoopTransformWarning
LoopUnroll [AMDGPU] Increase max iterations count to analyze complete unroll 2020-06-06 16:32:45 +03:00
LoopUnrollAndJam [UnJ] Update LI for inner nested loops 2020-05-27 14:36:38 +01:00
LoopUnswitch
LoopVectorize [ARM] Always use reductions intrinsics under MVE 2020-06-12 19:21:17 +01:00
LoopVersioning [IR] Convert null-pointer-is-valid into an enum attribute 2020-05-15 19:41:07 +02:00
LoopVersioningLICM
LowerAtomic
LowerConstantIntrinsics
LowerExpectIntrinsic
LowerGuardIntrinsic
LowerInvoke
LowerMatrixIntrinsics [Matrix] Update check lines for strided intrinsics (NFC). 2020-06-09 15:51:00 +01:00
LowerSwitch
LowerTypeTests
LowerWidenableCondition
MakeGuardsExplicit
Mem2Reg
MemCpyOpt Infer alignment of unmarked loads in IR/bitcode parsing. 2020-05-14 13:03:50 -07:00
MergeFunc Infer alignment of unmarked loads in IR/bitcode parsing. 2020-05-14 13:03:50 -07:00
MergeICmps
MetaRenamer
NameAnonGlobals
NaryReassociate
NewGVN [NewGVN] Add test to ensure metadata is preserved for ssa_copy (NFC) 2020-06-03 19:30:03 +01:00
ObjCARC [ObjC][ARC] Don't remove autoreleaseRV/retainRV pairs if the call isn't 2020-03-13 13:52:14 -07:00
OpenMP [OpenMP] Replace Clang's OpenMP RTL Definitions with OMPKinds.def 2020-06-01 16:23:10 -04:00
PGOProfile [IR] Clean up dead instructions after simplifying a conditional branch 2020-06-11 14:53:01 +01:00
PartiallyInlineLibCalls
PhaseOrdering [VectorCombine] scalarizeBinop - support an all-constant src vector operand 2020-06-09 19:02:05 +01:00
PlaceSafepoints
PreISelIntrinsicLowering
PruneEH
Reassociate [Reassociate] Teach ConvertShiftToMul to preserve nsw flag if the shift amount is not bitwidth - 1. 2020-06-04 14:51:34 -07:00
Reg2Mem
RewriteStatepointsForGC [Statepoint] Switch RS4GC to using gc-live bundle form 2020-06-04 15:49:11 -07:00
SCCP [SCCP] Switch to widen at PHIs, stores and call edges. 2020-05-29 11:59:17 +01:00
SLPVectorizer [x86] form reduction intrinsics from vectorizers instead of raw IR 2020-06-05 12:38:49 -04:00
SROA Fixed assertion in SROA if block has ho successors 2020-06-11 15:15:19 -07:00
SafeStack [Instruction] Set metadata uses to undef on deletion 2020-05-21 15:58:12 -07:00
SampleProfile [gcov] Delete XFAIL: host-byteorder-big-endian 2020-06-03 19:58:28 -07:00
ScalarizeMaskedMemIntrin/X86
Scalarizer [Scalarizer] Fix a non-deterministic scatter order problem 2020-04-20 16:05:33 +02:00
SeparateConstOffsetFromGEP Infer alignment of unmarked loads in IR/bitcode parsing. 2020-05-14 13:03:50 -07:00
SimpleLoopUnswitch [SimpleLoopUnswitch] Drop uses of instructions before block deletion 2020-05-27 18:25:18 +07:00
SimplifyCFG Correctly update Changed status for SimplifyCFG 2020-06-10 16:54:15 +02:00
Sink
SpeculateAroundPHIs [NFC] Update tests 2020-05-05 15:28:40 +01:00
SpeculativeExecution
StraightLineStrengthReduce
StripDeadPrototypes
StripSymbols
StructurizeCFG [StructurizeCFG] Fix region nodes ordering 2020-06-01 12:50:35 +03:00
SyntheticCountsPropagation
TailCallElim [TRE] Allow accumulator elimination when base case returns non-constant 2020-06-04 10:34:42 -07:00
ThinLTOBitcodeWriter ThinLTOBitcodeWriter: drop dso_local when a GlobalVariable is converted to a declaration 2020-03-05 18:09:33 -08:00
TypePromotion/ARM
UnifyLoopExits Introduce unify-loop-exits pass. 2020-03-30 13:23:56 -04:00
UniqueInternalLinkageNames New pass to make internal linkage symbol names unique. 2020-04-20 15:05:22 -07:00
Util [Tests] Migrate a number of tests to gc-live bundle representation 2020-06-05 16:44:04 -07:00
VectorCombine/X86 [VectorCombine] add tests for compare scalarization; NFC 2020-06-11 12:29:00 -04:00
WholeProgramDevirt [WPD] Avoid noalias assumptions in unique return value optimization 2020-04-16 14:49:51 -07:00