llvm/test/Transforms
David Majnemer a40a3a5981 Combine bit test + conditional or into simple math
Simplify:
(select (icmp eq (and X, C1), 0), Y, (or Y, C2))

Into:
(or (shl (and X, C1), C3), y)

Where:
C3 = Log(C2) - Log(C1)

If:
C1 and C2 are both powers of two


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179748 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-18 07:30:07 +00:00
..
ADCE Replace all instances of dg.exp file with lit.local.cfg, since all tests are run with LIT now and now Dejagnu. dg.exp is no longer needed. 2012-02-16 06:28:33 +00:00
ArgumentPromotion Update some EH tests that were violating the new EH model. 2013-03-21 18:30:10 +00:00
BBVectorize CostModel: increase the default cost of supported floating point operations from 1 to two. Fixed a few tests that changes because now the cost of one insert + a vector operation on two doubles is lower than two scalar operations on doubles. 2013-04-12 21:15:03 +00:00
BlockPlacement Replace all instances of dg.exp file with lit.local.cfg, since all tests are run with LIT now and now Dejagnu. dg.exp is no longer needed. 2012-02-16 06:28:33 +00:00
BranchFolding Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
CodeExtractor Replace all instances of dg.exp file with lit.local.cfg, since all tests are run with LIT now and now Dejagnu. dg.exp is no longer needed. 2012-02-16 06:28:33 +00:00
CodeGenPrepare Tests: rewrite 'opt ... %s' to 'opt ... < %s' so that opt does not emit a ModuleID 2012-12-30 01:28:40 +00:00
ConstantMerge Tests: rewrite 'opt ... %s' to 'opt ... < %s' so that opt does not emit a ModuleID 2012-12-30 01:28:40 +00:00
ConstProp Remove this testcase until I can figure out how to properly conditionalize it. 2013-02-07 07:01:54 +00:00
CorrelatedValuePropagation CVP: If we have a PHI with an incoming select, try to skip the select. 2013-02-24 15:34:43 +00:00
DeadArgElim Revert "Adding DIImportedModules to DIScopes." 2013-03-28 02:44:59 +00:00
DeadStoreElimination Tests: rewrite 'opt ... %s' to 'opt ... < %s' so that opt does not emit a ModuleID 2013-01-01 13:57:25 +00:00
EarlyCSE Initially forgotten-to-svn-add test case for r177279. 2013-03-18 12:07:24 +00:00
FunctionAttrs Move library call prototype attribute inference to functionattrs 2013-03-21 00:55:59 +00:00
GCOVProfiling Revert "Adding DIImportedModules to DIScopes." 2013-03-28 02:44:59 +00:00
GlobalDCE GlobalDCE: Fix an oversight in my last commit that could lead to crashes. 2013-04-13 16:11:14 +00:00
GlobalOpt Use a worklist to avoid a sneaky iterator invalidation. 2013-04-02 08:16:45 +00:00
GVN Revert 179071 because it is not the right way to support non standard new/new[] operators. 2013-04-09 04:43:46 +00:00
IndVarSimplify IndVarSimplify: do not recompute an IV value outside of the loop if : 2013-03-19 20:00:22 +00:00
Inline Update test. There may be multiple catches, but those will be cleaned up. 2013-03-22 20:36:39 +00:00
InstCombine Combine bit test + conditional or into simple math 2013-04-18 07:30:07 +00:00
InstSimplify Add missing colons to check lines. 2013-04-11 12:41:41 +00:00
Internalize Change the internalize pass to internalize all symbols when given an empty 2012-10-26 18:47:48 +00:00
IPConstantProp Use references to attribute groups on the call/invoke instructions. 2013-02-22 09:09:42 +00:00
JumpThreading Use references to attribute groups on the call/invoke instructions. 2013-02-22 09:09:42 +00:00
LCSSA Convert all tests using TCL-style quoting to use shell-style quoting. 2012-07-02 12:47:22 +00:00
LICM Revert the test moves from 176733. Use "REQUIRES: asserts" instead. 2013-03-12 16:27:52 +00:00
LoopDeletion Modify the LLVM assembly output so that it uses references to represent function attributes. 2013-02-20 07:21:42 +00:00
LoopIdiom PR14904: Segmentation fault running pass 'Recognize loop idioms' 2013-01-10 23:32:01 +00:00
LoopRotate Tests: rewrite 'opt ... %s' to 'opt ... < %s' so that opt does not emit a ModuleID 2012-12-30 02:33:22 +00:00
LoopSimplify Convert all tests using TCL-style quoting to use shell-style quoting. 2012-07-02 12:47:22 +00:00
LoopStrengthReduce LSR IVChain improvement. 2013-02-09 01:11:01 +00:00
LoopUnroll Revert the test moves from 176733. Use "REQUIRES: asserts" instead. 2013-03-12 16:27:52 +00:00
LoopUnswitch Revert the test moves from 176733. Use "REQUIRES: asserts" instead. 2013-03-12 16:27:52 +00:00
LoopVectorize LoopVectorizer: integer division is not a reduction operation 2013-04-12 15:15:19 +00:00
LowerAtomic Replace all instances of dg.exp file with lit.local.cfg, since all tests are run with LIT now and now Dejagnu. dg.exp is no longer needed. 2012-02-16 06:28:33 +00:00
LowerExpectIntrinsic Replace all instances of dg.exp file with lit.local.cfg, since all tests are run with LIT now and now Dejagnu. dg.exp is no longer needed. 2012-02-16 06:28:33 +00:00
LowerInvoke Replace all instances of dg.exp file with lit.local.cfg, since all tests are run with LIT now and now Dejagnu. dg.exp is no longer needed. 2012-02-16 06:28:33 +00:00
LowerSwitch PR1255 related changes (case ranges): 2012-05-24 09:33:20 +00:00
Mem2Reg Revert "Adding DIImportedModules to DIScopes." 2013-03-28 02:44:59 +00:00
MemCpyOpt Use references to attribute groups on the call/invoke instructions. 2013-02-22 09:09:42 +00:00
MergeFunc We are not able to bitcast a pointer to an integral value. 2013-04-15 22:33:50 +00:00
MetaRenamer Tests: rewrite 'opt ... %s' to 'opt ... < %s' so that opt does not emit a ModuleID 2013-01-01 13:57:25 +00:00
ObjCARC [objc-arc] Do not mismatch up retains inside a for loop with releases outside said for loop in the presense of differing provenance caused by escaping blocks. 2013-04-18 05:39:45 +00:00
PhaseOrdering Tests: rewrite 'opt ... %s' to 'opt ... < %s' so that opt does not emit a ModuleID 2012-12-30 01:28:40 +00:00
PruneEH The normal edge of an invoke is not allowed to branch to a block with a 2012-08-10 20:55:20 +00:00
Reassociate Correct assertion condition 2013-04-01 18:13:05 +00:00
Reg2Mem Make sure we don't emit instructions before a landingpad instruction. 2013-01-08 10:51:32 +00:00
ScalarRepl Disable the optimization about promoting vector-element-access with symbolic index. 2013-04-05 21:07:08 +00:00
SCCP Tests: rewrite 'opt ... %s' to 'opt ... < %s' so that opt does not emit a ModuleID 2013-01-01 13:57:25 +00:00
SimplifyCFG simplifycfg: Fix integer overflow converting switch into icmp. 2013-04-16 08:35:36 +00:00
SimplifyLibCalls Move library call prototype attribute inference to functionattrs 2013-03-21 00:55:59 +00:00
Sink Enhance the sinking code to handle diamond patterns. Patch by 2012-05-31 08:09:49 +00:00
SLPVectorizer SLPVectorizer: Make it a function pass and add code for hoisting the vector-gather sequence out of loops. 2013-04-15 22:00:26 +00:00
SROA Fix PR15674 (and PR15603): a SROA think-o. 2013-04-07 11:47:54 +00:00
StripSymbols Tests: rewrite 'opt ... %s' to 'opt ... < %s' so that opt does not emit a ModuleID 2013-01-01 13:57:25 +00:00
TailCallElim Revert the test moves from 176733. Use "REQUIRES: asserts" instead. 2013-03-12 16:27:52 +00:00
TailDup Revert the test moves from 176733. Use "REQUIRES: asserts" instead. 2013-03-12 16:27:52 +00:00