..
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
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
Remove llvm-upgrade and update test cases.
2008-03-01 09:15:35 +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
Remove llvm-upgrade and update test cases.
2008-03-01 09:15:35 +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
2007-01-18-VectorInfLoop.ll
2007-01-27-AndICmp.ll
2007-02-01-LoadSinkAlloca.ll
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
2007-03-13-CompareMerge.ll
2007-03-19-BadTruncChangePR1261.ll
2007-03-21-SignedRangeTest.ll
2007-03-25-BadShiftMask.ll
2007-03-25-DoubleShift.ll
2007-03-26-BadShiftMask.ll
2007-03-27-PR1280.ll
2007-03-31-InfiniteLoop.ll
2007-04-04-BadFoldBitcastIntoMalloc.ll
2007-04-08-SingleEltVectorCrash.ll
2007-05-04-Crash.ll
2007-05-10-icmp-or.ll
2007-05-14-Crash.ll
2007-05-18-CastFoldBug.ll
2007-06-06-AshrSignBit.ll
2007-06-21-DivCompareMiscomp.ll
2007-08-02-InfiniteLoop.ll
2007-09-05-EqualGEP.ll
2007-09-10-AliasConstFold.ll
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
Fix PR2553
2008-07-17 06:07:20 +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
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
Generalize the new code in instcombine's ComputeNumSignBits for handling
2008-05-23 02:28:01 +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
and-or.ll
Implement ((A|B)&1)|(B&-2) -> (A&1) | B transformation. This also takes care of
2008-12-01 01:07:11 +00:00
and-xor-merge.ll
and.ll
Remove llvm-upgrade and update tests.
2008-03-09 08:16:40 +00:00
apint-add1.ll
apint-add2.ll
apint-and1.ll
apint-and2.ll
apint-and-compare.ll
apint-and-or-and.ll
apint-and-xor-merge.ll
apint-call-cast-target.ll
When simplifying a call to a bitcast function, tighten up
2008-06-01 07:38:42 +00:00
apint-cast-and-cast.ll
apint-cast-cast-to-and.ll
apint-cast.ll
apint-div1.ll
apint-div2.ll
apint-elim-logicalops.ll
apint-mul1.ll
apint-mul2.ll
apint-not.ll
apint-or1.ll
apint-or2.ll
apint-rem1.ll
apint-rem2.ll
apint-select.ll
apint-shift-simplify.ll
apint-shift.ll
apint-shl-trunc.ll
apint-sub.ll
Instcombine was illegally transforming -X/C into X/-C when either X or C
2008-11-30 03:42:12 +00:00
apint-xor1.ll
apint-xor2.ll
apint-zext1.ll
apint-zext2.ll
ashr-nop.ll
Fix a ValueTracking rule: RHS means operand 1, not 0. Add a simple
2009-02-24 02:00:40 +00:00
binop-cast.ll
bit-tracking.ll
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
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
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
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
CPP_min_max.ll
rename *.llx -> *.ll, last batch.
2008-04-19 22:32:52 +00:00
dce-iterate.ll
make sure to set Changed=true when instcombine hacks on the code,
2009-01-31 07:04:22 +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
Fold fptrunc(add (fpextend x), (fpextend y)) -> add(x,y), as GCC does.
2008-01-27 05:29:54 +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
load2.ll
load3.ll
Teach instcombine's visitLoad to scan back several instructions
2008-10-15 23:19:35 +00:00
load.ll
Teach instcombine's visitLoad to scan back several instructions
2008-10-15 23:19:35 +00:00
loadstore-alignment.ll
Make instcombine ensure that all allocas are explicitly aligned at at
2009-01-13 20:18:38 +00:00
logical-select.ll
Handle the case where there is no "not". It is possible it got
2008-11-16 04:25:26 +00:00
malloc2.ll
malloc3.ll
testcase for PR1728
2007-10-12 05:29:53 +00:00
malloc-free-delete.ll
malloc.ll
memcpy-to-load.ll
Turn a memcpy from a double* into a load/store of double instead of
2008-01-14 00:28:35 +00:00
memmove.ll
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
Implement support for simplifying vector comparisons by 0.0 and 1.0 like we
2008-08-11 22:06:05 +00:00
multi-use-or.ll
now that all the pieces are in place, teach instcombine's
2009-01-31 08:40:03 +00:00
narrow.ll
Remove llvm-upgrade and update test cases.
2008-03-01 09:15:35 +00:00
not-fcmp.ll
not.ll
Implement PR2298. This transforms:
2008-05-09 05:19:28 +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.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
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
Fix a shufflevector instcombine that was emitting invalid masks indices
2008-08-06 18:17:32 +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
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
Zap sitofp/fptoui pairs. In all cases when the sign difference
2008-08-06 05:13:06 +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
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
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.ll
vec_extract_elt.ll
vec_insert_to_shuffle.ll
Remove llvm-upgrade and update tests.
2008-03-09 08:16:40 +00:00
vec_insertelt.ll
vec_narrow.ll
Remove llvm-upgrade and update test cases.
2008-03-01 09:15:35 +00:00
vec_shuffle2.ll
Fixed optimization of combining two shuffles where the first shuffle inputs
2009-01-26 04:39:00 +00:00
vec_shuffle.ll
vector-srem.ll
Fix an abort in instcombine when folding creates a vector rem instruction.
2007-11-05 23:16:33 +00:00
volatile_store.ll
Don't zap back to back volatile load/stores
2007-09-07 05:33:03 +00:00
xor2.ll
xor-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
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
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