llvm-6502/test/Transforms/InstCombine
Nick Lewycky 8ca5248522 Chris prefers icmp/select over udiv!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60187 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-27 22:41:10 +00:00
..
2002-03-11-InstCombineHang.ll
2002-05-14-SubFailure.ll
2002-05-14-TouchDeletedInst.ll
2002-08-02-CastTest.ll
2002-09-17-GetElementPtrCrash.ll
2002-12-05-MissedConstProp.ll
2003-05-26-CastMiscompile.ll
2003-05-27-ConstExprCrash.ll
2003-06-05-BranchInvertInfLoop.ll
2003-06-22-ConstantExprCrash.ll
2003-07-21-ExternalConstant.ll
2003-08-12-AllocaNonNull.ll
2003-09-09-VolatileLoadElim.ll
2003-10-23-InstcombineNullFail.ll
2003-10-29-CallSiteResolve.ll
2003-11-03-VarargsCallBug.ll
2003-11-13-ConstExprCastCall.ll
2004-01-13-InstCombineInvokePHI.ll
2004-02-23-ShiftShiftOverflow.ll
2004-03-13-InstCombineInfLoop.ll
2004-04-04-InstCombineReplaceAllUsesWith.ll
2004-05-07-UnsizedCastLoad.ll
2004-07-27-ConstantExprMul.ll
2004-08-09-RemInfLoop.ll
2004-08-10-BoolSetCC.ll
2004-09-20-BadLoadCombine2.ll
2004-09-20-BadLoadCombine.ll
2004-09-28-BadShiftAndSetCC.ll
2004-11-22-Missed-and-fold.ll
2004-11-27-SetCCForCastLargerAndConstant.ll
2004-12-08-InstCombineCrash.ll
2004-12-08-RemInfiniteLoop.ll
2005-03-04-ShiftOverflow.ll
2005-04-07-UDivSelectCrash.ll
2005-06-15-DivSelectCrash.ll
2005-06-15-ShiftSetCCCrash.ll
2005-06-16-RangeCrash.ll
2005-06-16-SetCCOrSetCCMiscompile.ll
2005-07-07-DeadPHILoop.ll
2006-02-07-SextZextCrash.ll
2006-02-13-DemandedMiscompile.ll
2006-02-28-Crash.ll
2006-03-30-ExtractElement.ll
2006-04-01-InfLoop.ll
2006-04-28-ShiftShiftLongLong.ll
2006-05-04-DemandedBitCrash.ll
2006-05-06-Infloop.ll
2006-06-28-infloop.ll
2006-09-11-EmptyStructCrash.ll
2006-09-15-CastToBool.ll
2006-10-19-SignedToUnsignedCastAndConst-2.ll
2006-10-19-SignedToUnsignedCastAndConst.ll
2006-10-20-mask.ll
2006-10-26-VectorReassoc.ll
2006-11-03-Memmove64.ll
2006-11-10-ashr-miscompile.ll
2006-11-27-XorBug.ll
2006-12-01-BadFPVectorXform.ll
2006-12-05-fp-to-int-ext.ll
2006-12-08-ICmp-Combining.ll
2006-12-08-Phi-ICmp-Op-Fold.ll
2006-12-08-Select-ICmp.ll
2006-12-10-ICmp-GEP-GEP.ll
2006-12-15-Range-Test.ll
2006-12-23-Select-Cmp-Cmp.ll
2007-01-13-ExtCompareMiscompile.ll
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
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
2007-12-16-AsmNoUnwind.ll
2007-12-18-AddSelCmpSub.ll
2007-12-28-IcmpSub2.ll
2008-01-06-BitCastAttributes.ll
2008-01-06-CastCrash.ll
2008-01-06-VoidCast.ll
2008-01-13-AndCmpCmp.ll
2008-01-13-NoBitCastAttributes.ll
2008-01-14-DoubleNest.ll
2008-01-14-VarArgTrampoline.ll
2008-01-21-MismatchedCastAndCompare.ll
2008-01-21-MulTrunc.ll
2008-01-27-FloatSelect.ll
2008-01-29-AddICmp.ll
2008-02-04-GEPIdxBug.ll
2008-02-13-MulURem.ll
2008-02-16-SDivOverflow2.ll
2008-02-16-SDivOverflow.ll
2008-02-23-MulSub.ll
2008-02-28-OrFCmpCrash.ll
2008-03-13-IntToPtr.ll
2008-04-22-ByValBitcast.ll
2008-04-28-VolatileStore.ll
2008-04-29-VolatileLoadDontMerge.ll
2008-04-29-VolatileLoadMerge.ll
2008-05-08-LiveStoreDelete.ll
2008-05-08-StrLenSink.ll
2008-05-09-SinkOfInvoke.ll
2008-05-17-InfLoop.ll
2008-05-18-FoldIntToPtr.ll
2008-05-22-IDivVector.ll
2008-05-22-NegValVector.ll
2008-05-23-CompareFold.ll
2008-05-31-AddBool.ll
2008-05-31-Bools.ll
2008-06-05-ashr-crash.ll
2008-06-08-ICmpPHI.ll
2008-06-13-InfiniteLoopStore.ll
2008-06-13-ReadOnlyCallStore.ll
2008-06-19-UncondLoad.ll
2008-06-21-CompareMiscomp.ll
2008-06-24-StackRestore.ll
2008-07-08-AndICmp.ll
2008-07-08-ShiftOneAndOne.ll
2008-07-08-SubAnd.ll
2008-07-08-VolatileLoadMerge.ll
2008-07-09-SubAndError.ll
2008-07-10-CastSextBool.ll
2008-07-10-ICmpBinOp.ll
2008-07-11-RemAnd.ll
2008-07-13-DivZero.ll
2008-07-16-fsub.ll
2008-07-16-sse2_storel_dq.ll
2008-08-05-And.ll
2008-08-17-ICmpXorSignbit.ll
2008-09-02-VectorCrash.ll
2008-09-29-FoldingOr.ll Fix misoptimization of: xor i1 (icmp eq (X, C1), icmp s[lg]t (X, C2)) 2008-09-30 06:08:34 +00:00
2008-10-11-DivCompareFold.ll Fix PR2697 by rewriting the '(X / pos) op neg' logic. This also changes 2008-10-11 22:55:00 +00:00
2008-10-23-ConstFoldWithoutMask.ll Don't try to create a mask when we don't need one. Fixes a crash. 2008-10-24 06:14:27 +00:00
2008-11-01-SRemDemandedBits.ll Fix demanded bits analysis with srem by negative number. Based on a patch 2008-11-02 02:41:50 +00:00
2008-11-08-FCmp.ll If the LHS of the FCMP is coming from a UIToFP instruction, then we don't want 2008-11-09 04:26:50 +00:00
2008-11-20-DivMulRem.ll Optimize (x/y)*y into x-(x%y) in general. Div and rem are about the same, and 2008-11-21 07:33:58 +00:00
2008-11-27-IDivVector.ll Add a couple of missed optimizations on integer vectors. Multiply and divide 2008-11-27 20:21:08 +00:00
2008-11-27-MultiplyIntVec.ll Add a couple of missed optimizations on integer vectors. Multiply and divide 2008-11-27 20:21:08 +00:00
2008-11-27-UDivNegative.ll Chris prefers icmp/select over udiv! 2008-11-27 22:41:10 +00:00
add2.ll
add-shrink.ll
add-sitofp.ll
add.ll
addnegneg.ll
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
align-addr.ll
align-inc.ll
alloca.ll
and2.ll
and-compare.ll
and-fcmp.ll - Somehow I forgot about one / une. 2008-10-14 18:13:38 +00:00
and-or-and.ll
and-or-not.ll
and-xor-merge.ll
and.ll
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
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
bitcast-gep.ll
bitcast-vector-fold.ll
bitcount.ll
bittest.ll
bswap-fold.ll
bswap.ll rewrite bswap matching to be more general, allowing arbitrary 2008-10-05 02:13:19 +00:00
call2.ll
call-cast-target.ll
call-intrinsics.ll
call.ll
canonicalize_branch.ll
cast2.ll
cast_ptr.ll
cast-and-cast.ll
cast-cast-to-and.ll
cast-load-gep.ll
cast-malloc.ll
cast-mul-select.ll
cast-propagate.ll
cast-set.ll
cast.ll
CPP_min_max.ll
deadcode.ll
dg.exp
div-cmp-overflow.ll
div.ll
extractvalue.ll
fold-vector-zero.ll
fp-ret-bitcast.ll
fpcast.ll
fpextend.ll
GEPIdxCanon.ll
getelementptr_cast.ll
getelementptr_const.ll
getelementptr_index.ll
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
getelementptr-seteq.ll
getelementptr.ll
hoist_instr.ll
icmp.ll
IntPtrCast.ll
JavaCompare.ll
known_align.ll
load2.ll
load3.ll Teach instcombine's visitLoad to scan back several instructions 2008-10-15 23:19:35 +00:00
load.ll Teach instcombine's visitLoad to scan back several instructions 2008-10-15 23:19:35 +00:00
loadstore-alignment.ll
logical-select.ll Handle the case where there is no "not". It is possible it got 2008-11-16 04:25:26 +00:00
malloc2.ll
malloc3.ll
malloc-free-delete.ll
malloc.ll
memcpy-to-load.ll
memmove.ll
memset.ll
mul-masked-bits.ll
mul.ll
narrow.ll
not-fcmp.ll
not.ll
or2.ll
or-fcmp.ll Combine (fcmp cc0 x, y) | (fcmp cc1 x, y) into a single fcmp when possible. 2008-10-14 18:44:08 +00:00
or.ll
phi-merge.ll
phi.ll
pr2645-0.ll
pr2645-1.ll
pr2996.ll Fix this recently moved code to use the correct type. CI is now a 2008-11-02 00:17:33 +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
select.ll
set.ll
setcc-cast-cast.ll
setcc-strength-reduce.ll
sext-misc.ll
shift-simplify.ll
shift-sra.ll
shift-trunc-shift.ll
shift.ll
shl-icmp.ll
shl-trunc.ll
shufflemask-undef.ll
signext.ll
sink_instruction.ll
sitofp.ll
srem1.ll
srem-simplify-bug.ll
srem.ll
stacksaverestore.ll
store-merge.ll
store.ll
sub.ll
udiv_select_to_select_shift.ll
udiv-simplify-bug-0.ll
udiv-simplify-bug-1.ll Chris prefers icmp/select over udiv! 2008-11-27 22:41:10 +00:00
urem-simplify-bug.ll
urem.ll
vec_demanded_elts.ll
vec_extract_elt.ll
vec_insert_to_shuffle.ll
vec_insertelt.ll
vec_narrow.ll
vec_shuffle.ll
vector-srem.ll
volatile_store.ll
xor2.ll
xor-undef.ll
xor.ll
zero-point-zero-add.ll
zeroext-and-reduce.ll
zext-fold.ll
zext-or-icmp.ll
zext.ll

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.