llvm-project/llvm/test/Transforms
Matt Arsenault 841a0edd03 ConstantFolding: Constant fold some canonicalizes
+/-0 is obviously foldable. Other non-special, non-subnormal
values are also probably OK. For denormal values, check
the calling function's denormal mode. For now, don't fold
denormals to the input for IEEE mode because as far as I know
the langref is still pretending LLVM's float isn't IEEE.

Also folds undef to 0, although NaN may make more sense. Skips
folding nans and infinities, although it should be OK to fold those
in a future change.
2022-11-18 10:35:19 -08:00
..
ADCE [ADCE] Update tests to use opaque pointers (NFC) 2022-06-22 12:26:12 +02:00
AddDiscriminators [AddDiscriminators] Migrate tests to opaque pointers (NFC) 2022-06-22 12:47:12 +02:00
AggressiveInstCombine [AggressiveInstCombine] Avoid load merge/widen if stores are present b/w loads 2022-11-03 14:32:07 +00:00
AlignmentFromAssumptions [AlignmentFromAssumptions] Migrate tests to opaque pointers (NFC) 2022-06-22 13:57:47 +02:00
ArgumentPromotion [ArgPromotion] Transfer metadata nontemporal to promoted loads 2022-07-26 16:30:08 +08:00
AtomicExpand [LoongArch] Expand atomicrmw fadd/fsub/fmin/fmax with CmpXChg 2022-11-14 10:11:37 +08:00
Attributor [AAPointerInfo] refactor how offsets and Access objects are tracked 2022-11-15 18:52:11 +05:30
BDCE
BlockExtractor [IR] Enable opaque pointers by default 2022-06-02 09:40:56 +02:00
BranchFolding
CallSiteSplitting [IR] Don't use blockaddresses as callbr arguments 2022-07-15 10:18:17 +02:00
CalledValuePropagation
CanonicalizeAliases [LegacyPM] Remove LTO passes from optimization pipeline 2022-07-17 14:24:36 -07:00
CanonicalizeFreezeInLoops Use opt -passes=<name> instead of opt -name 2022-11-08 12:15:42 +01:00
CodeExtractor [opt] Remove temporary legacy pass name translations 2022-10-07 11:09:46 -07:00
CodeGenPrepare [SimplifyLibCalls] Retain attributes added by Builder.CreateMem* 2022-10-04 13:11:34 +00:00
ConstantHoisting [test] Update some legacy PM tests 2022-09-30 11:31:02 -07:00
ConstantMerge
ConstraintElimination [ConstraintElimination] Make decompose() infallible 2022-11-14 10:42:04 +01:00
Coroutines [Coroutines] Handle the writes to promise alloca prior to 2022-11-18 15:39:39 +08:00
CorrelatedValuePropagation [CVP] Simplify comparisons without constant operand 2022-11-03 15:35:27 +01:00
CrossDSOCFI
DCE [DCE] Update tests to use opaque pointers (NFC) 2022-06-10 17:31:35 +02:00
DFAJumpThreading [NFC] Switch a few uses of undef to poison as placeholders for unreachble code 2022-07-03 14:34:03 +01:00
DeadArgElim [IR] Switch everything to use memory attribute 2022-11-04 10:21:38 +01:00
DeadStoreElimination [test] Use -passes in more Transforms tests 2022-10-21 17:02:02 +02:00
DivRemPairs
EarlyCSE Use opt -passes=<name> instead of opt -name 2022-11-08 12:15:42 +01:00
EliminateAvailableExternally
EntryExitInstrumenter
ExpandMemCmp [test][ExpandMemCmp] Convert test cases to opaque pointers. NFC 2022-10-07 15:29:32 +02:00
FixIrreducible [BasicBlockUtils] Add a new way for CreateControlFlowHub() 2022-10-31 08:58:54 -05:00
Float2Int
ForcedFunctionAttrs
FunctionAttrs [IR] Switch everything to use memory attribute 2022-11-04 10:21:38 +01:00
FunctionImport [test] Change -function-import tests to use -passes= 2022-07-17 21:43:00 -07:00
FunctionSpecialization [FuncSpec] Do not overestimate the specialization bonus for users inside loops. 2022-10-27 15:26:11 +01:00
GCOVProfiling [InstrProf] Add the skipprofile attribute 2022-08-04 08:45:27 -07:00
GVN [GVN] Patch for invalid GVN replacement 2022-11-04 14:28:17 +01:00
GVNHoist [opt] Remove temporary legacy pass name translations 2022-10-07 11:09:46 -07:00
GVNSink Revert "[SimplifyCFG] Thread branches on same condition in more cases (PR54980)" 2022-07-05 16:57:46 +02:00
GlobalDCE
GlobalMerge Fix the eh-filter.ll test. 2022-06-29 16:14:41 -05:00
GlobalOpt [IR] Switch everything to use memory attribute 2022-11-04 10:21:38 +01:00
GlobalSplit
GuardWidening [GuardWidening] Add tests showing incorrect behavior of GW. 2022-06-29 13:41:59 +07:00
HardwareLoops
HelloNew
HotColdSplit [IR] Enable opaque pointers by default 2022-06-02 09:40:56 +02:00
IRCE [IRCE] Bail out if AddRec in icmp is for another loop (PR58912) 2022-11-14 15:06:13 +07:00
IROutliner [IR] Don't use blockaddresses as callbr arguments 2022-07-15 10:18:17 +02:00
IndVarSimplify [IndVars] Forget the SCEV when the instruction has been sunk. 2022-11-06 22:46:49 +08:00
IndirectBrExpand
InferAddressSpaces [Sink] Process basic blocks with a single successor 2022-11-18 01:23:12 +00:00
InferFunctionAttrs [IR] Switch everything to use memory attribute 2022-11-04 10:21:38 +01:00
Inline Fix inliner test after e3cd498ff7 2022-11-18 12:28:15 +00:00
InstCombine AMDGPU: Add some baseline tests for llvm.amdgcn.trig.preop folding 2022-11-18 09:14:19 -08:00
InstMerge [opt] Don't translate legacy -analysis flag to require<analysis> 2022-10-07 14:54:34 -07:00
InstNamer Use opt -passes=<name> instead of opt -name 2022-11-08 12:15:42 +01:00
InstSimplify ConstantFolding: Constant fold some canonicalizes 2022-11-18 10:35:19 -08:00
InterleavedAccess [IR] Move vector.insert/vector.extract out of experimental namespace 2022-06-27 10:48:45 +00:00
Internalize [Internalize] Support glob patterns for API lists 2022-07-22 08:24:32 -04:00
JumpThreading Revert "[JT] Preserve exisiting BPI/BFI during JumpThreading" 2022-11-17 17:11:47 +07:00
LCSSA [LCSSA] Update unreachable uses with poison. 2022-09-04 22:26:18 +01:00
LICM [IR] Switch everything to use memory attribute 2022-11-04 10:21:38 +01:00
LoadStoreVectorizer [opt] Don't translate legacy -analysis flag to require<analysis> 2022-10-07 14:54:34 -07:00
LoopBoundSplit
LoopDataPrefetch [LoopDataPrefetch] Fix crash when TTI doesn't set CacheLineSize 2022-07-26 13:08:42 +08:00
LoopDeletion [Loop] Move block and loop dispo invalidation to makeLoopInvariant. 2022-10-14 21:58:14 +01:00
LoopDistribute [opt] Don't translate legacy -analysis flag to require<analysis> 2022-10-07 14:54:34 -07:00
LoopFlatten [LoopFlatten] Forget all block and loop dispositions after flatten 2022-11-14 10:19:11 +08:00
LoopFusion [LoopFuse] Ensure inner loops are in loop simplified form under new PM 2022-11-11 15:55:59 -05:00
LoopIdiom [opt] Don't translate legacy -analysis flag to require<analysis> 2022-10-07 14:54:34 -07:00
LoopInstSimplify
LoopInterchange [LoopInterchange] Check phis in all subloops 2022-11-04 00:20:52 -04:00
LoopLoadElim [opt] Don't translate legacy -analysis flag to require<analysis> 2022-10-07 14:54:34 -07:00
LoopPredication [Test] Add tests with range checks with known constant ranges 2022-11-08 18:54:43 +07:00
LoopReroll [test] Use -passes in more Transforms tests 2022-10-21 17:02:02 +02:00
LoopRotate [LoopRotate] Drop loop dispositions when rotating loops. PR56260 2022-09-19 18:01:02 +07:00
LoopSimplify [opt] Don't translate legacy -analysis flag to require<analysis> 2022-10-07 14:54:34 -07:00
LoopSimplifyCFG [LoopSimplifyCFG] Forget loop and block dispos after merging blocks. 2022-10-20 11:23:29 +01:00
LoopStrengthReduce [LSR] Check if terminating value is safe to expand before transformation 2022-11-15 14:56:47 -08:00
LoopTransformWarning [test] Use new pass manager syntax in some tests 2022-10-23 13:44:20 -07:00
LoopUnroll [LoopPeeling] Add flag to disable support for peeling loops with non-latch exits 2022-10-25 12:19:14 -07:00
LoopUnrollAndJam [opt] Don't translate legacy -analysis flag to require<analysis> 2022-10-07 14:54:34 -07:00
LoopVectorize [ARM] Add an extra test for low trip count MVE vectorization. NFC 2022-11-17 15:07:28 +00:00
LoopVersioning [opt] Don't translate legacy -analysis flag to require<analysis> 2022-10-07 14:54:34 -07:00
LoopVersioningLICM [NFC][1/n] Remove -enable-new-pm=0 flags from lit tests 2022-09-19 09:57:37 -07:00
LowerAtomic [NFC] Switch a few uses of undef to poison as placeholders for unreachable code 2022-07-23 21:50:11 +01:00
LowerConstantIntrinsics tests: add attributes that would normally come from inferattrs 2022-07-25 17:29:00 -04:00
LowerExpectIntrinsic
LowerGlobalDestructors
LowerGuardIntrinsic
LowerInvoke
LowerMatrixIntrinsics [IR] Switch everything to use memory attribute 2022-11-04 10:21:38 +01:00
LowerSwitch
LowerTypeTests [test] Change -lowertypetests tests to -passes= 2022-07-17 15:03:46 -07:00
LowerWidenableCondition
MakeGuardsExplicit
Mem2Reg [test] Use -passes in more Transforms tests 2022-10-21 17:02:02 +02:00
MemCpyOpt [MemCpyOpt] Avoid moving lifetime marker above def (PR58903) 2022-11-11 15:06:34 +01:00
MergeFunc [llvm] Handle dso_local_equivalent in FunctionComparator 2022-09-22 18:42:31 +00:00
MergeICmps
MetaRenamer
NameAnonGlobals [LegacyPM] Remove LTO passes from optimization pipeline 2022-07-17 14:24:36 -07:00
NaryReassociate
NewGVN [opt] Don't translate legacy -analysis flag to require<analysis> 2022-10-07 14:54:34 -07:00
ObjCARC [ObjC][ARC] Fix non-deterministic behavior in ProvenanceAnalysis 2022-11-08 15:05:25 -08:00
OpenMP [IR] Switch everything to use memory attribute 2022-11-04 10:21:38 +01:00
PGOProfile Revert "[pgo] Avoid introducing relocations by using private alias" 2022-11-16 03:38:14 +00:00
PartialInlining
PartiallyInlineLibCalls
PhaseOrdering [Pipelines] Introduce SROA after (final, run-time) loop unrolling 2022-11-17 21:31:30 +03:00
PlaceSafepoints Revert "Remove PlaceSafepoints pass" 2022-10-13 07:17:25 -07:00
PreISelIntrinsicLowering
Reassociate [test] Use -passes in more Transforms tests 2022-10-21 17:02:02 +02:00
Reg2Mem [reg2mem] Skip non-sized Instructions (PR58890) 2022-11-14 12:47:39 +01:00
RelLookupTableConverter/X86 [RelLookupTableConverter] Bail on invalid pointer size (x32) 2022-08-09 09:36:39 +02:00
RewriteStatepointsForGC [Statepoint] Use default attributes for some GC intrinsics 2022-11-08 09:27:22 +01:00
SCCP [SCCP] Add tests for with.overflow intrinsics (NFC) 2022-11-09 15:26:04 +01:00
SLPVectorizer [SLP]Fix PR59053: trying to erase instruction with users. 2022-11-17 17:23:48 -08:00
SROA [NFC][SROA] Add more tests with non-speculatable `load`s of `select`s 2022-11-18 00:41:30 +03:00
SafeStack
SampleProfile Run test only on x86_64-linux to fix a build break 2022-11-09 23:06:15 -08:00
ScalarizeMaskedMemIntrin
Scalarizer [test][Scalarizer] Convert test cases to opaque pointers. NFC 2022-10-03 22:37:58 +02:00
SeparateConstOffsetFromGEP [AArch64] Move SeparateConstOffsetFromGEPPass before LSR and enable EnableGEPOpt by default. 2022-07-22 15:20:53 +01:00
SimpleLoopUnswitch [MemorySSA] Relax assert condition in createDefinedAccess 2022-11-17 23:43:20 +08:00
SimplifyCFG [IR] Switch everything to use memory attribute 2022-11-04 10:21:38 +01:00
Sink [Sink] Process basic blocks with a single successor 2022-11-18 01:23:12 +00:00
SpeculativeExecution
StraightLineStrengthReduce
StripDeadPrototypes
StripSymbols [StripDeadDebugInfo] Drop dead CUs 2022-09-11 01:31:03 -07:00
StructurizeCFG [BasicBlockUtils] Add a new way for CreateControlFlowHub() 2022-10-31 08:58:54 -05:00
SyntheticCountsPropagation
TailCallElim KCFI sanitizer 2022-08-24 22:41:38 +00:00
ThinLTOBitcodeWriter
TypePromotion [TypePromotion] Replace Zext to Truncate for the case src bitwidth is larger 2022-11-09 05:08:01 +08:00
UnifyFunctionExitNodes [NFC][1/n] Remove -enable-new-pm=0 flags from lit tests 2022-09-19 09:57:37 -07:00
UnifyLoopExits [BasicBlockUtils] Add a new way for CreateControlFlowHub() 2022-10-31 08:58:54 -05:00
Util [test] Use -passes in more Transforms tests 2022-10-21 17:02:02 +02:00
VectorCombine [VectorCombine] widen a load with subvector insert 2022-11-10 14:11:32 -05:00
WholeProgramDevirt [llvm] Update WPD tests to use opaque pointers 2022-10-11 22:30:24 +00:00