llvm-6502/test/Transforms/InstCombine
Dan Gohman 3d01334e6f Fix a bug in the over-index constant folding. When over-indexing an
array member of a struct, it's possible to land in an arbitrary position
inside that struct, such that attempting to find further getelementptr
indices will fail. In such cases, folding cannot be done.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79485 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-19 22:46:59 +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 Split the Add, Sub, and Mul instruction opcodes into separate 2009-06-04 22:49:04 +00:00
2006-11-03-Memmove64.ll
2006-11-10-ashr-miscompile.ll
2006-11-27-XorBug.ll
2006-12-01-BadFPVectorXform.ll Split the Add, Sub, and Mul instruction opcodes into separate 2009-06-04 22:49:04 +00:00
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 Teach instcombine to respect and preserve inbounds. Add inbounds 2009-07-28 01:40:03 +00:00
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
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 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 Split the Add, Sub, and Mul instruction opcodes into separate 2009-06-04 22:49:04 +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 Reinstate this optimization to fold icmp of xor when possible. Don't try to 2009-01-31 21:30:05 +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-specials.ll Do not use host floating point types when emitting 2009-01-21 20:32:55 +00:00
2009-01-19-fmod-constant-float.ll Calls to fmod, it turns out, are constant-folded by 2009-01-20 21:58:13 +00:00
2009-01-24-EmptyStruct.ll testcase for PR3381. 2009-01-24 17:16:04 +00:00
2009-01-31-InfIterate.ll reduce testcase. 2009-02-02 06:55:45 +00:00
2009-01-31-Pressure.ll Reinstate this optimization to fold icmp of xor when possible. Don't try to 2009-01-31 21:30:05 +00:00
2009-02-04-FPBitcast.ll Allow the inverse transform x86_fp80 -> i80 (also 2009-02-04 11:17:06 +00:00
2009-02-20-InstCombine-SROA.ll rename a function to indicate that it checks for profitability as well 2009-02-21 00:46:50 +00:00
2009-02-21-LoadCST.ll Don't sign extend the char when expanding char -> int during 2009-02-21 20:50:42 +00:00
2009-02-25-CrashZeroSizeArray.ll Fix PR3667 2009-02-25 18:20:01 +00:00
2009-03-02-VarLengthArrayGEP.ll Fix PR3694: add an instcombine micro-optimization that helps 2009-03-02 09:18:21 +00:00
2009-03-18-vector-ashr-crash.ll Fix PR3826 - InstComb assert with vector shift, by not calling ComputeNumSignBits on a vector. 2009-03-18 16:32:19 +00:00
2009-03-20-AShrOverShift.ll Fix instcombine to not introduce undefined shifts when merging two 2009-03-20 22:41:15 +00:00
2009-03-24-InfLoop.ll Fix PR3874 by restoring a condition I removed, but making it more 2009-03-25 00:28:58 +00:00
2009-04-06-GEP-Index-Crash.ll fix rdar://6762290, a crash compiling cxx filt with clang. 2009-04-07 05:03:34 +00:00
2009-04-07-MulPromoteToI96.ll Instcombine should not promote whole computation trees to "strange" 2009-04-08 05:41:03 +00:00
2009-05-23-FCmpToICmp.ll Fix bug in FoldFCmp_IntToFP_Cst. If inttofp is a uintofp, use unsigned instead of signed integer constant. 2009-05-22 23:10:53 +00:00
2009-06-11-StoreAddrSpace.ll fix testcase to properly check for the patch in r73195. 2009-06-15 05:46:02 +00:00
2009-06-16-SRemDemandedBits.ll Correct an accidental duplication of the test (patch doesn't handle 2009-06-17 03:05:00 +00:00
2009-07-02-MaskedIntVector.ll do not try to analyze bitcasts from i64 to <2 x i32> in ComputedMaskedBits. While 2009-07-02 16:04:08 +00:00
add2.ll Revert the addition of hasNoPointerOverflow to GEPOperator. 2009-07-20 17:43:30 +00:00
add3.ll Revert the addition of hasNoPointerOverflow to GEPOperator. 2009-07-20 17:43:30 +00:00
add-shrink.ll
add-sitofp.ll Split the Add, Sub, and Mul instruction opcodes into separate 2009-06-04 22:49:04 +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-external.ll Don't assume that external global variables are aligned at their preferred 2009-08-11 15:50:03 +00:00
align-inc.ll Change these tests to use regular loads instead of llvm.x86.sse2.loadu.dq. 2009-02-16 00:44:23 +00:00
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
ashr-nop.ll Fix a ValueTracking rule: RHS means operand 1, not 0. Add a simple 2009-02-24 02:00:40 +00:00
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-scalar-to-vector.ll Fix an instcombine abort on a scalar-to-vector bitcast. This fixes PR4487. 2009-07-01 21:38:46 +00:00
bitcast-vec-canon.ll Canonicalize bitcasts between types like <1 x i64> and i64 to 2009-07-18 23:06:53 +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
cast3.ll Add a testcase for PR2831. 2009-07-21 01:02:18 +00:00
cast_ld_addr_space.ll Instrcombine should not change load(cast p) to cast(load p) if the cast 2009-02-07 22:19:29 +00:00
cast_ptr.ll Revert the addition of hasNoPointerOverflow to GEPOperator. 2009-07-20 17:43:30 +00:00
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 Fix PR3452 (an infinite loop bootstrapping) by disabling the recent 2009-01-31 19:05:27 +00:00
cast-store-gep.ll Make InstCombineStoreToCast handle aggregates more aggressively, 2009-01-24 01:00:13 +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
constant-fold-gep-overindex.ll Fix a bug in the over-index constant folding. When over-indexing an 2009-08-19 22:46:59 +00:00
constant-fold-gep.ll Canonicalize indices in a constantexpr GEP. If Indices exceed the 2009-08-19 18:18:36 +00:00
constant-fold-ptr-casts.ll Revert 71165. It did more than just revert 71158 and it introduced 2009-05-07 19:46:24 +00:00
CPP_min_max.ll
dce-iterate.ll Split the Add, Sub, and Mul instruction opcodes into separate 2009-06-04 22:49:04 +00:00
deadcode.ll
dg.exp
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
enforce-known-alignment.ll Change the argument type in this test to something less convoluted, 2009-02-18 04:25:04 +00:00
exact-sdiv.ll Optimize (x/C)*C to x if the division is exact. 2009-08-12 16:33:09 +00:00
extractvalue.ll Add a few cases to instcombine's extractvalue testcase. 2008-07-16 12:57:25 +00:00
fold-bin-operand.ll Don't restrict the set of instructions where we try to constant-fold the 2009-07-15 22:13:34 +00:00
fold-vector-zero.ll
fp-ret-bitcast.ll
fpcast.ll
fpextend.ll Split the Add, Sub, and Mul instruction opcodes into separate 2009-06-04 22:49:04 +00:00
fsub-fsub.ll Don't do (x - (y - z)) --> (x + (z - y)) on floating-point types, because 2009-06-12 19:23:25 +00:00
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 Teach instcombine to respect and preserve inbounds. Add inbounds 2009-07-28 01:40:03 +00:00
getelementptr-seteq.ll Teach instcombine to respect and preserve inbounds. Add inbounds 2009-07-28 01:40:03 +00:00
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
lshr-phi.ll Teach ValueTracking a new way to analyze PHI nodes, and and teach 2009-05-21 02:28:33 +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 Fix trivial todo in instcombine. 2009-07-14 02:01:53 +00:00
multi-use-or.ll Split the Add, Sub, and Mul instruction opcodes into separate 2009-06-04 22:49:04 +00:00
narrow.ll
not-fcmp.ll
not.ll
nothrow.ll calls in nothrow functions can be marked nothrow even if the callee 2009-05-13 17:39:14 +00:00
nsw.ll Transform -X/C to X/-C, implementing a README.txt entry. 2009-08-12 16:37:02 +00:00
odr-linkage.ll Add a new "available_externally" linkage type. This is intended 2009-04-13 05:44:34 +00:00
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
ptr-int-cast.ll canonicalize inttoptr and ptrtoint instructions which cast pointers 2009-03-24 18:35:40 +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
sdiv-shift.ll Add combine: X sdiv (1 << Y) -> X udiv (1 << Y) when X doesn't have the 2009-07-18 09:53:21 +00:00
select-2.ll Throttle back "fold select into operand" transformation. InstCombine should not generate selects of two constants unless they are selects of 0 and 1. 2009-03-31 20:42:45 +00:00
select-load-call.ll Testcase for r73506 2009-06-16 17:23:25 +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 two changes: 2009-03-24 18:15:30 +00:00
shl-icmp.ll
shl-trunc.ll
shufflemask-undef.ll Split the Add, Sub, and Mul instruction opcodes into separate 2009-06-04 22:49:04 +00:00
shufflevec-constant.ll Add suppport for ConstantExprs of shufflevectors whose result type is not equal to the 2009-02-12 21:28:33 +00:00
signed-comparison.ll Split the Add, Sub, and Mul instruction opcodes into separate 2009-06-04 22:49:04 +00:00
signext.ll
simplify-demanded-bits-pointer.ll Add -disable-output. Thanks Bill! 2009-08-03 22:24:22 +00:00
sink_instruction.ll
sitofp.ll Split the Add, Sub, and Mul instruction opcodes into separate 2009-06-04 22:49:04 +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
stack-overalign.ll Add a testcase for the problem fixed in r65289. 2009-02-24 02:17:42 +00:00
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
trunc-mask-ext.ll Generalize the zext(trunc(t) & C) instcombine to work even with 2009-06-18 16:30:21 +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
udivrem-change-width.ll PR4548: optimize zext+udiv+trunc to udiv. 2009-07-13 22:46:01 +00:00
urem-simplify-bug.ll Make LLVM Assembly dramatically easier to read by aligning the comments, 2009-08-12 17:23:50 +00:00
urem.ll
vec_demanded_elts-2.ll APInt'fy SimplifyDemandedVectorElts so it can analyze vectors with more than 64 elements. 2009-02-03 10:05:09 +00:00
vec_demanded_elts-3.ll PR4340: Run SimplifyDemandedVectorElts on insertelement instructions; 2009-06-06 20:08:03 +00:00
vec_demanded_elts.ll Split the Add, Sub, and Mul instruction opcodes into separate 2009-06-04 22:49:04 +00:00
vec_extract_elt2.ll When InstCombine simplifies a load -> extract element to gep -> load, place 2009-08-13 05:12:13 +00:00
vec_extract_elt.ll
vec_insert_to_shuffle.ll
vec_insertelt.ll
vec_narrow.ll Split the Add, Sub, and Mul instruction opcodes into separate 2009-06-04 22:49:04 +00:00
vec_shuffle2.ll Fixed optimization of combining two shuffles where the first shuffle inputs 2009-01-26 04:39:00 +00:00
vec_shuffle.ll
vector-casts.ll merge vector-casts-0.ll into vector-casts.ll 2009-07-23 05:33:39 +00:00
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 Split the Add, Sub, and Mul instruction opcodes into separate 2009-06-04 22:49:04 +00:00
zeroext-and-reduce.ll
zext-bool-add-sub.ll Fix bug in run-line. 2009-07-13 22:31:30 +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
zext.ll commit a tweaked version of Daniel's patch for PR3599. We now 2009-02-17 20:47:23 +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.