1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-23 04:52:54 +02:00
llvm-mirror/test/Transforms
Sanjay Patel 66f3d22962 [InstCombine] add isCanonicalPredicate() helper function and use it; NFCI
There should be a slight efficiency improvement from handling icmp/fcmp with one matcher and reducing duplicated code.

The larger motivation is that there are questions about how predicate canonicalization is handled, and the refactoring
should make it easier if we want to change any of that behavior.

1. As noted in the code comment, we've chosen 3 of the 16 FCMP preds as not canonical. Why those 3? It goes back to 
   rL32751 from what I can tell, but I'm not sure if there's a justification for that rule.
2. We currently do not canonicalize integer select conditions. Should we use the same rule that applies to branches 
   for selects?
3. We currently do canonicalize some FP select conditions, and those rules would conflict with the rule shown here. 
   Should one or both be changed? 

No-functional-change-intended, but adding tests anyway because there's no coverage for most of the predicates.

Differential Revision: https://reviews.llvm.org/D33247

llvm-svn: 303261
2017-05-17 14:21:19 +00:00
..
ADCE Fix a test to check assembly output instead of bitcode. 2017-03-31 23:22:19 +00:00
AddDiscriminators [AddDiscriminators] Assign discriminators to MemIntrinsic calls. 2017-04-11 19:07:30 +00:00
AlignmentFromAssumptions
ArgumentPromotion [ArgPromotion] Add a testcase for PR32917 2017-05-05 08:40:24 +00:00
AtomicExpand Add address space mangling to lifetime intrinsics 2017-04-10 20:18:21 +00:00
BBVectorize Replace hardcoded intrinsic list with speculatable attribute. 2017-05-03 02:26:10 +00:00
BDCE [Analysis] Support bitreverse in -demanded-bits pass 2017-04-13 16:44:25 +00:00
BranchFolding
CodeExtractor [PartialInlining] Profile based cost analysis 2017-05-12 23:41:43 +00:00
CodeGenPrepare Restrict call metadata based hotness detection to Sample PGO mode 2017-05-11 23:18:05 +00:00
ConstantHoisting [ConstHoisting] Add BFI in constanthoisting pass and select the best insertion 2017-04-21 15:50:16 +00:00
ConstantMerge Don't merge global constants with non-dbg metadata. 2017-03-09 00:03:37 +00:00
ConstProp Fix two tests that weren't correctly copied. 2017-05-14 22:07:50 +00:00
Coroutines [coroutines] Handle spills before catchswitch 2017-05-17 03:09:22 +00:00
CorrelatedValuePropagation Add address space mangling to lifetime intrinsics 2017-04-10 20:18:21 +00:00
CountingFunctionInserter
CrossDSOCFI
DCE
DeadArgElim Replace hardcoded intrinsic list with speculatable attribute. 2017-05-03 02:26:10 +00:00
DeadStoreElimination Add address space mangling to lifetime intrinsics 2017-04-10 20:18:21 +00:00
EarlyCSE [EarlyCSE] Mark the condition of assume intrinsic as true 2017-04-28 06:25:39 +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 Revert r295861, "[ModuleSummaryAnalysis] Don't crash when referencing unnamed globals." 2017-05-03 00:18:48 +00:00
GCOVProfiling
GlobalDCE
GlobalMerge
GlobalOpt [GlobalOpt] Correctly update metadata when localizing a global. 2017-04-27 18:39:08 +00:00
GlobalSplit Fix one-after-the-end type metadata handling in globalsplit. 2017-03-07 22:18:48 +00:00
GuardWidening
GVN [GVN] Fix a crash on encountering non-integral pointers 2017-05-09 21:07:20 +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
IndVarSimplify ConstantFold: Fold getelementptr (i32, i32* null, i64 undef) to null. 2017-05-08 17:37:29 +00:00
InferAddressSpaces InferAddressSpaces: Search constant expressions for addrspacecasts 2017-04-28 22:52:41 +00:00
InferFunctionAttrs [TLI] Add declarations for various math header file routines from math-finite.h that create '__<func>_finite as functions 2017-05-12 22:11:12 +00:00
Inline [Inliner] Do not mix callsite and callee hotness based updates. 2017-05-16 21:18:09 +00:00
InstCombine [InstCombine] add isCanonicalPredicate() helper function and use it; NFCI 2017-05-17 14:21:19 +00:00
InstMerge
InstNamer Add basic test case for -instnamer 2017-05-08 23:18:46 +00:00
InstSimplify [InstSimplify] add folds for constant mask of value shifted by constant 2017-05-16 21:51:04 +00:00
InterleavedAccess [ARM/AArch64] Ensure valid vector element types for interleaved accesses 2017-04-10 18:34:37 +00:00
Internalize
IPConstantProp
IRCE
JumpThreading Take indirect branch into account as well when folding. 2017-05-01 17:15:37 +00:00
LCSSA
LICM Revert "Compute safety information in a much finer granularity." 2017-04-24 18:25:07 +00:00
LoadCombine [LoadCombine] Avoid analysing dead basic blocks 2017-04-12 08:07:55 +00:00
LoadStoreVectorizer Skip bitcasts while looking for GEP in LoadStoreVectorizer 2017-04-25 18:00:08 +00:00
LoopDataPrefetch
LoopDeletion [Loop Deletion] Delete loops that are never executed 2017-05-03 11:47:11 +00:00
LoopDistribute
LoopIdiom The patch adds CTLZ idiom recognition. 2017-05-15 19:08:56 +00:00
LoopInterchange
LoopLoadElim
LoopPredication Loop predication expand both sides of the widened condition 2017-02-27 15:44:49 +00:00
LoopReroll
LoopRotate Cleanup tests to not share a DISubprogram between multiple Functions. 2017-05-04 16:24:31 +00:00
LoopSimplify
LoopSimplifyCFG
LoopStrengthReduce ARM: handle post-indexed NEON ops where the offset isn't the access width. 2017-04-20 19:54:02 +00:00
LoopUnroll [LoopUnroll] Fix a test. REQUIRE should be REQUIRES. 2017-05-12 15:30:58 +00:00
LoopUnswitch [LoopUnswitch] Don't remove instructions with side effects. 2017-04-29 00:12:18 +00:00
LoopVectorize Re-commit r302678, fixing PR33053. 2017-05-16 21:29:22 +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
LowerExpectIntrinsic
LowerGuardIntrinsic
LowerInvoke
LowerSwitch LowerSwitch: Fix producing invalid IR on unreachable code 2017-04-21 23:54:12 +00:00
LowerTypeTests Align all scalar numbers to LLVM_YAML_IS_FLOW_SEQUENCE_VECTOR 2017-04-04 06:02:32 +00:00
Mem2Reg Add test coverage for mem2reg dbg.declare lowering. 2017-04-21 22:13:55 +00:00
MemCpyOpt Add address space mangling to lifetime intrinsics 2017-04-10 20:18:21 +00:00
MergeFunc
MetaRenamer [MetaRenamer] Don't rename library functions. 2017-03-23 23:21:07 +00:00
NameAnonGlobals
NaryReassociate
NewGVN [NewGVN] Re-enable test now that the nondeterminism has been fixed. 2017-05-16 22:27:06 +00:00
ObjCARC Replace hardcoded intrinsic list with speculatable attribute. 2017-05-03 02:26:10 +00:00
PartiallyInlineLibCalls
PGOProfile Memory intrinsic value profile optimization: Avoid divide by 0 2017-04-28 14:30:54 +00:00
PhaseOrdering Make globalaa-retained.ll test catching more cases. 2017-04-18 13:29:26 +00:00
PlaceSafepoints
PreISelIntrinsicLowering
PruneEH
Reassociate [Reassociate] Add negated value of negative constant to the Duplicates list. 2017-02-23 18:49:03 +00:00
Reg2Mem
RewriteStatepointsForGC [RSForGC] Handle vector GEPs 2017-03-17 00:55:53 +00:00
SafeStack PR32382: Fix emitting complex DWARF expressions. 2017-04-18 01:21:53 +00:00
SampleProfile Cleanup tests to not share a DISubprogram between multiple Functions. 2017-05-04 16:24:31 +00:00
Scalarizer [Scalarizer] Handle scalar arguments in vector GEP 2017-03-31 06:29:49 +00:00
SCCP [SCCP] Resolve indirect branch target when possible. 2017-04-10 00:33:25 +00:00
SeparateConstOffsetFromGEP AMDGPU: Mark all unspecified CC functions in tests as amdgpu_kernel 2017-03-21 21:39:51 +00:00
SimpleLoopUnswitch [PM/Unswitch] Teach the new simple loop unswitch to handle loop 2017-05-12 02:19:59 +00:00
SimplifyCFG [ValueTracking] Teach isSafeToSpeculativelyExecute() about the speculatable attribute 2017-04-28 21:13:09 +00:00
Sink
SLPVectorizer Re-commit r302678, fixing PR33053. 2017-05-16 21:29:22 +00:00
SpeculativeExecution Revert r301950: SpeculativeExecution: Stop using whitelist for costs 2017-05-10 12:30:07 +00:00
SROA Allow DataLayout to specify addrspace for allocas. 2017-04-10 22:27:50 +00:00
StraightLineStrengthReduce AMDGPU: Mark all unspecified CC functions in tests as amdgpu_kernel 2017-03-21 21:39:51 +00:00
StripDeadPrototypes
StripSymbols [StripDeadDebug/DIFinder] Track inlined SPs 2017-04-11 13:32:11 +00:00
StructurizeCFG Revert "StructurizeCFG: Directly invert cmp instructions" 2017-04-24 20:25:01 +00:00
TailCallElim
ThinLTOBitcodeWriter ThinLTOBitcodeWriter: keep comdats together, rename if leader is renamed 2017-04-12 01:43:07 +00:00
Util PR32288: Describe a bool parameter's DWARF location with a simple register 2017-05-15 21:34:01 +00:00
WholeProgramDevirt Align all scalar numbers to LLVM_YAML_IS_FLOW_SEQUENCE_VECTOR 2017-04-04 06:02:32 +00:00