llvm-6502/test/Transforms/InstCombine
Chris Lattner 2454a2e0c3 eliminate additions of 0.0 when they are obviously dead. This has to be careful to
avoid turning -0.0 + 0.0 -> -0.0 which is incorrect.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46499 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-29 06:52:45 +00:00
..
2002-03-11-InstCombineHang.ll
2002-05-14-SubFailure.ll don't use 'not' when we can use a positive test 2007-03-28 01:43:43 +00:00
2002-05-14-TouchDeletedInst.ll For PR1319: 2007-04-15 07:38:21 +00:00
2002-08-02-CastTest.ll For PR1319: 2007-04-14 20:13:02 +00:00
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 For PR1319: 2007-04-15 07:38:21 +00:00
2003-08-12-AllocaNonNull.ll For PR1319: 2007-04-14 20:13:02 +00:00
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 Changes to fix problems with "make check". Apparently you can redefine 2007-04-14 22:51:29 +00:00
2004-09-20-BadLoadCombine2.llx For PR1319: 2007-04-14 20:13:02 +00:00
2004-09-20-BadLoadCombine.llx For PR1319: 2007-04-14 20:13:02 +00:00
2004-09-28-BadShiftAndSetCC.llx
2004-11-22-Missed-and-fold.ll
2004-11-27-SetCCForCastLargerAndConstant.ll For PR1319: 2007-04-15 07:38:21 +00:00
2004-12-08-InstCombineCrash.ll
2004-12-08-RemInfiniteLoop.ll
2005-03-04-ShiftOverflow.ll For PR1319: 2007-04-14 20:13:02 +00:00
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 For PR1319: 2007-04-14 20:13:02 +00:00
2005-07-07-DeadPHILoop.ll
2006-02-07-SextZextCrash.ll
2006-02-13-DemandedMiscompile.ll For PR1319: 2007-04-14 20:13:02 +00:00
2006-02-28-Crash.ll
2006-03-30-ExtractElement.ll
2006-04-01-InfLoop.ll For PR1319: 2007-04-15 07:38:21 +00:00
2006-04-28-ShiftShiftLongLong.ll For PR1319: 2007-04-14 20:13:02 +00:00
2006-05-04-DemandedBitCrash.ll For PR1319: 2007-04-15 07:38:21 +00:00
2006-05-06-Infloop.ll For PR1319: 2007-04-15 07:38:21 +00:00
2006-06-28-infloop.ll
2006-09-11-EmptyStructCrash.ll For PR1319: 2007-04-15 07:38:21 +00:00
2006-09-15-CastToBool.ll
2006-10-19-SignedToUnsignedCastAndConst-2.ll For PR1319: 2007-04-14 20:13:02 +00:00
2006-10-19-SignedToUnsignedCastAndConst.ll For PR1319: 2007-04-14 20:13:02 +00:00
2006-10-20-mask.ll For PR1319: 2007-04-14 20:13:02 +00:00
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 For PR1319: 2007-04-14 20:13:02 +00:00
2006-11-10-ashr-miscompile.ll
2006-11-27-XorBug.ll For PR1319: 2007-04-14 20:13:02 +00:00
2006-12-01-BadFPVectorXform.ll For PR1319: 2007-04-14 20:13:02 +00:00
2006-12-05-fp-to-int-ext.ll
2006-12-08-ICmp-Combining.ll For PR1319: 2007-04-14 20:13:02 +00:00
2006-12-08-Phi-ICmp-Op-Fold.ll For PR1319: 2007-04-14 20:13:02 +00:00
2006-12-08-Select-ICmp.ll For PR1319: 2007-04-15 07:38:21 +00:00
2006-12-10-ICmp-GEP-GEP.ll For PR1319: 2007-04-15 07:38:21 +00:00
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 For PR1319: 2007-04-15 07:38:21 +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 For PR1319: 2007-04-14 20:13:02 +00:00
2007-01-18-VectorInfLoop.ll
2007-01-27-AndICmp.ll For PR1319: 2007-04-14 20:13:02 +00:00
2007-02-01-LoadSinkAlloca.ll For PR1319: 2007-04-14 20:13:02 +00:00
2007-02-07-PointerCast.ll For PR1319: 2007-04-14 20:13:02 +00:00
2007-02-23-PhiFoldInfLoop.ll Remove use of implementation keyword. 2007-03-28 02:38:26 +00:00
2007-03-13-CompareMerge.ll For PR1319: 2007-04-14 20:13:02 +00:00
2007-03-19-BadTruncChangePR1261.ll this xform is correct, not an xfail 2007-04-08 08:02:39 +00:00
2007-03-21-SignedRangeTest.ll For PR1319: 2007-04-14 20:13:02 +00:00
2007-03-25-BadShiftMask.ll For PR1319: 2007-04-14 20:13:02 +00:00
2007-03-25-DoubleShift.ll Add a test case for PR1271 (necessary, but not sufficient). 2007-03-25 21:30:41 +00:00
2007-03-26-BadShiftMask.ll For PR1319: 2007-04-15 07:38:21 +00:00
2007-03-27-PR1280.ll For PR1319: 2007-04-14 20:13:02 +00:00
2007-03-31-InfiniteLoop.ll For PR1319: 2007-04-14 20:13:02 +00:00
2007-04-04-BadFoldBitcastIntoMalloc.ll For PR1319: 2007-04-16 17:36:08 +00:00
2007-04-08-SingleEltVectorCrash.ll new testcase for PR1304 2007-04-09 01:37:35 +00:00
2007-05-04-Crash.ll new testacse for PR1384 2007-05-05 01:59:05 +00:00
2007-05-10-icmp-or.ll new testcase that crashes instcombine 2007-05-11 05:55:38 +00:00
2007-05-14-Crash.ll New testcase that crashes instcombine 2007-05-15 00:15:49 +00:00
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
2008-01-21-MismatchedCastAndCompare.ll Handle some more combinations of extend and icmp. Fixes PR1940. 2008-01-28 03:48:02 +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
add2.ll Implement PR1795, an instcombine hack for forming GEPs with integer pointer arithmetic. 2008-01-08 07:23:51 +00:00
add.ll For PR1319: 2007-04-16 17:36:08 +00:00
align-inc.ll oops, forgot to commit this. 2007-08-12 16:55:14 +00:00
alloca.ll For PR1319: 2007-04-14 20:13:02 +00:00
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 For PR1319: 2007-04-15 07:38:21 +00:00
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 For PR1319: 2007-04-15 07:38:21 +00:00
apint-add1.ll For PR1319: 2007-04-14 20:13:02 +00:00
apint-add2.ll For PR1319: 2007-04-15 07:38:21 +00:00
apint-and1.ll For PR1319: 2007-04-15 07:38:21 +00:00
apint-and2.ll For PR1319: 2007-04-15 07:38:21 +00:00
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 For PR1319: 2007-04-15 07:38:21 +00:00
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 Remove use of implementation keyword. 2007-03-28 02:38:26 +00:00
apint-cast-and-cast.ll Add test case for testing InstCombine with arbitrary precision integer 2007-03-23 20:48:34 +00:00
apint-cast-cast-to-and.ll Add test case for testing InstCombine with arbitrary precision integer 2007-03-23 20:48:34 +00:00
apint-cast.ll For PR1319: 2007-04-14 20:13:02 +00:00
apint-div1.ll bool -> i1 (found by llvm.exp) 2007-04-14 18:30:06 +00:00
apint-div2.ll bool -> i1 (found by llvm.exp) 2007-04-14 18:30:06 +00:00
apint-elim-logicalops.ll For PR1319: 2007-04-14 20:13:02 +00:00
apint-mul1.ll Remove use of implementation keyword. 2007-03-28 02:38:26 +00:00
apint-mul2.ll Remove use of implementation keyword. 2007-03-28 02:38:26 +00:00
apint-not.ll Fix testsuite hang. 2007-03-26 10:59:13 +00:00
apint-or1.ll Remove use of implementation keyword. 2007-03-28 02:38:26 +00:00
apint-or2.ll For PR1319: 2007-04-14 20:13:02 +00:00
apint-rem1.ll For PR1319: 2007-04-14 20:13:02 +00:00
apint-rem2.ll For PR1319: 2007-04-14 20:13:02 +00:00
apint-select.ll For PR1319: 2007-04-14 20:13:02 +00:00
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 For PR1319: 2007-04-14 20:13:02 +00:00
apint-shl-trunc.ll For PR1319: 2007-04-14 20:13:02 +00:00
apint-sub.ll For PR1319: 2007-04-15 07:38:21 +00:00
apint-xor1.ll For PR1319: 2007-04-14 20:13:02 +00:00
apint-xor2.ll For PR1319: 2007-04-15 07:38:21 +00:00
apint-zext1.ll For PR1319: 2007-04-14 20:13:02 +00:00
apint-zext2.ll For PR1319: 2007-04-14 20:13:02 +00:00
binop-cast.ll Fix a test test llvm.exp found. 2007-04-14 18:33:31 +00:00
bit-tracking.ll For PR1319: 2007-04-14 20:13:02 +00:00
bitcast-gep.ll new testcase 2007-04-28 00:54:45 +00:00
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 For PR1319: 2007-04-14 20:13:02 +00:00
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 Test for transformConstExprCastCall fix. 2007-04-04 19:18:16 +00:00
call-cast-target.ll For PR1319: 2007-04-14 20:13:02 +00:00
call-intrinsics.ll
call.ll For PR1319: 2007-04-15 07:38:21 +00:00
canonicalize_branch.ll For PR1319: 2007-04-14 20:13:02 +00:00
cast2.ll For PR1319: 2007-04-14 20:13:02 +00:00
cast_ptr.ll un-xfail this. 2007-05-05 22:41:13 +00:00
cast-and-cast.ll For PR1319: 2007-04-14 20:13:02 +00:00
cast-cast-to-and.ll For PR1319: 2007-04-14 20:13:02 +00:00
cast-load-gep.ll For PR1319: 2007-04-14 20:13:02 +00:00
cast-malloc.ll update to new t-d strings. 2007-02-15 00:54:16 +00:00
cast-propagate.ll For PR1319: 2007-04-14 20:13:02 +00:00
cast-set.ll
cast.ll For PR1319: 2007-04-15 07:38:21 +00:00
CPP_min_max.llx For PR1319: 2007-04-15 07:38:21 +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 Changes to fix problems with "make check". Apparently you can redefine 2007-04-14 22:51:29 +00:00
div.ll For PR1319: 2007-04-15 07:38:21 +00:00
fold-vector-zero.ll Add support for folding binary operators with vector zero operands. 2007-10-30 19:00:49 +00:00
fpcast.ll This test needs to use egrep. 2007-04-14 20:02:51 +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 For PR1319: 2007-04-14 20:13:02 +00:00
getelementptr_cast.ll For PR1319: 2007-04-14 20:13:02 +00:00
getelementptr_const.ll For PR1319: 2007-04-14 20:13:02 +00:00
getelementptr_index.ll
getelementptr-setcc.ll For PR1319: 2007-04-15 07:38:21 +00:00
getelementptr.ll For PR1319: 2007-04-15 07:38:21 +00:00
hoist_instr.ll For PR1319: 2007-04-14 20:13:02 +00:00
icmp.ll For PR1319: 2007-04-14 20:13:02 +00:00
IntPtrCast.ll
JavaCompare.ll For PR1319: 2007-04-14 20:13:02 +00:00
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 For PR1319: 2007-04-14 20:13:02 +00:00
malloc3.ll testcase for PR1728 2007-10-12 05:29:53 +00:00
malloc-free-delete.ll For PR1319: 2007-04-14 20:13:02 +00:00
malloc.ll new testcase, update old one. 2007-04-06 18:56:54 +00:00
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 This test should have been updated with llvm 1.7! 2007-04-14 20:21:37 +00:00
mul.ll rename function to avoid llvm-upgrade warning 2007-07-16 04:09:00 +00:00
narrow.ll For PR1319: 2007-04-14 20:13:02 +00:00
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 For PR1319: 2007-04-15 07:38:21 +00:00
phi-merge.ll Implement PR1777 by detecting dependent phis that 2007-11-06 21:52:06 +00:00
phi.ll For PR1319: 2007-04-15 07:38:21 +00:00
README.txt
rem.ll For PR1319: 2007-04-15 07:38:21 +00:00
select.ll Implement PR1822 2007-11-25 21:27:53 +00:00
set.ll For PR1319: 2007-04-14 20:13:02 +00:00
setcc-cast-cast.ll For PR1319: 2007-04-14 20:13:02 +00:00
setcc-strength-reduce.ll For PR1319: 2007-04-14 20:13:02 +00:00
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 For PR1319: 2007-04-14 20:13:02 +00:00
shl-trunc.ll
signext.ll For PR1319: 2007-04-15 07:38:21 +00:00
sink_instruction.ll For PR1319: 2007-04-14 20:13:02 +00:00
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 For PR1319: 2007-04-14 20:13:02 +00:00
sub.ll For PR1319: 2007-04-14 20:13:02 +00:00
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 manually upgrade test. Add a new test2. I have no way to see if this works 2007-04-14 22:27:33 +00:00
vec_extract_elt.ll new testcase 2007-04-14 23:00:51 +00:00
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 For PR1319: 2007-04-14 20:13:02 +00:00
vec_narrow.ll For PR1319: 2007-04-14 20:13:02 +00:00
vec_shuffle.ll For PR1319: 2007-04-15 07:38:21 +00:00
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 For PR1319: 2007-04-14 20:13:02 +00:00
xor.ll For PR1319: 2007-04-14 20:13:02 +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 For PR1319: 2007-04-14 20:13:02 +00:00
zext-fold.ll Convert tests using "| wc -l | grep ..." to use the count script. 2007-08-15 13:36:28 +00:00
zext.ll For PR1319: 2007-04-14 20:13:02 +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.