llvm-6502/test/Transforms/InstCombine
Dale Johannesen 549170206e Move & restructure test per review.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62538 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-19 22:33:12 +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 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
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 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
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 Ignore stderr for some more tests that expect warnings there. 2008-06-10 16:13:38 +00:00
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 Fix two more not-grep tests that were missing llvm-dis. 2008-06-09 22:36:45 +00:00
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 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
2008-05-08-StrLenSink.ll
2008-05-09-SinkOfInvoke.ll
2008-05-17-InfLoop.ll
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
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
2008-12-17-SRemNegConstVec.ll Make all the vector elements positive in an srem of constant vector. 2008-12-18 06:31:11 +00:00
2009-01-05-i128-crash.ll make m_ConstantInt(int64_t) safely match ConstantInt's that are larger than i64. 2009-01-05 23:45:50 +00:00
2009-01-08-AlignAlloca.ll Make instcombine ensure that all allocas are explicitly aligned at at 2009-01-13 20:18:38 +00:00
2009-01-16-PointerAddrSpace.ll Fix PR3335 by not turning a store to one address space into a store to another. 2009-01-16 20:12:52 +00:00
2009-01-19-fmod-constant-float.ll Move & restructure test per review. 2009-01-19 22:33:12 +00:00
add2.ll
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
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-not-or.ll simplify these patterns using m_Specific. No need to grep for 2008-12-01 05:16:26 +00:00
and-or-and.ll
and-or-not.ll
and-or.ll Implement ((A|B)&1)|(B&-2) -> (A&1) | B transformation. This also takes care of 2008-12-01 01:07:11 +00:00
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 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 Instcombine was illegally transforming -X/C into X/-C when either X or C 2008-11-30 03:42:12 +00:00
apint-xor1.ll
apint-xor2.ll
apint-zext1.ll
apint-zext2.ll
binop-cast.ll
bit-tracking.ll
bitcast-gep.ll Fix part 3/2 of PR3290, making instcombine zap (gep(bitcast)) when possible. 2009-01-09 05:44:56 +00:00
bitcast-vector-fold.ll
bitcount.ll
bittest.ll
bswap-fold.ll implement some simple bswap optimizations, rdar://5992453 2008-06-18 04:33:20 +00:00
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 Ignore stderr for some more tests that expect warnings there. 2008-06-10 16:13:38 +00:00
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 Fix missed optimization opportunity when analyzing cast of mul and select. 2008-07-05 21:19:34 +00:00
cast-propagate.ll
cast-set.ll
cast-sext-zext.ll - Teach CanEvaluateInDifferentType of this xform: sext (zext ty1), ty2 -> zext ty2 2009-01-15 17:01:23 +00:00
cast.ll Clean up previous cast optimization a bit. Also make zext elimination a bit more aggressive: if it's not necessary to emit an AND (i.e. high bits are already zero), it's profitable to evaluate the operand at a different type. 2009-01-16 02:11:43 +00:00
CPP_min_max.ll
deadcode.ll
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
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
fpcast.ll
fpextend.ll
GEPIdxCanon.ll Remove GCSE and LoadVN from the testsuite. 2008-08-16 00:00:54 +00:00
getelementptr_cast.ll
getelementptr_const.ll Remove GCSE and LoadVN from the testsuite. 2008-08-16 00:00:54 +00:00
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 Implement rdar://6480391, extending of equality icmp's to avoid a truncation. 2009-01-09 07:47:06 +00:00
IntPtrCast.ll
JavaCompare.ll make this condition more precise. 2008-07-11 03:54:57 +00:00
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 Make instcombine ensure that all allocas are explicitly aligned at at 2009-01-13 20:18:38 +00:00
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 Implement PR2370: memmove(x,x,size) -> noop. 2008-05-28 05:30:41 +00:00
memset.ll
mul-masked-bits.ll
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
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-to-xor.ll Use m_Specific() instead of double matching. 2008-12-01 08:09:47 +00:00
or.ll
phi-merge.ll
phi.ll Teach inst combine to merge GEPs through PHIs. This is really 2008-12-01 02:34:36 +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
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
sdiv-1.ll Strengthen check for div inst-combining. 2008-11-30 04:33:53 +00:00
sdiv-2.ll getSExtValue() doesn't work for ConstantInts with bitwidth > 64 bits. Use all 2008-11-30 12:38:24 +00:00
select.ll
set.ll
setcc-cast-cast.ll
setcc-strength-reduce.ll
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
shift-trunc-shift.ll
shift.ll
shl-icmp.ll
shl-trunc.ll
shufflemask-undef.ll Fix a shufflevector instcombine that was emitting invalid masks indices 2008-08-06 18:17:32 +00:00
signext.ll
sink_instruction.ll
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
srem.ll
stacksaverestore.ll
store-merge.ll
store.ll
sub.ll Instcombine was illegally transforming -X/C into X/-C when either X or C 2008-11-30 03:42:12 +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
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-demorgans.ll XFAIL this test. The xform was removed. 2009-01-04 06:32:28 +00:00
xor-undef.ll
xor.ll
zero-point-zero-add.ll
zeroext-and-reduce.ll
zext-fold.ll Peer through sext/zext when looking for not(cmp). 2008-05-31 19:01:33 +00:00
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.