llvm-6502/test/Transforms/InstCombine
Duncan Sands b0c9b93bb4 I noticed that the trampoline straightening transformation could
drop attributes on varargs call arguments.  Also, it could generate
invalid IR if the transformed call already had the 'nest' attribute
somewhere (this can never happen for code coming from llvm-gcc,
but it's a theoretical possibility).  Fix both problems.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45973 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-14 19:52:09 +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.llx
2004-08-10-BoolSetCC.ll
2004-09-20-BadLoadCombine2.llx
2004-09-20-BadLoadCombine.llx
2004-09-28-BadShiftAndSetCC.llx
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 Convert tests using "| wc -l | grep ..." to use the count script. 2007-08-15 13:36:28 +00:00
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 Convert tests using "| wc -l | grep ..." to use the count script. 2007-08-15 13:36:28 +00:00
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 new testcase 2007-05-19 06:50:37 +00:00
2007-06-06-AshrSignBit.ll Add a test for PR1499. 2007-06-06 17:10:02 +00:00
2007-06-21-DivCompareMiscomp.ll new testcase miscompiled by instcombine, reduced from perl 2007-06-21 18:09:25 +00:00
2007-08-02-InfiniteLoop.ll Reduced testcase for PR1594 2007-08-02 17:11:24 +00:00
2007-09-05-EqualGEP.ll When the two operands of an icmp are equal, there are five possible predicates 2007-09-06 01:10:22 +00:00
2007-09-10-AliasConstFold.ll Fix a buggy constant folding transformation when handling aliases. 2007-09-10 23:42:42 +00:00
2007-09-11-Trampoline.ll Test that a call to a trampoline is turned into a call to 2007-09-11 15:07:50 +00:00
2007-09-17-AliasConstFold2.ll Testcase for PR1678. 2007-09-20 18:56:24 +00:00
2007-10-10-EliminateMemCpy.ll This test now passes. 2007-10-19 17:11:01 +00:00
2007-10-12-Crash.ll Fix a bug in my patch last night that broke InstCombine/2007-10-12-Crash.ll 2007-10-12 18:05:47 +00:00
2007-10-28-EmptyField.ll Fix PR1749 and InstCombine/2007-10-28-EmptyField.ll by handling 2007-10-29 02:40:02 +00:00
2007-10-28-stacksave.ll Model stacksave and stackrestore as both writing memory, since we 2007-10-29 05:47:52 +00:00
2007-10-31-RangeCrash.ll Fix InstCombine/2007-10-31-RangeCrash.ll 2007-11-01 02:18:41 +00:00
2007-10-31-StringCrash.ll Fix InstCombine/2007-10-31-StringCrash.ll by removing an obvious 2007-11-01 02:30:35 +00:00
2007-11-07-OpaqueAlignCrash.ll Better check 2007-11-08 18:45:15 +00:00
2007-11-15-CompareMiscomp.ll Fix PR1800 by correcting mistaken logic. 2007-11-16 06:04:17 +00:00
2007-11-22-IcmpCrash.ll Fix PR1817. 2007-11-22 23:47:13 +00:00
2007-11-25-CompatibleAttributes.ll Fix PR1816. If a bitcast of a function only exists because of a 2007-11-25 14:10:56 +00:00
2007-12-10-ConstFoldCompare.ll Fix PR1850 by removing an unsafe transformation from VMCore/ConstantFold.cpp. 2007-12-10 22:53:04 +00:00
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 When turning a call to a bitcast function into a direct call, 2008-01-13 08:02:44 +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
add2.ll Implement PR1795, an instcombine hack for forming GEPs with integer pointer arithmetic. 2008-01-08 07:23:51 +00:00
add.ll
align-inc.ll oops, forgot to commit this. 2007-08-12 16:55:14 +00:00
alloca.ll
and2.ll Implement a couple of foldings for ordered and unordered comparisons, 2007-10-24 05:38:08 +00:00
and-compare.ll Convert tests using "| wc -l | grep ..." to use the count script. 2007-08-15 13:36:28 +00:00
and-or-and.ll
and-or-not.ll Convert tests using "| wc -l | grep ..." to use the count script. 2007-08-15 13:36:28 +00:00
and-xor-merge.ll Convert tests using "| wc -l | grep ..." to use the count script. 2007-08-15 13:36:28 +00:00
and.ll
apint-add1.ll
apint-add2.ll
apint-and1.ll
apint-and2.ll
apint-and-compare.ll Convert tests using "| wc -l | grep ..." to use the count script. 2007-08-15 13:36:28 +00:00
apint-and-or-and.ll
apint-and-xor-merge.ll Convert tests using "| wc -l | grep ..." to use the count script. 2007-08-15 13:36:28 +00:00
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 Convert tests using "| wc -l | grep ..." to use the count script. 2007-08-15 13:36:28 +00:00
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 Implement constant folding if vector<->vector bitcasts where the number 2007-12-11 07:29:44 +00:00
bitcount.ll This is the patch to provide clean intrinsic function overloading support in LLVM. It cleans up the intrinsic definitions and generally smooths the process for more complicated intrinsic writing. It will be used by the upcoming atomic intrinsics as well as vector and float intrinsics in the future. 2007-08-04 01:51:18 +00:00
bittest.ll
bswap-fold.ll Convert tests using "| wc -l | grep ..." to use the count script. 2007-08-15 13:36:28 +00:00
bswap.ll Convert tests using "| wc -l | grep ..." to use the count script. 2007-08-15 13:36:28 +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-propagate.ll
cast-set.ll
cast.ll
CPP_min_max.llx
deadcode.ll dead calls to llvm.stacksave can be deleted, even though they 2007-12-29 00:59:12 +00:00
dg.exp
div.ll
fold-vector-zero.ll Add support for folding binary operators with vector zero operands. 2007-10-30 19:00:49 +00:00
fpcast.ll
GEPIdxCanon.ll
getelementptr_cast.ll
getelementptr_const.ll
getelementptr_index.ll
getelementptr-setcc.ll
getelementptr.ll
hoist_instr.ll
icmp.ll
IntPtrCast.ll
JavaCompare.ll
known_align.ll Fix a bug in GetKnownAlignment of packed structs. 2007-07-31 20:13:21 +00:00
load2.ll Transform a load from an undef/zero global into an undef/global even if we 2007-08-11 18:48:48 +00:00
load.ll Change all floating constants that are not exactly 2007-09-05 17:50:36 +00:00
loadstore-alignment.ll Convert tests using "| wc -l | grep ..." to use the count script. 2007-08-15 13:36:28 +00:00
malloc2.ll
malloc3.ll testcase for PR1728 2007-10-12 05:29:53 +00:00
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
mul.ll rename function to avoid llvm-upgrade warning 2007-07-16 04:09:00 +00:00
narrow.ll
not-fcmp.ll It's safe to fold not of fcmp. 2007-08-06 20:04:16 +00:00
not.ll
or2.ll Implement a couple of foldings for ordered and unordered comparisons, 2007-10-24 05:38:08 +00:00
or.ll
phi-merge.ll Implement PR1777 by detecting dependent phis that 2007-11-06 21:52:06 +00:00
phi.ll
README.txt
rem.ll
select.ll Implement PR1822 2007-11-25 21:27:53 +00:00
set.ll
setcc-cast-cast.ll
setcc-strength-reduce.ll
shift-simplify.ll Convert tests using "| wc -l | grep ..." to use the count script. 2007-08-15 13:36:28 +00:00
shift-sra.ll Convert tests using "| wc -l | grep ..." to use the count script. 2007-08-15 13:36:28 +00:00
shift-trunc-shift.ll implement InstCombine/shift-trunc-shift.ll. This allows 2007-12-22 09:07:47 +00:00
shift.ll
shl-trunc.ll
signext.ll
sink_instruction.ll
srem.ll Instcombine x-((x/y)*y) into a remainder operator. 2007-09-17 17:31:57 +00:00
stacksaverestore.ll update testcase 2007-10-29 17:06:35 +00:00
store-merge.ll Convert tests using "| wc -l | grep ..." to use the count script. 2007-08-15 13:36:28 +00:00
store.ll
sub.ll
udiv_select_to_select_shift.ll Convert tests using "| wc -l | grep ..." to use the count script. 2007-08-15 13:36:28 +00:00
urem.ll Instcombine x-((x/y)*y) into a remainder operator. 2007-09-17 17:31:57 +00:00
vec_demanded_elts.ll
vec_extract_elt.ll
vec_insert_to_shuffle.ll Convert tests using "| wc -l | grep ..." to use the count script. 2007-08-15 13:36:28 +00:00
vec_insertelt.ll
vec_narrow.ll
vec_shuffle.ll
vector-srem.ll Fix an abort in instcombine when folding creates a vector rem instruction. 2007-11-05 23:16:33 +00:00
volatile_store.ll Don't zap back to back volatile load/stores 2007-09-07 05:33:03 +00:00
xor2.ll
xor.ll
zeroext-and-reduce.ll
zext-fold.ll Convert tests using "| wc -l | grep ..." to use the count script. 2007-08-15 13:36:28 +00:00
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.