llvm-6502/test/Transforms/InstCombine
Dan Gohman fd3daa74c2 Generalize the zext(trunc(t) & C) instcombine to work even with
C is not a low-bits mask, and add a similar instcombine for
zext((trunc(t) & C) ^ C).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73705 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-18 16:30:21 +00:00
..
2002-03-11-InstCombineHang.ll Remove llvm-upgrade and update test cases. 2008-03-01 09:15:35 +00:00
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 Remove llvm-upgrade and update tests. 2008-03-09 08:16:40 +00:00
2002-08-02-CastTest.ll Remove llvm-upgrade and update test cases. 2008-03-01 09:15:35 +00:00
2002-09-17-GetElementPtrCrash.ll Remove llvm-upgrade and update test cases. 2008-03-01 09:15:35 +00:00
2002-12-05-MissedConstProp.ll Remove llvm-upgrade and update test cases. 2008-03-01 09:15:35 +00:00
2003-05-26-CastMiscompile.ll Remove llvm-upgrade and update test cases. 2008-03-01 09:15:35 +00:00
2003-05-27-ConstExprCrash.ll Remove llvm-upgrade and update test cases. 2008-03-01 09:15:35 +00:00
2003-06-05-BranchInvertInfLoop.ll Remove llvm-upgrade and update test cases. 2008-03-01 09:15:35 +00:00
2003-06-22-ConstantExprCrash.ll Remove llvm-upgrade and update test cases. 2008-03-01 09:15:35 +00:00
2003-07-21-ExternalConstant.ll Remove llvm-upgrade and update tests. 2008-03-09 08:16:40 +00:00
2003-08-12-AllocaNonNull.ll Remove llvm-upgrade and update test cases. 2008-03-01 09:15:35 +00:00
2003-09-09-VolatileLoadElim.ll Remove llvm-upgrade and update test cases. 2008-03-01 09:15:35 +00:00
2003-10-23-InstcombineNullFail.ll Remove llvm-upgrade and update test cases. 2008-03-01 09:15:35 +00:00
2003-10-29-CallSiteResolve.ll Remove llvm-upgrade and update test cases. 2008-03-01 09:15:35 +00:00
2003-11-03-VarargsCallBug.ll Remove llvm-upgrade and update test cases. 2008-03-01 09:15:35 +00:00
2003-11-13-ConstExprCastCall.ll Situations can arise when you have a function called that returns a 'void', but 2008-05-14 22:45:20 +00:00
2004-01-13-InstCombineInvokePHI.ll Remove llvm-upgrade and update test cases. 2008-03-01 09:15:35 +00:00
2004-02-23-ShiftShiftOverflow.ll Remove llvm-upgrade and update test cases. 2008-03-01 09:15:35 +00:00
2004-03-13-InstCombineInfLoop.ll Remove llvm-upgrade and update test cases. 2008-03-01 09:15:35 +00:00
2004-04-04-InstCombineReplaceAllUsesWith.ll Remove llvm-upgrade and update test cases. 2008-03-01 09:15:35 +00:00
2004-05-07-UnsizedCastLoad.ll Remove llvm-upgrade and update test cases. 2008-03-01 09:15:35 +00:00
2004-07-27-ConstantExprMul.ll Remove llvm-upgrade and update test cases. 2008-03-01 09:15:35 +00:00
2004-08-09-RemInfLoop.ll rename *.llx -> *.ll, last batch. 2008-04-19 22:32:52 +00:00
2004-08-10-BoolSetCC.ll Remove llvm-upgrade and update test cases. 2008-03-01 09:15:35 +00:00
2004-09-20-BadLoadCombine2.ll Update old-style syntax in some "not grep" tests. 2008-05-01 23:50:07 +00:00
2004-09-20-BadLoadCombine.ll rename *.llx -> *.ll, last batch. 2008-04-19 22:32:52 +00:00
2004-09-28-BadShiftAndSetCC.ll rename *.llx -> *.ll, last batch. 2008-04-19 22:32:52 +00:00
2004-11-22-Missed-and-fold.ll Remove llvm-upgrade and update test cases. 2008-03-01 09:15:35 +00:00
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 Remove llvm-upgrade and update test cases. 2008-03-01 09:15:35 +00:00
2004-12-08-RemInfiniteLoop.ll Remove llvm-upgrade and update test cases. 2008-03-01 09:15:35 +00:00
2005-03-04-ShiftOverflow.ll Remove llvm-upgrade and update test cases. 2008-03-01 09:15:35 +00:00
2005-04-07-UDivSelectCrash.ll Remove llvm-upgrade and update test cases. 2008-03-01 09:15:35 +00:00
2005-06-15-DivSelectCrash.ll Remove llvm-upgrade and update test cases. 2008-03-01 09:15:35 +00:00
2005-06-15-ShiftSetCCCrash.ll Remove llvm-upgrade and update test cases. 2008-03-01 09:15:35 +00:00
2005-06-16-RangeCrash.ll Remove llvm-upgrade and update test cases. 2008-03-01 09:15:35 +00:00
2005-06-16-SetCCOrSetCCMiscompile.ll Remove llvm-upgrade and update test cases. 2008-03-01 09:15:35 +00:00
2005-07-07-DeadPHILoop.ll Remove llvm-upgrade and update test cases. 2008-03-01 09:15:35 +00:00
2006-02-07-SextZextCrash.ll Remove llvm-upgrade and update test cases. 2008-03-01 09:15:35 +00:00
2006-02-13-DemandedMiscompile.ll Remove llvm-upgrade and update test cases. 2008-03-01 09:15:35 +00:00
2006-02-28-Crash.ll Remove llvm-upgrade and update test cases. 2008-03-01 09:15:35 +00:00
2006-03-30-ExtractElement.ll Remove llvm-upgrade and update test cases. 2008-03-01 09:15:35 +00:00
2006-04-01-InfLoop.ll Remove llvm-upgrade and update tests. 2008-03-09 08:16:40 +00:00
2006-04-28-ShiftShiftLongLong.ll Remove llvm-upgrade and update test cases. 2008-03-01 09:15:35 +00:00
2006-05-04-DemandedBitCrash.ll Remove llvm-upgrade and update tests. 2008-03-09 08:16:40 +00:00
2006-05-06-Infloop.ll Remove llvm-upgrade and update tests. 2008-03-09 08:16:40 +00:00
2006-06-28-infloop.ll Remove llvm-upgrade and update test cases. 2008-03-01 09:15:35 +00:00
2006-09-11-EmptyStructCrash.ll Remove llvm-upgrade and update tests. 2008-03-09 08:16:40 +00:00
2006-09-15-CastToBool.ll Remove llvm-upgrade and update test cases. 2008-03-01 09:15:35 +00:00
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 Remove llvm-upgrade and update test cases. 2008-03-01 09:15:35 +00:00
2006-10-20-mask.ll Remove llvm-upgrade and update test cases. 2008-03-01 09:15:35 +00:00
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 Remove llvm-upgrade and update test cases. 2008-03-01 09:15:35 +00:00
2006-11-10-ashr-miscompile.ll Remove llvm-upgrade and update test cases. 2008-03-01 09:15:35 +00:00
2006-11-27-XorBug.ll Remove llvm-upgrade and update test cases. 2008-03-01 09:15:35 +00:00
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 Remove llvm-upgrade and update test cases. 2008-03-01 09:15:35 +00:00
2006-12-08-ICmp-Combining.ll Remove llvm-upgrade and update test cases. 2008-03-01 09:15:35 +00:00
2006-12-08-Phi-ICmp-Op-Fold.ll Remove llvm-upgrade and update tests. 2008-03-09 08:16:40 +00:00
2006-12-08-Select-ICmp.ll Remove llvm-upgrade and update tests. 2008-03-09 08:16:40 +00:00
2006-12-10-ICmp-GEP-GEP.ll Remove llvm-upgrade and update tests. 2008-03-09 08:16:40 +00:00
2006-12-15-Range-Test.ll Remove llvm-upgrade and update tests. 2008-03-09 08:16:40 +00:00
2006-12-23-Select-Cmp-Cmp.ll Remove llvm-upgrade and update tests. 2008-03-09 08:16:40 +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 For PR761: 2007-01-26 08:25:06 +00:00
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 Remove llvm-upgrade and update test cases. 2008-03-01 09:15:35 +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 Ignore stderr for some more tests that expect warnings there. 2008-06-10 16:13:38 +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 Fix two more not-grep tests that were missing llvm-dis. 2008-06-09 22:36:45 +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
2008-01-29-AddICmp.ll Tag this test with the PR reference. 2008-02-03 16:35:19 +00:00
2008-02-04-GEPIdxBug.ll Fix a bug compiling PR1978 (perhaps not the only one though) which 2008-02-05 04:45:32 +00:00
2008-02-13-MulURem.ll Commit the testcase too. 2008-03-06 06:50:03 +00:00
2008-02-16-SDivOverflow2.ll Correctly fold divide-by-constant, even when faced with overflow. 2008-02-18 22:48:05 +00:00
2008-02-16-SDivOverflow.ll Correctly fold divide-by-constant, even when faced with overflow. 2008-02-18 22:48:05 +00:00
2008-02-23-MulSub.ll fix this test so that the fn name doesn't match the regex 2008-02-26 18:13:51 +00:00
2008-02-28-OrFCmpCrash.ll Folding or(fcmp,fcmp) only works if the operands of the fcmps are the same fp type. 2008-02-29 06:09:11 +00:00
2008-03-13-IntToPtr.ll The inst combining of inttoptr into GEP with one index was using the bit size of 2008-03-14 05:12:19 +00:00
2008-04-22-ByValBitcast.ll distill down the essense of this test. 2008-04-23 03:03:42 +00:00
2008-04-28-VolatileStore.ll don't delete the last store to an alloca if the store is volatile. 2008-04-29 04:58:38 +00:00
2008-04-29-VolatileLoadDontMerge.ll don't eliminate load from volatile value on paths where the load is dead. 2008-04-29 17:28:22 +00:00
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 Make instcombine's DSE respect loads as well as stores. It is not safe to 2008-05-08 17:20:30 +00:00
2008-05-08-StrLenSink.ll More than just loads can read from memory: readonly calls like strlen 2008-05-08 17:37:37 +00:00
2008-05-09-SinkOfInvoke.ll Testcase for PR2303. 2008-05-10 16:43:10 +00:00
2008-05-17-InfLoop.ll Fix PR2339 2008-05-18 04:11:26 +00:00
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 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
add2.ll be more aggressive about transforming add -> or when the operands have no 2008-05-19 20:01:56 +00:00
add-shrink.ll Teach instcombine 4 new xforms: 2008-05-20 05:46:13 +00:00
add-sitofp.ll Split the Add, Sub, and Mul instruction opcodes into separate 2009-06-04 22:49:04 +00:00
add.ll Teach masked value is zero about add and sub, and use MVIZ to 2008-03-21 05:19:58 +00:00
addnegneg.ll Fold (-x + -y) -> -(x+y) which promotes better association, fixing 2008-02-17 21:03:36 +00:00
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 Teach InstCombine's ComputeMaskedBits to handle pointer expressions 2008-04-10 18:43:06 +00:00
align-addr.ll Teach InstCombine's ComputeMaskedBits to handle pointer expressions 2008-04-10 18:43:06 +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 Remove llvm-upgrade and update tests. 2008-03-09 08:16:40 +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 Remove llvm-upgrade and update tests. 2008-03-09 08:16:40 +00:00
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 Remove llvm-upgrade and update tests. 2008-03-09 08:16:40 +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-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 Convert tests using "| wc -l | grep ..." to use the count script. 2007-08-15 13:36:28 +00:00
and.ll Remove llvm-upgrade and update tests. 2008-03-09 08:16:40 +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 When simplifying a call to a bitcast function, tighten up 2008-06-01 07:38:42 +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 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 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
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 Fix a test test llvm.exp found. 2007-04-14 18:33:31 +00:00
bit-tracking.ll Remove llvm-upgrade and update tests. 2008-03-09 08:16:40 +00:00
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 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 Update old-style syntax in some "not grep" tests. 2008-05-01 23:50:07 +00:00
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 Test for transformConstExprCastCall fix. 2007-04-04 19:18:16 +00:00
call-cast-target.ll Remove llvm-upgrade and update tests. 2008-03-09 08:16:40 +00:00
call-intrinsics.ll Remove llvm-upgrade and update tests. 2008-03-09 08:16:40 +00:00
call.ll Ignore stderr for some more tests that expect warnings there. 2008-06-10 16:13:38 +00:00
canonicalize_branch.ll Remove llvm-upgrade and update tests. 2008-03-09 08:16:40 +00:00
cast2.ll For PR1319: 2007-04-14 20:13:02 +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 Remove llvm-upgrade and update tests. 2008-03-09 08:16:40 +00:00
cast-and-cast.ll Remove llvm-upgrade and update tests. 2008-03-09 08:16:40 +00:00
cast-cast-to-and.ll Remove llvm-upgrade and update tests. 2008-03-09 08:16:40 +00:00
cast-load-gep.ll Remove llvm-upgrade and update tests. 2008-03-09 08:16:40 +00:00
cast-malloc.ll Remove llvm-upgrade and update tests. 2008-03-09 08:16:40 +00:00
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 Remove llvm-upgrade and update tests. 2008-03-09 08:16:40 +00:00
cast-set.ll Remove llvm-upgrade and update tests. 2008-03-09 08:16:40 +00:00
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-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 rename *.llx -> *.ll, last batch. 2008-04-19 22:32:52 +00:00
dce-iterate.ll Split the Add, Sub, and Mul instruction opcodes into separate 2009-06-04 22:49:04 +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 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 implement PR2328. 2008-05-16 02:59:42 +00:00
enforce-known-alignment.ll Change the argument type in this test to something less convoluted, 2009-02-18 04:25:04 +00:00
extractvalue.ll Add a few cases to instcombine's extractvalue testcase. 2008-07-16 12:57:25 +00:00
fold-vector-zero.ll Add support for folding binary operators with vector zero operands. 2007-10-30 19:00:49 +00:00
fp-ret-bitcast.ll Situations can arise when you have a function called that returns a 'void', but 2008-05-14 22:45:20 +00:00
fpcast.ll Remove llvm-upgrade and update tests. 2008-03-09 08:16:40 +00:00
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 Remove llvm-upgrade and update tests. 2008-03-09 08:16:40 +00:00
getelementptr_const.ll Remove GCSE and LoadVN from the testsuite. 2008-08-16 00:00:54 +00:00
getelementptr_index.ll Remove llvm-upgrade and update tests. 2008-03-09 08:16:40 +00:00
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 Remove llvm-upgrade and update tests. 2008-03-09 08:16:40 +00:00
getelementptr-seteq.ll optimize "p != gep p, ..." better. This allows us to compile 2008-04-22 02:53:33 +00:00
getelementptr.ll Byebye llvm-upgrade! 2008-03-25 04:26:08 +00:00
hoist_instr.ll Remove llvm-upgrade and update tests. 2008-03-09 08:16:40 +00:00
icmp.ll Implement rdar://6480391, extending of equality icmp's to avoid a truncation. 2009-01-09 07:47:06 +00:00
IntPtrCast.ll Remove llvm-upgrade and update tests. 2008-03-09 08:16:40 +00:00
JavaCompare.ll make this condition more precise. 2008-07-11 03:54:57 +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
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 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 Implement PR2370: memmove(x,x,size) -> noop. 2008-05-28 05:30:41 +00:00
memset.ll move lowering of llvm.memset -> store from simplify libcalls 2008-04-30 06:39:11 +00:00
mul-masked-bits.ll Fix a bug in the ComputeMaskedBits logic for multiply. 2008-05-07 00:35:55 +00:00
mul.ll Split the Add, Sub, and Mul instruction opcodes into separate 2009-06-04 22:49:04 +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 Remove llvm-upgrade and update test cases. 2008-03-01 09:15:35 +00:00
not-fcmp.ll It's safe to fold not of fcmp. 2007-08-06 20:04:16 +00:00
not.ll Implement PR2298. This transforms: 2008-05-09 05:19:28 +00:00
nothrow.ll calls in nothrow functions can be marked nothrow even if the callee 2009-05-13 17:39:14 +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 Implement a couple of foldings for ordered and unordered comparisons, 2007-10-24 05:38:08 +00:00
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 Remove llvm-upgrade and update test cases. 2008-03-01 09:15:35 +00:00
phi-merge.ll Implement PR1777 by detecting dependent phis that 2007-11-06 21:52:06 +00:00
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 Don't try to simplify urem and srem using arithmetic rules that don't work 2008-03-06 06:48:30 +00:00
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-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 Remove llvm-upgrade and update test cases. 2008-03-01 09:15:35 +00:00
set.ll Remove llvm-upgrade and update tests. 2008-03-09 08:16:40 +00:00
setcc-cast-cast.ll Update old-style syntax in some "not grep" tests. 2008-05-01 23:50:07 +00:00
setcc-strength-reduce.ll Remove llvm-upgrade and update tests. 2008-03-09 08:16:40 +00:00
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 Convert tests using "| wc -l | grep ..." to use the count script. 2007-08-15 13:36:28 +00:00
shift-sra.ll Remove llvm-upgrade and update test cases. 2008-03-01 09:15:35 +00:00
shift-trunc-shift.ll implement InstCombine/shift-trunc-shift.ll. This allows 2007-12-22 09:07:47 +00:00
shift.ll two changes: 2009-03-24 18:15:30 +00:00
shl-icmp.ll Don't do: "(X & 4) >> 1 == 2 --> (X & 4) == 4" if there are more than one uses of the shift result. 2008-04-23 00:38:06 +00:00
shl-trunc.ll Remove llvm-upgrade and update test cases. 2008-03-01 09:15:35 +00:00
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 Remove llvm-upgrade and update tests. 2008-03-09 08:16:40 +00:00
sink_instruction.ll Remove llvm-upgrade and update test cases. 2008-03-01 09:15:35 +00:00
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 Correct the value of LowBits in srem and urem handling in 2008-05-06 00:51:48 +00:00
srem.ll Instcombine x-((x/y)*y) into a remainder operator. 2007-09-17 17:31:57 +00:00
stack-overalign.ll Add a testcase for the problem fixed in r65289. 2009-02-24 02:17:42 +00:00
stacksaverestore.ll optimize away stackrestore calls that have no intervening alloca or call. 2008-02-18 06:12:38 +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 Remove llvm-upgrade and update test cases. 2008-03-01 09:15:35 +00:00
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 Fix a mistake in the computation of leading zeros for udiv. 2008-05-02 21:30:02 +00:00
udiv-simplify-bug-1.ll Chris prefers icmp/select over udiv! 2008-11-27 22:41:10 +00:00
urem-simplify-bug.ll Fix an overaggressive SimplifyDemandedBits optimization on urem. This 2008-05-01 19:13:24 +00:00
urem.ll Instcombine x-((x/y)*y) into a remainder operator. 2007-09-17 17:31:57 +00:00
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_elt.ll new testcase 2007-04-14 23:00:51 +00:00
vec_insert_to_shuffle.ll Remove llvm-upgrade and update tests. 2008-03-09 08:16:40 +00:00
vec_insertelt.ll For PR1319: 2007-04-14 20:13:02 +00:00
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 For PR1319: 2007-04-15 07:38:21 +00:00
vector-casts-0.ll Generalize a few more instcombines to be vector/scalar-independent. 2009-06-16 19:55:29 +00:00
vector-casts-1.ll Generalize a few more instcombines to be vector/scalar-independent. 2009-06-16 19:55:29 +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-demorgans.ll XFAIL this test. The xform was removed. 2009-01-04 06:32:28 +00:00
xor-undef.ll Handle a special case xor undef, undef -> 0. Technically this should be transformed to undef. But this is such a common idiom (misuse) we are going to handle it. 2008-03-25 20:07:13 +00:00
xor.ll Remove llvm-upgrade and update tests. 2008-03-09 08:16:40 +00:00
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 Remove llvm-upgrade and update test cases. 2008-03-01 09:15:35 +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 Transform (zext (or (icmp), (icmp))) to (or (zext (cimp), (zext icmp))) if at least one of the (zext icmp) can be transformed to eliminate an icmp. 2008-03-24 00:21:34 +00:00
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.