..
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-08-02-CastTest.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-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-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-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-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-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-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-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-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-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-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-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-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-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
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-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
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-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
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
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
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.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.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
rename *.llx -> *.ll, last batch.
2008-04-19 22:32:52 +00:00
crash.ll
fix a bug I introduced with my 'instcombine builder' refactoring
2009-08-31 04:36:22 +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
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
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
getelementptr.ll
suck a bunch more gep tests into getelementptr.ll and filecheckize them all.
2009-08-30 21:31:34 +00:00
hoist_instr.ll
Remove llvm-upgrade and update tests.
2008-03-09 08:16:40 +00:00
icmp.ll
fix PR4837, some bugs folding vector compares. These
2009-09-02 05:12:37 +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
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
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
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
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
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
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
simplify-demanded-bits-pointer.ll
Add -disable-output. Thanks Bill!
2009-08-03 22:24:22 +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
Remove obsolete -f flags.
2009-08-25 15:38:29 +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
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
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_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
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.ll
merge vector-casts-0.ll into vector-casts.ll
2009-07-23 05:33:39 +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-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
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