llvm-project/llvm/test/Transforms
Craig Topper 43c80be2e5 [InstCombine] Add test cases for folding (select (icmp ne/eq (and X, C1), (bitwiseop Y, C2), Y -> (bitwiseop Y, (shl/shr (and X, C1), C3)) or similar.
This is possible if C1 and C2 are both powers of 2. Or if binop is 'and' then ~C2 needs to be a power of 2.

We already support this for 'or', but we should be able to support 'and' and 'xor'. This will be enhanced by D37274.

llvm-svn: 312519
2017-09-05 05:26:38 +00:00
..
ADCE [ADCE][Dominators] Reapply: Teach ADCE to preserve dominators 2017-08-22 16:30:21 +00:00
AddDiscriminators [AddDiscriminators] Assign discriminators to MemIntrinsic calls. 2017-04-11 19:07:30 +00:00
AlignmentFromAssumptions
ArgumentPromotion [ArgPromotion] Preserve alignment of byval argument in new alloca 2017-08-04 17:09:11 +00:00
AtomicExpand Add address space mangling to lifetime intrinsics 2017-04-10 20:18:21 +00:00
BDCE [BDCE] Don't check demanded bits on unsized types 2017-08-16 16:09:22 +00:00
BranchFolding
CodeExtractor Clean up a test case 2017-06-27 21:35:49 +00:00
CodeGenPrepare [CGP] Fix the rematerialization of gc.relocates 2017-08-17 05:48:30 +00:00
ConstProp [X86] Replace 'REQUIRES: x86' in tests with 'REQUIRES: x86-registered-target' which seems to be the correct way to make them run on an x86 build. 2017-06-04 08:21:58 +00:00
ConstantHoisting [ConstantHoisting] Remove dupliate logic in constant hoisting 2017-07-10 20:45:34 +00:00
ConstantMerge Canonicalize the representation of empty an expression in DIGlobalVariableExpression 2017-08-30 18:06:51 +00:00
Coroutines [coroutines] Add support for symmetric control transfer (musttail on coro.resumes followed by a suspend) 2017-08-25 02:25:10 +00:00
CorrelatedValuePropagation [LVI] Constant-propagate a zero extension of the switch condition value through case edges 2017-08-03 21:11:30 +00:00
CountingFunctionInserter
CrossDSOCFI [cfi] Build __cfi_check as Thumb when applicable. 2017-08-29 22:29:15 +00:00
DCE Add strictfp attribute to prevent unwanted optimizations of libm calls 2017-08-14 21:15:13 +00:00
DeadArgElim Remove the obsolete offset parameter from @llvm.dbg.value 2017-07-28 20:21:02 +00:00
DeadStoreElimination Revert r310055, it caused PR34074. 2017-08-04 20:40:38 +00:00
EarlyCSE [EarlyCSE] Handle calls with no MemorySSA info. 2017-07-14 20:13:21 +00:00
EliminateAvailableExternally
Float2Int
ForcedFunctionAttrs
FunctionAttrs Support arbitrary address space pointers in masked gather/scatter intrinsics. 2017-05-03 12:28:54 +00:00
FunctionImport Fix bot failures by requiring x86 target 2017-08-19 19:15:04 +00:00
GCOVProfiling Canonicalize the representation of empty an expression in DIGlobalVariableExpression 2017-08-30 18:06:51 +00:00
GVN Keep Optimization Remark Yaml in NewPM 2017-08-20 01:30:45 +00:00
GVNHoist Disable GVN Hoist due to still more bugs being found in it. There is 2017-04-27 00:28:03 +00:00
GVNSink Changed a comparison operator for std::stable_sort to implement strict weak ordering. 2017-06-08 17:27:40 +00:00
GlobalDCE [PM] Teach the PGO instrumentation pasess to run GlobalDCE before 2017-05-25 07:15:09 +00:00
GlobalMerge Canonicalize the representation of empty an expression in DIGlobalVariableExpression 2017-08-30 18:06:51 +00:00
GlobalOpt Fix test/Transforms/GlobalOpt/integer-bool-dwarf 2017-09-04 15:14:37 +00:00
GlobalSplit
GuardWidening
IPConstantProp
IRCE [IRCE] Identify loops with latch comparison against current IV value 2017-08-31 07:04:20 +00:00
IndVarSimplify [SCEV/IndVars] Always compute loop exiting values if the backedge count is 0 2017-08-01 22:37:58 +00:00
InferAddressSpaces [InferAddressSpaces] Fix assertion about null pointer 2017-07-07 02:40:13 +00:00
InferFunctionAttrs Add argmononly attribute to strlen and wcslen, i.e. they only read memory (string) passed to them. 2017-06-18 03:10:26 +00:00
Inline Canonicalize the representation of empty an expression in DIGlobalVariableExpression 2017-08-30 18:06:51 +00:00
InstCombine [InstCombine] Add test cases for folding (select (icmp ne/eq (and X, C1), (bitwiseop Y, C2), Y -> (bitwiseop Y, (shl/shr (and X, C1), C3)) or similar. 2017-09-05 05:26:38 +00:00
InstMerge
InstNamer Add basic test case for -instnamer 2017-05-08 23:18:46 +00:00
InstSimplify [InstSimplify] regenerate checks; NFC 2017-09-02 14:38:15 +00:00
InterleavedAccess Update test for testing avx512 2017-09-04 14:15:34 +00:00
Internalize
JumpThreading [Profile] backward propagate profile info in JumpThreading 2017-08-24 22:54:01 +00:00
LCSSA
LICM Remove the obsolete offset parameter from @llvm.dbg.value 2017-07-28 20:21:02 +00:00
LoadStoreVectorizer Skip bitcasts while looking for GEP in LoadStoreVectorizer 2017-04-25 18:00:08 +00:00
LoopDataPrefetch
LoopDeletion [Dominators] Teach LoopDeletion to use the new incremental API 2017-08-02 18:17:52 +00:00
LoopDistribute
LoopIdiom Remove the obsolete offset parameter from @llvm.dbg.value 2017-07-28 20:21:02 +00:00
LoopInterchange [LoopInterchange] Skip zext instructions when looking for induction var. 2017-08-25 16:52:29 +00:00
LoopLoadElim
LoopPredication
LoopReroll Remove the obsolete offset parameter from @llvm.dbg.value 2017-07-28 20:21:02 +00:00
LoopRotate Parse and print DIExpressions inline to ease IR and MIR testing 2017-08-23 20:31:27 +00:00
LoopSimplify Remove the obsolete offset parameter from @llvm.dbg.value 2017-07-28 20:21:02 +00:00
LoopSimplifyCFG
LoopStrengthReduce [LSR] Fix Shadow IV in case of integer overflow 2017-08-29 07:32:20 +00:00
LoopUnroll [LoopUnroll][DebugInfo] Don't add metadata to unrolled remainder loop 2017-09-04 08:12:16 +00:00
LoopUnswitch [LoopUnswitch] Fix a simple bug which disables loop unswitch for select statement 2017-08-29 21:45:11 +00:00
LoopVectorize LoopVectorize: MaxVF should not be larger than the loop trip count 2017-09-04 08:35:13 +00:00
LoopVersioning [LAA] Correctly return a half-open range in expandBounds 2017-04-05 09:24:26 +00:00
LoopVersioningLICM [LAA] Correctly return a half-open range in expandBounds 2017-04-05 09:24:26 +00:00
LowerAtomic LowerAtomic: Don't skip optnone functions; atomic still need lowering (PR34020) 2017-08-23 15:43:28 +00:00
LowerExpectIntrinsic Fix builin_expect lowering bug 2017-06-07 18:32:24 +00:00
LowerGuardIntrinsic
LowerInvoke
LowerSwitch LowerSwitch: Fix producing invalid IR on unreachable code 2017-04-21 23:54:12 +00:00
LowerTypeTests [cfi] Avoid branch veneers in jump tables when possible. 2017-08-29 22:40:19 +00:00
Mem2Reg Parse and print DIExpressions inline to ease IR and MIR testing 2017-08-23 20:31:27 +00:00
MemCpyOpt Add address space mangling to lifetime intrinsics 2017-04-10 20:18:21 +00:00
MergeFunc Parse and print DIExpressions inline to ease IR and MIR testing 2017-08-23 20:31:27 +00:00
MergeICmps Reland rL312315: [MergeICmps] MergeICmps is a new optimization pass that turns chains of integer 2017-09-01 10:56:34 +00:00
MetaRenamer [MetaRenamer] Leave `@main` alone. 2017-08-01 05:14:45 +00:00
NameAnonGlobals
NaryReassociate
NewGVN NewGVN: Fix PR 34430 - we need to look through predicateinfo copies to detect self-cycles of phi nodes. We also need to not ignore certain types of arguments when testing whether the phi has a backedge or was originally constant. 2017-09-05 02:17:43 +00:00
ObjCARC [ObjCARC] Pass the correct BasicBlock to fix assertion failure. 2017-08-31 18:27:47 +00:00
PGOProfile Add null check for promoted direct call 2017-08-29 15:28:12 +00:00
PartiallyInlineLibCalls
PhaseOrdering Make globalaa-retained.ll test catching more cases. 2017-04-18 13:29:26 +00:00
PlaceSafepoints All libcalls should be considered to be GC-leaf functions. 2017-07-27 16:49:39 +00:00
PreISelIntrinsicLowering
PruneEH
Reassociate [Reassociate] Do not drop debug location if replacement is missing 2017-08-24 09:05:00 +00:00
Reg2Mem
RewriteStatepointsForGC All libcalls should be considered to be GC-leaf functions. 2017-07-27 16:49:39 +00:00
SCCP [IPSCCP] Guard a user of getInitializer with hasDefinitiveInitializer 2017-07-31 17:47:07 +00:00
SLPVectorizer Keep Optimization Remark Yaml in NewPM 2017-08-20 01:30:45 +00:00
SROA Parse and print DIExpressions inline to ease IR and MIR testing 2017-08-23 20:31:27 +00:00
SafeStack Parse and print DIExpressions inline to ease IR and MIR testing 2017-08-23 20:31:27 +00:00
SampleProfile Canonicalize the representation of empty an expression in DIGlobalVariableExpression 2017-08-30 18:06:51 +00:00
Scalarizer Remove the obsolete offset parameter from @llvm.dbg.value 2017-07-28 20:21:02 +00:00
SeparateConstOffsetFromGEP
SimpleLoopUnswitch [PM/Unswitch] Fix a bug in the domtree update logic for the new unswitch 2017-05-25 06:33:36 +00:00
SimplifyCFG [TTI] Fix getGEPCost() for geps with a single operand. 2017-09-01 19:54:08 +00:00
Sink Enhance synchscope representation 2017-07-11 22:23:00 +00:00
SpeculativeExecution Revert r301950: SpeculativeExecution: Stop using whitelist for costs 2017-05-10 12:30:07 +00:00
StraightLineStrengthReduce
StripDeadPrototypes
StripSymbols Canonicalize the representation of empty an expression in DIGlobalVariableExpression 2017-08-30 18:06:51 +00:00
StructurizeCFG [Dominators] Include infinite loops in PostDominatorTree 2017-08-15 18:14:57 +00:00
TailCallElim [TRE] Add another test for OptRemark. 2017-07-19 21:39:51 +00:00
ThinLTOBitcodeWriter ThinLTO Minimized Bitcode File Size Reduction 2017-07-21 17:25:20 +00:00
Util Canonicalize the representation of empty an expression in DIGlobalVariableExpression 2017-08-30 18:06:51 +00:00
WholeProgramDevirt WholeProgramDevirt: Create bitcast to i8* at each virtual call site. 2017-08-22 21:41:19 +00:00