llvm-project/llvm/test/Transforms
Sanjay Patel 9e9bda2e8f [InstCombine] try to narrow shifted bswap-of-zext
This is the IR counterpart to 370ebc9d9a
which provided a bswap narrowing fix for issue #53867.

Here we can be more general (although I'm not sure yet
what would happen for illegal types in codegen - too
rare to worry about?):
https://alive2.llvm.org/ce/z/3-CPfo

This will be more effective if we have moved the shift
after the bswap as proposed in D122010, but it is
independent of that patch.

Differential Revision: https://reviews.llvm.org/D122166
2022-03-22 08:22:30 -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 [AtomicExpand][PowerPC] Fix all-one mask value 2022-03-18 13:35:54 +08: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] Add missing dominance check. 2022-03-16 20:01:24 +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] Infer argmemonly . 2022-03-16 10:24:33 +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] Don't replace alias with aliasee if either alias/aliasee may be preemptible 2022-03-18 14:17:05 -07: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] Fix phi nodes when self referential within block but doesn't contain branch 2022-03-21 11:05:15 -05:00
IndVarSimplify [SCEV] Use constant ranges when determining reachable blocks (PR54434) 2022-03-18 12:04:35 +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] Don't skip SCCs not in current RefSCC 2022-03-18 14:16:29 -07:00
InstCombine [InstCombine] try to narrow shifted bswap-of-zext 2022-03-22 08:22:30 -04:00
InstMerge Reland "[LICM] Hoist LOAD without sinking the STORE" 2021-12-02 03:53:50 -08:00
InstNamer
InstSimplify [FPEnv][InstSimplify] Teach CannotBeNegativeZero() about constrained intrinsics. 2022-03-18 10:24:48 -04: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 [LICM] Add allowspeculation pass options. 2022-03-18 16:51:57 +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 [LoopSimplifyCFG] Check predecessors of exits before marking them dead. 2022-03-18 08:54:44 +00:00
LoopStrengthReduce [NFC][LSR] Harden lsr-expand-quadratic.ll against smarter SCEV 2022-02-11 01:21:45 +03:00
LoopTransformWarning
LoopUnroll [InstCombine] Sink instructions with multiple users in a successor block. 2022-03-18 11:53:45 +08: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 [VPlan] Add test for VPExpandSCEVRecipe printing. 2022-03-20 10:11:40 +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 [LowerConstantIntrinsics] Support phi operand in __builtin_object_size folder 2022-03-21 11:30:50 +01:00
LowerExpectIntrinsic
LowerGlobalDestructors Lower `@llvm.global_dtors` using `__cxa_atexit` on MachO 2022-03-17 10:47:13 -07:00
LowerGuardIntrinsic
LowerInvoke
LowerMatrixIntrinsics [InstCombine] Sink instructions with multiple users in a successor block. 2022-03-18 11:53:45 +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 [OpenMP][FIX] Do not crash when kernels are debug wrapper functions 2022-03-19 14:15:55 -05:00
PGOProfile [InstCombine] Sink instructions with multiple users in a successor block. 2022-03-18 11:53:45 +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 [CostModel][X86] Reduce cost of extracting bool vector elements 2022-03-18 19:02:47 +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] do not clean up dead blocks that have their address taken 2022-03-18 11:02:15 -07:00
SLPVectorizer Recommit "[SLP] Fix lookahead operand reordering for splat loads." 2022-03-21 15:57:32 -07:00
SROA [SROA] Handle over-large loads during presplitting 2022-03-16 15:41:11 +01: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