llvm-project/llvm/test/Transforms
Sanjay Patel 598721f866 [InstCombine] try harder to propagate 'nsz' through fneg-of-select
This can be viewed as swapping the select arms:
https://alive2.llvm.org/ce/z/jUvFMJ
...so we don't have the 'nsz' problem with the more general fold.

This unlocks other folds for the motivating fabs example.
This was discussed in issue #38828.
2022-03-15 11:05:29 -04:00
..
ADCE [test] Update some test cases to use -passes when specifying the pipeline 2021-09-29 21:51:08 +02:00
AddDiscriminators [test] Update some test cases to use -passes when specifying the pipeline 2021-09-29 21:51:08 +02:00
AggressiveInstCombine [AggressiveInstCombine] Add `phi` nodes support to `TruncInstCombine` 2022-02-25 07:57:35 +03:00
AlignmentFromAssumptions [test] Update some test cases to use -passes when specifying the pipeline 2021-09-29 21:51:08 +02:00
ArgumentPromotion [ArgPromotion] Regenerate test checks for crash.ll – restored ALL_OLDPM prefix, 2022-02-23 13:39:46 +03:00
AtomicExpand [OpaquePtr][AArch64] Use elementtype on ldxr/stxr 2022-03-14 10:09:59 -07:00
Attributor [Attributor] Remove capture tracker usage and follow uses explicitly 2022-03-11 22:56:16 -06:00
BDCE [test] Update some test cases to use -passes when specifying the pipeline 2021-09-29 21:51:08 +02:00
BlockExtractor
BranchFolding
CallSiteSplitting [llvm][test] rewrite callbr to use i rather than X constraint NFC 2022-01-11 11:31:08 -08:00
CalledValuePropagation [test] Update some test cases to use -passes when specifying the pipeline 2021-09-29 21:51:08 +02:00
CanonicalizeAliases
CanonicalizeFreezeInLoops [AArch64] Make -mcpu=generic schedule for an in-order core 2021-10-09 15:58:31 +01:00
CodeExtractor [PartialInline] Bail out on asm-goto/callbr 2022-01-19 10:57:57 -08:00
CodeGenPrepare Revert "[AArch64] Async unwind - function prologues" 2022-03-04 17:36:26 +01:00
ConstantHoisting [OpaquePtr][AArch64] Use elementtype on ldxr/stxr 2022-03-14 10:09:59 -07:00
ConstantMerge [test] Use -passes syntax when specifying pipeline in some more tests 2021-11-27 09:52:55 +01:00
ConstraintElimination [ConstraintElimination] Remove over-eager assertion. 2022-03-08 22:02:08 +00:00
Coroutines [CoroSplit] Avoid self-replacement 2022-03-14 13:53:31 +01:00
CorrelatedValuePropagation [Transforms] Enhance CorrelatedValuePropagation to handle both values of select 2022-02-23 00:11:20 +04:00
CrossDSOCFI
DCE [test] Update some test cases to use -passes when specifying the pipeline 2021-09-29 21:51:08 +02:00
DFAJumpThreading [DFAJumpThreading] Determinator BB should precede switch-defining BB 2021-12-24 10:27:03 -05:00
DeadArgElim [DeadArgElim] Guard against function type mismatch 2022-03-14 13:03:04 +01:00
DeadStoreElimination [TLI] Check that malloc argument has type size_t 2022-03-14 17:22:24 +01:00
DivRemPairs
EarlyCSE [EarlyCSE][OpaquePtr] Check access type when performing DSE 2022-02-17 11:58:53 -08:00
EliminateAvailableExternally
EntryExitInstrumenter
ExpandMemCmp
FixIrreducible
Float2Int [NewPM][test] Strickly use -passes in some more lit tests 2021-10-20 17:06:47 +02:00
ForcedFunctionAttrs
FunctionAttrs [FunctionAttrs] Add tests for argmemonly inference. 2022-03-10 22:32:29 +00:00
FunctionImport [Tests] Add elementtype attribute to indirect inline asm operands (NFC) 2022-01-06 14:23:51 +01:00
FunctionSpecialization [FuncSpec] Remove definitions of fully specialized functions. 2022-03-01 11:57:08 +00:00
GCOVProfiling PGOInstrumentation, GCOVProfiling: Split indirectbr critical edges regardless of PHIs 2022-02-23 16:27:37 -08:00
GVN [GVN] Check load type in select PRE 2022-03-14 12:46:54 +01:00
GVNHoist
GVNSink
GlobalDCE [GlobalDCE] [VFE] Avoid dropping vfunc dependencies when an invalid vtable entry is present 2022-02-17 19:41:46 -08:00
GlobalMerge
GlobalOpt [GlobalOpt] Handle undef global_ctors gracefully 2022-03-10 16:02:12 +01:00
GlobalSplit
GuardWidening
HardwareLoops [ARM] Update test comments after D114018. NFC 2021-11-16 22:48:45 +00:00
HelloNew
HotColdSplit
IRCE [SCEVExpander] Drop poison generating flags when reusing instructions 2021-11-29 15:23:34 -08:00
IROutliner [IROutliner] Ensure merged PHINodes respect order and incoming blocks, not just incoming values 2022-03-14 16:48:21 -05:00
IndVarSimplify [SCEV] Enable verification in LoopPM 2022-03-07 09:46:20 +01:00
IndirectBrExpand
InferAddressSpaces [InferAddressSpaces] Fix assert on invalid cast ordering 2022-02-11 10:02:30 -08:00
InferFunctionAttrs BuildLibCalls: add allocalign attributes for memalign and aligned_alloc 2022-03-04 15:57:53 -05:00
Inline [NewPM][Inliner] Make inlined calls to functions in same SCC as callee exponentially expensive 2022-03-07 23:51:09 -08:00
InstCombine [InstCombine] try harder to propagate 'nsz' through fneg-of-select 2022-03-15 11:05:29 -04:00
InstMerge Reland "[LICM] Hoist LOAD without sinking the STORE" 2021-12-02 03:53:50 -08:00
InstNamer
InstSimplify [InstSimplify] Handle vector GEP when simplifying zero indices 2022-03-11 10:56:44 +01:00
InterleavedAccess [AArch64][SVE] Add FP types to the supported SVE structure load/stores vector type list 2021-11-08 22:29:08 +08:00
Internalize
JumpThreading [JumpThreading] Add a test for handling zero !prof branch_weights 2022-01-26 13:42:21 +07:00
LCSSA
LICM [LoopSink] Do not try to sink phi nodes. 2022-03-06 11:16:22 +00:00
LoadStoreVectorizer [LSV] Vectorize loads of vectors by turning it into a larger vector 2022-01-26 11:38:41 +01:00
LoopBoundSplit [LoopBoundSplit] Handle the case in which exiting block is loop header 2021-10-08 09:13:41 +01:00
LoopDataPrefetch
LoopDeletion [SCEV] Do not erase LoopUsers. PR53969 2022-02-22 17:24:39 +07:00
LoopDistribute Autogen a couple of predicated SCEV tests 2022-02-11 13:56:35 -08:00
LoopFlatten [LoopFlatten] Bail if we can't perform flattening after IV widening 2021-09-29 19:53:34 +01:00
LoopFusion
LoopIdiom [SCEV] Don't try to reuse expressions with offset 2022-02-25 09:16:48 +01:00
LoopInstSimplify
LoopInterchange [LoopInterchange] Detect output dependency of a store instruction with itself 2022-03-09 15:50:27 -05:00
LoopLoadElim Autogen a couple of predicated SCEV tests 2022-02-11 13:56:35 -08:00
LoopPredication [SCEVExpander] Drop poison generating flags when reusing instructions 2021-11-29 15:23:34 -08:00
LoopReroll
LoopRotate [llvm][test] rewrite callbr to use i rather than X constraint NFC 2022-01-11 11:31:08 -08:00
LoopSimplify
LoopSimplifyCFG
LoopStrengthReduce [NFC][LSR] Harden lsr-expand-quadratic.ll against smarter SCEV 2022-02-11 01:21:45 +03:00
LoopTransformWarning
LoopUnroll [LICM][PhaseOrder] Don't speculate in LICM until after running loop rotate 2022-02-17 20:13:07 -05:00
LoopUnrollAndJam [LoopUnroll] Disable loop unroll when user explicitly asks for unroll-and-jam 2021-12-15 15:58:05 +00:00
LoopUnswitch [llvm][test] rewrite callbr to use i rather than X constraint NFC 2022-01-11 11:31:08 -08:00
LoopVectorize [LV] Make reduction-order.ll test independent of instruction naming. 2022-03-15 11:13:18 +00:00
LoopVersioning [IRBuilder] Migrate and-folding to value-based FoldAnd. 2022-01-20 10:22:21 +00:00
LoopVersioningLICM [opt] Directly translate -O# to -passes='default<O#>' 2021-10-18 16:48:10 -07:00
LowerAtomic
LowerConstantIntrinsics Fix a typo (occured => occurred) 2022-02-08 21:35:26 +01:00
LowerExpectIntrinsic
LowerGuardIntrinsic
LowerInvoke
LowerMatrixIntrinsics [test][LowerMatrixIntrinsics] Use new PM RUN lines 2022-03-08 13:39:18 -08:00
LowerSwitch
LowerTypeTests [llvm][IR] Add no_cfi constant 2021-12-20 12:55:32 -08:00
LowerWidenableCondition
MakeGuardsExplicit
Mem2Reg [Mem2Reg] Check that load type matches alloca type 2022-02-08 17:16:15 +01:00
MemCpyOpt [ValueTracking] Simplify llvm::isPointerOffset() 2022-03-14 09:32:36 -07:00
MergeFunc [opt] Directly translate -O# to -passes='default<O#>' 2021-10-18 16:48:10 -07:00
MergeICmps Reapply [MergeICmps] Don't require GEP 2022-03-04 11:39:11 +01:00
MetaRenamer [TLI] Check that malloc argument has type size_t 2022-03-14 17:22:24 +01:00
NameAnonGlobals
NaryReassociate [NARY-REASSOCIATE] Fix infinite recursion optimizing min\max 2021-10-20 14:23:03 +07:00
NewGVN Enable tests from rG8e67982384d4a11892c04d16c2d10d7533e56094 that seem to work now 2022-02-25 15:28:49 -05:00
ObjCARC [ObjCARC] Require the function argument in the clang.arc.attachedcall bundle. 2022-01-28 12:41:45 -08:00
OpenMP [OpenMPOpt] Avoid pointer element type access during region merging 2022-03-15 09:52:46 +01:00
PGOProfile PGOInstrumentation, GCOVProfiling: Split indirectbr critical edges regardless of PHIs 2022-02-23 16:27:37 -08:00
PartialInlining
PartiallyInlineLibCalls [PartiallyInlineLibCalls] Don't crash when there's a writeonly attribute on the call 2022-01-05 12:16:26 +01:00
PhaseOrdering [InstCombine] Add general constant support to eq/ne icmp(add(X,C1),add(Y,C2)) -> icmp(add(X,C1-C2),Y) fold 2022-03-15 14:17:38 +00:00
PlaceSafepoints
PreISelIntrinsicLowering [ObjC][ARC] Replace uses of ObjC intrinsics that are arguments of 2021-11-08 21:19:07 -08:00
PruneEH
Reassociate Split fast-basictest.ll according to passes responsible for optimizations 2022-02-04 12:20:10 +03:00
Reg2Mem [test] Update some test cases to use -passes when specifying the pipeline 2021-09-29 21:51:08 +02:00
RelLookupTableConverter/X86 [RelLookupTableConverter] Ensure that GV, GEP and load types match 2022-02-17 12:05:05 +01:00
RewriteStatepointsForGC [RewriteStatepointsForGC] Fix an incorrect assertion 2022-02-17 18:44:57 +00:00
SCCP [SCCP][IR] Landing pads are not safe to remove 2022-03-14 14:59:32 +01:00
SLPVectorizer [SLPVectorizer] Handle external load/store pointer uses with opaque pointers 2022-03-14 16:55:09 +01:00
SROA Revert "Reland [SROA] Maintain shadow/backing alloca when some slices are noncapturnig read-only calls to allow alloca partitioning/promotion" 2022-03-05 01:09:51 +03:00
SafeStack SafeStack: Re-enable SafeStack coloring optimization 2022-03-08 15:10:41 -08:00
SampleProfile [CSSPGO] Even flow distribution 2022-03-02 13:12:05 -08:00
ScalarizeMaskedMemIntrin
Scalarizer [Scalarizer] Do not insert instructions between PHI nodes and debug intrinsics. 2021-11-02 09:53:59 -04:00
SeparateConstOffsetFromGEP [CodeGen] Remove unneeded regex escaping in FileCheck patterns. NFC. 2022-02-18 16:10:56 +00:00
SimpleLoopUnswitch [llvm][test] rewrite callbr to use i rather than X constraint NFC 2022-01-11 11:31:08 -08:00
SimplifyCFG [Verifier] Verify llvm.access.group metadata 2022-03-14 16:16:36 +01:00
Sink
SpeculativeExecution [NewPM][test] Use -passes syntax in SpeculativeExecution lit tests 2021-10-20 15:16:17 +02:00
StraightLineStrengthReduce [CodeGen] Remove unneeded regex escaping in FileCheck patterns. NFC. 2022-02-18 16:10:56 +00:00
StripDeadPrototypes [NewPM][test] Strickly use -passes in some more lit tests 2021-10-20 17:06:47 +02:00
StripSymbols [NewPM][test] Strickly use -passes in some more lit tests 2021-10-20 17:06:47 +02:00
StructurizeCFG [StructurizeCFG] Fix boolean not bug 2022-02-22 17:36:20 +00:00
SyntheticCountsPropagation
TailCallElim [IR] Define "ptrauth" operand bundle. 2022-02-14 11:27:35 -08:00
ThinLTOBitcodeWriter [ThinLTO][MC] Use conditional assignments for promotion aliases 2021-12-10 12:21:37 -08:00
TypePromotion [NFC] TypePromotion test 2022-03-03 11:47:37 +00:00
UnifyFunctionExitNodes
UnifyLoopExits
Util [Statepoint] Update gc.statepoint calls in tests with elementtype (NFC) 2022-02-04 14:15:41 +01:00
VectorCombine [VectorCombine] fold shuffle-of-binops with common operand 2021-10-21 12:37:54 -04:00
WholeProgramDevirt [LTO][WPD] Ignore unreachable function by analyzing IR. 2021-12-21 18:13:03 +00:00