1
0
mirror of https://github.com/c64scene-ar/llvm-6502.git synced 2024-12-17 03:30:28 +00:00
llvm-6502/test/Transforms/InstCombine
Dan Gohman 81b28ceab6 Improve instcombine's handling of integer min and max in two ways:
- Recognize expressions like "x > -1 ? x : 0" as min/max and turn them
   into expressions like "x < 0 ? 0 : x", which is easily recognizable
   as a min/max operation.
 - Refrain from folding expression like "y/2 < 1" to "y < 2" when the
   comparison is being used as part of a min or max idiom, like
   "y/2 < 1 ? 1 : y/2". In that case, the division has another use, so
   folding doesn't eliminate it, and obfuscates the min/max, making it
   harder to recognize as a min/max operation.

These benefit ScalarEvolution, CodeGen, and anything else that wants to
recognize integer min and max.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56246 91177308-0d34-0410-b5e6-96231b3b80d8
2008-09-16 18:46:06 +00:00
..
2002-03-11-InstCombineHang.ll Remove llvm-upgrade and update test cases. 2008-03-01 09:15:35 +00:00
2002-05-14-SubFailure.ll
2002-05-14-TouchDeletedInst.ll Remove llvm-upgrade and update tests. 2008-03-09 08:16:40 +00:00
2002-08-02-CastTest.ll Remove llvm-upgrade and update test cases. 2008-03-01 09:15:35 +00:00
2002-09-17-GetElementPtrCrash.ll Remove llvm-upgrade and update test cases. 2008-03-01 09:15:35 +00:00
2002-12-05-MissedConstProp.ll Remove llvm-upgrade and update test cases. 2008-03-01 09:15:35 +00:00
2003-05-26-CastMiscompile.ll Remove llvm-upgrade and update test cases. 2008-03-01 09:15:35 +00:00
2003-05-27-ConstExprCrash.ll Remove llvm-upgrade and update test cases. 2008-03-01 09:15:35 +00:00
2003-06-05-BranchInvertInfLoop.ll Remove llvm-upgrade and update test cases. 2008-03-01 09:15:35 +00:00
2003-06-22-ConstantExprCrash.ll Remove llvm-upgrade and update test cases. 2008-03-01 09:15:35 +00:00
2003-07-21-ExternalConstant.ll Remove llvm-upgrade and update tests. 2008-03-09 08:16:40 +00:00
2003-08-12-AllocaNonNull.ll Remove llvm-upgrade and update test cases. 2008-03-01 09:15:35 +00:00
2003-09-09-VolatileLoadElim.ll Remove llvm-upgrade and update test cases. 2008-03-01 09:15:35 +00:00
2003-10-23-InstcombineNullFail.ll Remove llvm-upgrade and update test cases. 2008-03-01 09:15:35 +00:00
2003-10-29-CallSiteResolve.ll Remove llvm-upgrade and update test cases. 2008-03-01 09:15:35 +00:00
2003-11-03-VarargsCallBug.ll Remove llvm-upgrade and update test cases. 2008-03-01 09:15:35 +00:00
2003-11-13-ConstExprCastCall.ll Situations can arise when you have a function called that returns a 'void', but 2008-05-14 22:45:20 +00:00
2004-01-13-InstCombineInvokePHI.ll Remove llvm-upgrade and update test cases. 2008-03-01 09:15:35 +00:00
2004-02-23-ShiftShiftOverflow.ll Remove llvm-upgrade and update test cases. 2008-03-01 09:15:35 +00:00
2004-03-13-InstCombineInfLoop.ll Remove llvm-upgrade and update test cases. 2008-03-01 09:15:35 +00:00
2004-04-04-InstCombineReplaceAllUsesWith.ll Remove llvm-upgrade and update test cases. 2008-03-01 09:15:35 +00:00
2004-05-07-UnsizedCastLoad.ll Remove llvm-upgrade and update test cases. 2008-03-01 09:15:35 +00:00
2004-07-27-ConstantExprMul.ll Remove llvm-upgrade and update test cases. 2008-03-01 09:15:35 +00:00
2004-08-09-RemInfLoop.ll rename *.llx -> *.ll, last batch. 2008-04-19 22:32:52 +00:00
2004-08-10-BoolSetCC.ll Remove llvm-upgrade and update test cases. 2008-03-01 09:15:35 +00:00
2004-09-20-BadLoadCombine2.ll Update old-style syntax in some "not grep" tests. 2008-05-01 23:50:07 +00:00
2004-09-20-BadLoadCombine.ll rename *.llx -> *.ll, last batch. 2008-04-19 22:32:52 +00:00
2004-09-28-BadShiftAndSetCC.ll rename *.llx -> *.ll, last batch. 2008-04-19 22:32:52 +00:00
2004-11-22-Missed-and-fold.ll Remove llvm-upgrade and update test cases. 2008-03-01 09:15:35 +00:00
2004-11-27-SetCCForCastLargerAndConstant.ll Eliminate questionable syntax for stdin redirection. This probably also speeds things up a bit. 2008-05-20 22:07:21 +00:00
2004-12-08-InstCombineCrash.ll Remove llvm-upgrade and update test cases. 2008-03-01 09:15:35 +00:00
2004-12-08-RemInfiniteLoop.ll Remove llvm-upgrade and update test cases. 2008-03-01 09:15:35 +00:00
2005-03-04-ShiftOverflow.ll Remove llvm-upgrade and update test cases. 2008-03-01 09:15:35 +00:00
2005-04-07-UDivSelectCrash.ll Remove llvm-upgrade and update test cases. 2008-03-01 09:15:35 +00:00
2005-06-15-DivSelectCrash.ll Remove llvm-upgrade and update test cases. 2008-03-01 09:15:35 +00:00
2005-06-15-ShiftSetCCCrash.ll Remove llvm-upgrade and update test cases. 2008-03-01 09:15:35 +00:00
2005-06-16-RangeCrash.ll Remove llvm-upgrade and update test cases. 2008-03-01 09:15:35 +00:00
2005-06-16-SetCCOrSetCCMiscompile.ll Remove llvm-upgrade and update test cases. 2008-03-01 09:15:35 +00:00
2005-07-07-DeadPHILoop.ll Remove llvm-upgrade and update test cases. 2008-03-01 09:15:35 +00:00
2006-02-07-SextZextCrash.ll Remove llvm-upgrade and update test cases. 2008-03-01 09:15:35 +00:00
2006-02-13-DemandedMiscompile.ll Remove llvm-upgrade and update test cases. 2008-03-01 09:15:35 +00:00
2006-02-28-Crash.ll Remove llvm-upgrade and update test cases. 2008-03-01 09:15:35 +00:00
2006-03-30-ExtractElement.ll Remove llvm-upgrade and update test cases. 2008-03-01 09:15:35 +00:00
2006-04-01-InfLoop.ll Remove llvm-upgrade and update tests. 2008-03-09 08:16:40 +00:00
2006-04-28-ShiftShiftLongLong.ll Remove llvm-upgrade and update test cases. 2008-03-01 09:15:35 +00:00
2006-05-04-DemandedBitCrash.ll Remove llvm-upgrade and update tests. 2008-03-09 08:16:40 +00:00
2006-05-06-Infloop.ll Remove llvm-upgrade and update tests. 2008-03-09 08:16:40 +00:00
2006-06-28-infloop.ll Remove llvm-upgrade and update test cases. 2008-03-01 09:15:35 +00:00
2006-09-11-EmptyStructCrash.ll Remove llvm-upgrade and update tests. 2008-03-09 08:16:40 +00:00
2006-09-15-CastToBool.ll Remove llvm-upgrade and update test cases. 2008-03-01 09:15:35 +00:00
2006-10-19-SignedToUnsignedCastAndConst-2.ll Eliminate questionable syntax for stdin redirection. This probably also speeds things up a bit. 2008-05-20 22:07:21 +00:00
2006-10-19-SignedToUnsignedCastAndConst.ll Remove llvm-upgrade and update test cases. 2008-03-01 09:15:35 +00:00
2006-10-20-mask.ll Remove llvm-upgrade and update test cases. 2008-03-01 09:15:35 +00:00
2006-10-26-VectorReassoc.ll Remove llvm-upgrade and update test cases. 2008-03-01 09:15:35 +00:00
2006-11-03-Memmove64.ll Remove llvm-upgrade and update test cases. 2008-03-01 09:15:35 +00:00
2006-11-10-ashr-miscompile.ll Remove llvm-upgrade and update test cases. 2008-03-01 09:15:35 +00:00
2006-11-27-XorBug.ll Remove llvm-upgrade and update test cases. 2008-03-01 09:15:35 +00:00
2006-12-01-BadFPVectorXform.ll Remove llvm-upgrade and update test cases. 2008-03-01 09:15:35 +00:00
2006-12-05-fp-to-int-ext.ll Remove llvm-upgrade and update test cases. 2008-03-01 09:15:35 +00:00
2006-12-08-ICmp-Combining.ll Remove llvm-upgrade and update test cases. 2008-03-01 09:15:35 +00:00
2006-12-08-Phi-ICmp-Op-Fold.ll Remove llvm-upgrade and update tests. 2008-03-09 08:16:40 +00:00
2006-12-08-Select-ICmp.ll Remove llvm-upgrade and update tests. 2008-03-09 08:16:40 +00:00
2006-12-10-ICmp-GEP-GEP.ll Remove llvm-upgrade and update tests. 2008-03-09 08:16:40 +00:00
2006-12-15-Range-Test.ll Remove llvm-upgrade and update tests. 2008-03-09 08:16:40 +00:00
2006-12-23-Select-Cmp-Cmp.ll Remove llvm-upgrade and update tests. 2008-03-09 08:16:40 +00:00
2007-01-13-ExtCompareMiscompile.ll this test is now compiled into the right thing. 2008-01-28 17:38:46 +00:00
2007-01-14-FcmpSelf.ll
2007-01-18-VectorInfLoop.ll
2007-01-27-AndICmp.ll
2007-02-01-LoadSinkAlloca.ll
2007-02-07-PointerCast.ll Remove llvm-upgrade and update test cases. 2008-03-01 09:15:35 +00:00
2007-02-23-PhiFoldInfLoop.ll
2007-03-13-CompareMerge.ll
2007-03-19-BadTruncChangePR1261.ll
2007-03-21-SignedRangeTest.ll
2007-03-25-BadShiftMask.ll
2007-03-25-DoubleShift.ll
2007-03-26-BadShiftMask.ll
2007-03-27-PR1280.ll
2007-03-31-InfiniteLoop.ll
2007-04-04-BadFoldBitcastIntoMalloc.ll
2007-04-08-SingleEltVectorCrash.ll
2007-05-04-Crash.ll
2007-05-10-icmp-or.ll
2007-05-14-Crash.ll
2007-05-18-CastFoldBug.ll
2007-06-06-AshrSignBit.ll
2007-06-21-DivCompareMiscomp.ll
2007-08-02-InfiniteLoop.ll
2007-09-05-EqualGEP.ll
2007-09-10-AliasConstFold.ll
2007-09-11-Trampoline.ll
2007-09-17-AliasConstFold2.ll
2007-10-10-EliminateMemCpy.ll
2007-10-12-Crash.ll
2007-10-28-EmptyField.ll
2007-10-28-stacksave.ll
2007-10-31-RangeCrash.ll
2007-10-31-StringCrash.ll
2007-11-07-OpaqueAlignCrash.ll
2007-11-15-CompareMiscomp.ll
2007-11-22-IcmpCrash.ll
2007-11-25-CompatibleAttributes.ll
2007-12-10-ConstFoldCompare.ll
2007-12-12-GEPScale.ll 1. "Upgrage" comments. 2007-12-12 15:21:32 +00:00
2007-12-16-AsmNoUnwind.ll Make instcombine promote inline asm calls to 'nounwind' 2007-12-16 15:51:49 +00:00
2007-12-18-AddSelCmpSub.ll Remove an orthogonal transformation of the selection condition from my most recent submission. 2007-12-18 20:30:28 +00:00
2007-12-28-IcmpSub2.ll Add a testcase for my recent InstCombine fix, written by Nicholas. 2007-12-28 21:08:43 +00:00
2008-01-06-BitCastAttributes.ll Ignore stderr for some more tests that expect warnings there. 2008-06-10 16:13:38 +00:00
2008-01-06-CastCrash.ll When transforming a call to a bitcast function into 2008-01-06 10:12:28 +00:00
2008-01-06-VoidCast.ll When transforming a call to a bitcast function into 2008-01-06 10:12:28 +00:00
2008-01-13-AndCmpCmp.ll Fix PR1907, a nasty miscompilation because instcombine didn't 2008-01-13 20:59:02 +00:00
2008-01-13-NoBitCastAttributes.ll When turning a call to a bitcast function into a direct call, 2008-01-13 08:02:44 +00:00
2008-01-14-DoubleNest.ll I noticed that the trampoline straightening transformation could 2008-01-14 19:52:09 +00:00
2008-01-14-VarArgTrampoline.ll I noticed that the trampoline straightening transformation could 2008-01-14 19:52:09 +00:00
2008-01-21-MismatchedCastAndCompare.ll Fix two more not-grep tests that were missing llvm-dis. 2008-06-09 22:36:45 +00:00
2008-01-21-MulTrunc.ll Multiply can be evaluated in a different type, so long as the target type has 2008-01-22 05:08:48 +00:00
2008-01-27-FloatSelect.ll Fix PR1932 by disabling an xform invalid for fdiv. 2008-01-28 00:58:18 +00:00
2008-01-29-AddICmp.ll Tag this test with the PR reference. 2008-02-03 16:35:19 +00:00
2008-02-04-GEPIdxBug.ll Fix a bug compiling PR1978 (perhaps not the only one though) which 2008-02-05 04:45:32 +00:00
2008-02-13-MulURem.ll Commit the testcase too. 2008-03-06 06:50:03 +00:00
2008-02-16-SDivOverflow2.ll Correctly fold divide-by-constant, even when faced with overflow. 2008-02-18 22:48:05 +00:00
2008-02-16-SDivOverflow.ll Correctly fold divide-by-constant, even when faced with overflow. 2008-02-18 22:48:05 +00:00
2008-02-23-MulSub.ll fix this test so that the fn name doesn't match the regex 2008-02-26 18:13:51 +00:00
2008-02-28-OrFCmpCrash.ll Folding or(fcmp,fcmp) only works if the operands of the fcmps are the same fp type. 2008-02-29 06:09:11 +00:00
2008-03-13-IntToPtr.ll The inst combining of inttoptr into GEP with one index was using the bit size of 2008-03-14 05:12:19 +00:00
2008-04-22-ByValBitcast.ll distill down the essense of this test. 2008-04-23 03:03:42 +00:00
2008-04-28-VolatileStore.ll don't delete the last store to an alloca if the store is volatile. 2008-04-29 04:58:38 +00:00
2008-04-29-VolatileLoadDontMerge.ll don't eliminate load from volatile value on paths where the load is dead. 2008-04-29 17:28:22 +00:00
2008-04-29-VolatileLoadMerge.ll Fix a broken test. Neither load is eliminable without changing the CFG. 2008-07-09 05:01:02 +00:00
2008-05-08-LiveStoreDelete.ll Make instcombine's DSE respect loads as well as stores. It is not safe to 2008-05-08 17:20:30 +00:00
2008-05-08-StrLenSink.ll More than just loads can read from memory: readonly calls like strlen 2008-05-08 17:37:37 +00:00
2008-05-09-SinkOfInvoke.ll Testcase for PR2303. 2008-05-10 16:43:10 +00:00
2008-05-17-InfLoop.ll Fix PR2339 2008-05-18 04:11:26 +00:00
2008-05-18-FoldIntToPtr.ll "ret (constexpr)" can't be folded into a Constant. Add a method to 2008-05-25 20:56:15 +00:00
2008-05-22-IDivVector.ll Fix a recently added optimization to not crash on vectors. 2008-05-23 03:26:47 +00:00
2008-05-22-NegValVector.ll Constant integer vectors may also be negated. 2008-05-23 04:54:45 +00:00
2008-05-23-CompareFold.ll Fix a serious brain-o. Obviously no-one reviewed my patch :( 2008-05-24 04:06:28 +00:00
2008-05-31-AddBool.ll Adding i1 is always Xor. 2008-05-31 17:10:28 +00:00
2008-05-31-Bools.ll Add more i1 optimizations. add, sub, mul, s/udiv on i1 are now simplified away. 2008-05-31 17:59:52 +00:00
2008-06-05-ashr-crash.ll Add a test case for opt -instcombine bug fix in revision 52003. 2008-06-05 14:25:11 +00:00
2008-06-08-ICmpPHI.ll Remove unnecessary target lines. 2008-06-13 22:10:32 +00:00
2008-06-13-InfiniteLoopStore.ll Remove unnecessary target lines. 2008-06-13 22:12:16 +00:00
2008-06-13-ReadOnlyCallStore.ll Don't skip over instructions other than loads that might read memory 2008-06-13 22:02:12 +00:00
2008-06-19-UncondLoad.ll Fix PR2471, which is a bug involving an invalid promotion from a conditional load. 2008-06-20 05:12:56 +00:00
2008-06-21-CompareMiscomp.ll Fix for PR2479: correctly optimize expressions like (a > 13) & (a == 2008-06-21 23:36:13 +00:00
2008-06-24-StackRestore.ll Fix PR2488, a case where we deleted stack restores too aggressively. 2008-06-25 05:59:28 +00:00
2008-07-08-AndICmp.ll Reinstate this optimization, but without the miscompile. Thanks to Bill for 2008-08-06 04:54:03 +00:00
2008-07-08-ShiftOneAndOne.ll Fold ((1 << a) & 1) to (a == 0). 2008-07-09 05:20:13 +00:00
2008-07-08-SubAnd.ll Reduce x - y to -y when we know the 'x' part will get masked off anyways. 2008-07-09 04:32:37 +00:00
2008-07-08-VolatileLoadMerge.ll new testcase for PR2496 2008-07-08 17:18:05 +00:00
2008-07-09-SubAndError.ll Fix overzealous optimization. Thanks to Duncan Sands for pointing out my error! 2008-07-10 05:51:40 +00:00
2008-07-10-CastSextBool.ll Fix folding of icmp's of i1 where the comparison is signed. The code 2008-07-11 04:20:58 +00:00
2008-07-10-ICmpBinOp.ll Add another optimization from PR2330. Also catch some missing cases that are 2008-07-11 07:20:53 +00:00
2008-07-11-RemAnd.ll Enhance analysis of srem. 2008-07-12 05:04:38 +00:00
2008-07-13-DivZero.ll Fix PR2506 by being a bit more careful about reverse fact propagation when 2008-07-14 00:15:52 +00:00
2008-07-16-fsub.ll Fix PR2553 2008-07-17 06:07:20 +00:00
2008-07-16-sse2_storel_dq.ll Fix PR2296. Do not transform x86_sse2_storel_dq into a full-width store. 2008-07-16 07:28:14 +00:00
2008-08-05-And.ll Just grep for through the LL code instead of the ASM code 2008-08-06 00:10:32 +00:00
2008-08-17-ICmpXorSignbit.ll Revert r54876 r54877 r54906 and r54907. Evan found that these caused a 20% 2008-08-21 05:56:10 +00:00
2008-09-02-VectorCrash.ll Don't crash when trying to constant fold a vector with some elements that can't 2008-09-03 05:54:33 +00:00
add2.ll be more aggressive about transforming add -> or when the operands have no 2008-05-19 20:01:56 +00:00
add-shrink.ll Teach instcombine 4 new xforms: 2008-05-20 05:46:13 +00:00
add-sitofp.ll Generalize the new code in instcombine's ComputeNumSignBits for handling 2008-05-23 02:28:01 +00:00
add.ll Teach masked value is zero about add and sub, and use MVIZ to 2008-03-21 05:19:58 +00:00
addnegneg.ll Fold (-x + -y) -> -(x+y) which promotes better association, fixing 2008-02-17 21:03:36 +00:00
adjust-for-sminmax.ll Improve instcombine's handling of integer min and max in two ways: 2008-09-16 18:46:06 +00:00
align-2d-gep.ll Teach InstCombine's ComputeMaskedBits to handle pointer expressions 2008-04-10 18:43:06 +00:00
align-addr.ll Teach InstCombine's ComputeMaskedBits to handle pointer expressions 2008-04-10 18:43:06 +00:00
align-inc.ll
alloca.ll Remove llvm-upgrade and update tests. 2008-03-09 08:16:40 +00:00
and2.ll
and-compare.ll Remove llvm-upgrade and update tests. 2008-03-09 08:16:40 +00:00
and-or-and.ll Remove llvm-upgrade and update tests. 2008-03-09 08:16:40 +00:00
and-or-not.ll
and-xor-merge.ll
and.ll Remove llvm-upgrade and update tests. 2008-03-09 08:16:40 +00:00
apint-add1.ll
apint-add2.ll
apint-and1.ll
apint-and2.ll
apint-and-compare.ll
apint-and-or-and.ll
apint-and-xor-merge.ll
apint-call-cast-target.ll When simplifying a call to a bitcast function, tighten up 2008-06-01 07:38:42 +00:00
apint-cast-and-cast.ll
apint-cast-cast-to-and.ll
apint-cast.ll
apint-div1.ll
apint-div2.ll
apint-elim-logicalops.ll
apint-mul1.ll
apint-mul2.ll
apint-not.ll
apint-or1.ll
apint-or2.ll
apint-rem1.ll
apint-rem2.ll
apint-select.ll
apint-shift-simplify.ll
apint-shift.ll
apint-shl-trunc.ll
apint-sub.ll
apint-xor1.ll
apint-xor2.ll
apint-zext1.ll
apint-zext2.ll
binop-cast.ll
bit-tracking.ll Remove llvm-upgrade and update tests. 2008-03-09 08:16:40 +00:00
bitcast-gep.ll
bitcast-vector-fold.ll Implement constant folding if vector<->vector bitcasts where the number 2007-12-11 07:29:44 +00:00
bitcount.ll
bittest.ll Update old-style syntax in some "not grep" tests. 2008-05-01 23:50:07 +00:00
bswap-fold.ll implement some simple bswap optimizations, rdar://5992453 2008-06-18 04:33:20 +00:00
bswap.ll Remove llvm-upgrade and update tests. 2008-03-09 08:16:40 +00:00
call2.ll
call-cast-target.ll Remove llvm-upgrade and update tests. 2008-03-09 08:16:40 +00:00
call-intrinsics.ll Remove llvm-upgrade and update tests. 2008-03-09 08:16:40 +00:00
call.ll Ignore stderr for some more tests that expect warnings there. 2008-06-10 16:13:38 +00:00
canonicalize_branch.ll Remove llvm-upgrade and update tests. 2008-03-09 08:16:40 +00:00
cast2.ll
cast_ptr.ll Remove llvm-upgrade and update tests. 2008-03-09 08:16:40 +00:00
cast-and-cast.ll Remove llvm-upgrade and update tests. 2008-03-09 08:16:40 +00:00
cast-cast-to-and.ll Remove llvm-upgrade and update tests. 2008-03-09 08:16:40 +00:00
cast-load-gep.ll Remove llvm-upgrade and update tests. 2008-03-09 08:16:40 +00:00
cast-malloc.ll Remove llvm-upgrade and update tests. 2008-03-09 08:16:40 +00:00
cast-mul-select.ll Fix missed optimization opportunity when analyzing cast of mul and select. 2008-07-05 21:19:34 +00:00
cast-propagate.ll Remove llvm-upgrade and update tests. 2008-03-09 08:16:40 +00:00
cast-set.ll Remove llvm-upgrade and update tests. 2008-03-09 08:16:40 +00:00
cast.ll Byebye llvm-upgrade! 2008-03-25 04:26:08 +00:00
CPP_min_max.ll rename *.llx -> *.ll, last batch. 2008-04-19 22:32:52 +00:00
deadcode.ll dead calls to llvm.stacksave can be deleted, even though they 2007-12-29 00:59:12 +00:00
dg.exp sabre brings to my attention that the 'tr' suffix is also obsolete 2008-05-20 21:00:03 +00:00
div-cmp-overflow.ll Fix an icmp+sdiv optimization to check for and handle an overflow 2008-09-10 23:30:57 +00:00
div.ll implement PR2328. 2008-05-16 02:59:42 +00:00
extractvalue.ll Add a few cases to instcombine's extractvalue testcase. 2008-07-16 12:57:25 +00:00
fold-vector-zero.ll
fp-ret-bitcast.ll Situations can arise when you have a function called that returns a 'void', but 2008-05-14 22:45:20 +00:00
fpcast.ll Remove llvm-upgrade and update tests. 2008-03-09 08:16:40 +00:00
fpextend.ll Fold fptrunc(add (fpextend x), (fpextend y)) -> add(x,y), as GCC does. 2008-01-27 05:29:54 +00:00
GEPIdxCanon.ll Remove GCSE and LoadVN from the testsuite. 2008-08-16 00:00:54 +00:00
getelementptr_cast.ll Remove llvm-upgrade and update tests. 2008-03-09 08:16:40 +00:00
getelementptr_const.ll Remove GCSE and LoadVN from the testsuite. 2008-08-16 00:00:54 +00:00
getelementptr_index.ll Remove llvm-upgrade and update tests. 2008-03-09 08:16:40 +00:00
getelementptr_promote.ll On 64-bit targets, change 32-bit getelementptr indices to be 64-bit 2008-09-11 23:06:38 +00:00
getelementptr-setcc.ll Remove llvm-upgrade and update tests. 2008-03-09 08:16:40 +00:00
getelementptr-seteq.ll optimize "p != gep p, ..." better. This allows us to compile 2008-04-22 02:53:33 +00:00
getelementptr.ll Byebye llvm-upgrade! 2008-03-25 04:26:08 +00:00
hoist_instr.ll Remove llvm-upgrade and update tests. 2008-03-09 08:16:40 +00:00
icmp.ll
IntPtrCast.ll Remove llvm-upgrade and update tests. 2008-03-09 08:16:40 +00:00
JavaCompare.ll make this condition more precise. 2008-07-11 03:54:57 +00:00
known_align.ll
load2.ll
load.ll Byebye llvm-upgrade! 2008-03-25 04:26:08 +00:00
loadstore-alignment.ll
malloc2.ll
malloc3.ll
malloc-free-delete.ll
malloc.ll
memcpy-to-load.ll Turn a memcpy from a double* into a load/store of double instead of 2008-01-14 00:28:35 +00:00
memmove.ll Implement PR2370: memmove(x,x,size) -> noop. 2008-05-28 05:30:41 +00:00
memset.ll move lowering of llvm.memset -> store from simplify libcalls 2008-04-30 06:39:11 +00:00
mul-masked-bits.ll Fix a bug in the ComputeMaskedBits logic for multiply. 2008-05-07 00:35:55 +00:00
mul.ll Implement support for simplifying vector comparisons by 0.0 and 1.0 like we 2008-08-11 22:06:05 +00:00
narrow.ll Remove llvm-upgrade and update test cases. 2008-03-01 09:15:35 +00:00
not-fcmp.ll
not.ll Implement PR2298. This transforms: 2008-05-09 05:19:28 +00:00
or2.ll
or.ll Remove llvm-upgrade and update test cases. 2008-03-01 09:15:35 +00:00
phi-merge.ll
phi.ll Remove llvm-upgrade and update test cases. 2008-03-01 09:15:35 +00:00
pr2645-0.ll Fix a vectorshuffle instcombine bug introduced by r55995. 2008-09-11 22:47:57 +00:00
pr2645-1.ll Fix a vectorshuffle instcombine bug introduced by r55995. 2008-09-11 22:47:57 +00:00
preserve-sminmax.ll Improve instcombine's handling of integer min and max in two ways: 2008-09-16 18:46:06 +00:00
README.txt
rem.ll Don't try to simplify urem and srem using arithmetic rules that don't work 2008-03-06 06:48:30 +00:00
select.ll Remove llvm-upgrade and update test cases. 2008-03-01 09:15:35 +00:00
set.ll Remove llvm-upgrade and update tests. 2008-03-09 08:16:40 +00:00
setcc-cast-cast.ll Update old-style syntax in some "not grep" tests. 2008-05-01 23:50:07 +00:00
setcc-strength-reduce.ll Remove llvm-upgrade and update tests. 2008-03-09 08:16:40 +00:00
sext-misc.ll optimize a common idiom generated by clang for bitfield access, PR2638. 2008-08-06 07:35:52 +00:00
shift-simplify.ll
shift-sra.ll Remove llvm-upgrade and update test cases. 2008-03-01 09:15:35 +00:00
shift-trunc-shift.ll implement InstCombine/shift-trunc-shift.ll. This allows 2007-12-22 09:07:47 +00:00
shift.ll Remove llvm-upgrade and update tests. 2008-03-09 08:16:40 +00:00
shl-icmp.ll Don't do: "(X & 4) >> 1 == 2 --> (X & 4) == 4" if there are more than one uses of the shift result. 2008-04-23 00:38:06 +00:00
shl-trunc.ll Remove llvm-upgrade and update test cases. 2008-03-01 09:15:35 +00:00
shufflemask-undef.ll Fix a shufflevector instcombine that was emitting invalid masks indices 2008-08-06 18:17:32 +00:00
signext.ll Remove llvm-upgrade and update tests. 2008-03-09 08:16:40 +00:00
sink_instruction.ll Remove llvm-upgrade and update test cases. 2008-03-01 09:15:35 +00:00
sitofp.ll Zap sitofp/fptoui pairs. In all cases when the sign difference 2008-08-06 05:13:06 +00:00
srem1.ll Fix a bogus srem rule - a negative value srem'd by a power-of-2 2008-08-13 23:12:35 +00:00
srem-simplify-bug.ll Correct the value of LowBits in srem and urem handling in 2008-05-06 00:51:48 +00:00
srem.ll
stacksaverestore.ll optimize away stackrestore calls that have no intervening alloca or call. 2008-02-18 06:12:38 +00:00
store-merge.ll
store.ll Remove llvm-upgrade and update test cases. 2008-03-01 09:15:35 +00:00
sub.ll Implement PR2298. This transforms: 2008-05-09 05:19:28 +00:00
udiv_select_to_select_shift.ll Fix PR2506 by being a bit more careful about reverse fact propagation when 2008-07-14 00:15:52 +00:00
udiv-simplify-bug-0.ll Fix a mistake in the computation of leading zeros for udiv. 2008-05-02 21:30:02 +00:00
udiv-simplify-bug-1.ll Fix a mistake in the computation of leading zeros for udiv. 2008-05-02 21:30:02 +00:00
urem-simplify-bug.ll Fix an overaggressive SimplifyDemandedBits optimization on urem. This 2008-05-01 19:13:24 +00:00
urem.ll
vec_demanded_elts.ll
vec_extract_elt.ll
vec_insert_to_shuffle.ll Remove llvm-upgrade and update tests. 2008-03-09 08:16:40 +00:00
vec_insertelt.ll
vec_narrow.ll Remove llvm-upgrade and update test cases. 2008-03-01 09:15:35 +00:00
vec_shuffle.ll
vector-srem.ll
volatile_store.ll
xor2.ll
xor-undef.ll Handle a special case xor undef, undef -> 0. Technically this should be transformed to undef. But this is such a common idiom (misuse) we are going to handle it. 2008-03-25 20:07:13 +00:00
xor.ll Remove llvm-upgrade and update tests. 2008-03-09 08:16:40 +00:00
zero-point-zero-add.ll eliminate additions of 0.0 when they are obviously dead. This has to be careful to 2008-01-29 06:52:45 +00:00
zeroext-and-reduce.ll Remove llvm-upgrade and update test cases. 2008-03-01 09:15:35 +00:00
zext-fold.ll Peer through sext/zext when looking for not(cmp). 2008-05-31 19:01:33 +00:00
zext-or-icmp.ll Transform (zext (or (icmp), (icmp))) to (or (zext (cimp), (zext icmp))) if at least one of the (zext icmp) can be transformed to eliminate an icmp. 2008-03-24 00:21:34 +00:00
zext.ll Remove llvm-upgrade and update test cases. 2008-03-01 09:15:35 +00:00

This directory contains test cases for the instcombine transformation.  The
dated tests are actual bug tests, whereas the named tests are used to test
for features that the this pass should be capable of performing.