llvm-project/llvm/test/Transforms/InstCombine
Sanjay Patel b7f8cb698c [InstCombine] change select type to eliminate bitcasts
This solves a secondary problem seen in PR6137:
https://llvm.org/bugs/show_bug.cgi?id=6137#c6

This is similar to the bitwise logic op fold added with:
https://reviews.llvm.org/rL287707

And like that patch, I'm artificially restricting the
transform from vector <-> scalar types until we're sure
that the backend can handle that. 

llvm-svn: 288584
2016-12-03 15:25:16 +00:00
..
ARM Enable simplify libcalls for ARM PCS 2016-09-13 12:10:14 +00:00
2003-05-26-CastMiscompile.ll
2003-05-27-ConstExprCrash.ll
2003-06-05-BranchInvertInfLoop.ll
2003-07-21-ExternalConstant.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
2003-08-12-AllocaNonNull.ll [opaque pointer type] Add textual IR support for explicit type parameter to the call instruction 2015-04-16 23:24:18 +00:00
2003-09-09-VolatileLoadElim.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
2003-10-29-CallSiteResolve.ll Move the personality function from LandingPadInst to Function 2015-06-17 20:52:32 +00:00
2003-11-03-VarargsCallBug.ll [opaque pointer type] Add textual IR support for explicit type parameter to the call instruction 2015-04-16 23:24:18 +00:00
2004-01-13-InstCombineInvokePHI.ll Move the personality function from LandingPadInst to Function 2015-06-17 20:52:32 +00:00
2004-02-23-ShiftShiftOverflow.ll
2004-03-13-InstCombineInfLoop.ll
2004-04-04-InstCombineReplaceAllUsesWith.ll
2004-05-07-UnsizedCastLoad.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
2004-07-27-ConstantExprMul.ll
2004-08-09-RemInfLoop.ll
2004-08-10-BoolSetCC.ll
2004-09-20-BadLoadCombine.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
2004-09-20-BadLoadCombine2.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
2004-09-28-BadShiftAndSetCC.ll
2004-11-22-Missed-and-fold.ll
2004-11-27-SetCCForCastLargerAndConstant.ll [InstCombine] limit icmp transform to ConstantInt (PR28011) 2016-06-06 16:56:57 +00:00
2004-12-08-RemInfiniteLoop.ll
2005-03-04-ShiftOverflow.ll
2005-04-07-UDivSelectCrash.ll
2005-06-15-DivSelectCrash.ll
2005-06-15-ShiftSetCCCrash.ll
2005-06-16-RangeCrash.ll
2005-06-16-SetCCOrSetCCMiscompile.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
2005-07-07-DeadPHILoop.ll
2006-02-13-DemandedMiscompile.ll
2006-02-28-Crash.ll
2006-03-30-ExtractElement.ll
2006-04-28-ShiftShiftLongLong.ll
2006-05-04-DemandedBitCrash.ll
2006-09-15-CastToBool.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
2006-10-19-SignedToUnsignedCastAndConst-2.ll
2006-10-20-mask.ll
2006-10-26-VectorReassoc.ll
2006-11-10-ashr-miscompile.ll
2006-12-01-BadFPVectorXform.ll [InstCombine] regenerate checks 2016-04-05 17:24:54 +00:00
2006-12-05-fp-to-int-ext.ll
2006-12-08-Phi-ICmp-Op-Fold.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
2006-12-08-Select-ICmp.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
2006-12-15-Range-Test.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
2006-12-23-Select-Cmp-Cmp.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
2007-01-13-ExtCompareMiscompile.ll
2007-01-14-FcmpSelf.ll
2007-01-18-VectorInfLoop.ll
2007-02-01-LoadSinkAlloca.ll [opaque pointer type] Add textual IR support for explicit type parameter to the call instruction 2015-04-16 23:24:18 +00:00
2007-02-07-PointerCast.ll [opaque pointer type] Add textual IR support for explicit type parameter to the call instruction 2015-04-16 23:24:18 +00:00
2007-02-23-PhiFoldInfLoop.ll
2007-03-13-CompareMerge.ll
2007-03-19-BadTruncChangePR1261.ll
2007-03-21-SignedRangeTest.ll [InstCombine] allow icmp (div X, Y), C folds for splat constant vectors 2016-08-31 21:57:21 +00:00
2007-03-25-BadShiftMask.ll update to use FileCheck and auto-generate checks 2016-08-09 19:42:52 +00:00
2007-03-25-DoubleShift.ll
2007-03-26-BadShiftMask.ll
2007-04-08-SingleEltVectorCrash.ll
2007-05-10-icmp-or.ll
2007-05-14-Crash.ll Revert "Remove an InstCombine that seems to have become redundant." 2015-03-24 21:50:35 +00:00
2007-05-18-CastFoldBug.ll
2007-06-06-AshrSignBit.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
2007-06-21-DivCompareMiscomp.ll
2007-08-02-InfiniteLoop.ll
2007-09-10-AliasConstFold.ll [opaque pointer type] Add textual IR support for explicit type parameter for global aliases 2015-09-11 03:22:04 +00:00
2007-09-17-AliasConstFold2.ll [opaque pointer type] Add textual IR support for explicit type parameter for global aliases 2015-09-11 03:22:04 +00:00
2007-10-10-EliminateMemCpy.ll Revert "Change memcpy/memset/memmove to have dest and source alignments." 2015-11-19 05:56:52 +00:00
2007-10-12-Crash.ll [opaque pointer type] Add textual IR support for explicit type parameter to getelementptr instruction 2015-02-27 19:29:02 +00:00
2007-10-28-stacksave.ll [opaque pointer type] Add textual IR support for explicit type parameter to getelementptr instruction 2015-02-27 19:29:02 +00:00
2007-10-31-RangeCrash.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
2007-10-31-StringCrash.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
2007-11-07-OpaqueAlignCrash.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
2007-11-15-CompareMiscomp.ll
2007-11-25-CompatibleAttributes.ll [opaque pointer type] Add textual IR support for explicit type parameter to the call instruction 2015-04-16 23:24:18 +00:00
2007-12-10-ConstFoldCompare.ll
2007-12-12-GEPScale.ll [opaque pointer type] Add textual IR support for explicit type parameter to getelementptr instruction 2015-02-27 19:29:02 +00:00
2007-12-16-AsmNoUnwind.ll
2007-12-18-AddSelCmpSub.ll
2007-12-28-IcmpSub2.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
2008-01-06-BitCastAttributes.ll
2008-01-06-CastCrash.ll
2008-01-06-VoidCast.ll
2008-01-13-AndCmpCmp.ll
2008-01-13-NoBitCastAttributes.ll
2008-01-14-VarArgTrampoline.ll [opaque pointer type] Add textual IR support for explicit type parameter to the call instruction 2015-04-16 23:24:18 +00:00
2008-01-21-MismatchedCastAndCompare.ll
2008-01-21-MulTrunc.ll
2008-01-27-FloatSelect.ll
2008-01-29-AddICmp.ll [InstCombine] use m_APInt to allow icmp (add X, Y), C folds for splat constant vectors 2016-08-17 15:24:30 +00:00
2008-02-13-MulURem.ll
2008-02-16-SDivOverflow2.ll
2008-02-23-MulSub.ll
2008-02-28-OrFCmpCrash.ll
2008-03-13-IntToPtr.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
2008-04-22-ByValBitcast.ll [opaque pointer type] Add textual IR support for explicit type parameter to the call instruction 2015-04-16 23:24:18 +00:00
2008-04-28-VolatileStore.ll
2008-04-29-VolatileLoadDontMerge.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
2008-04-29-VolatileLoadMerge.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
2008-05-08-LiveStoreDelete.ll [opaque pointer type] Add textual IR support for explicit type parameter to the call instruction 2015-04-16 23:24:18 +00:00
2008-05-08-StrLenSink.ll [opaque pointer type] Add textual IR support for explicit type parameter to the call instruction 2015-04-16 23:24:18 +00:00
2008-05-09-SinkOfInvoke.ll Move the personality function from LandingPadInst to Function 2015-06-17 20:52:32 +00:00
2008-05-17-InfLoop.ll [opaque pointer type] Add textual IR support for explicit type parameter to gep operator 2015-03-13 18:20:45 +00:00
2008-05-18-FoldIntToPtr.ll
2008-05-22-IDivVector.ll
2008-05-22-NegValVector.ll
2008-05-23-CompareFold.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
2008-05-31-AddBool.ll
2008-05-31-Bools.ll
2008-06-05-ashr-crash.ll
2008-06-08-ICmpPHI.ll [opaque pointer type] Add textual IR support for explicit type parameter to the call instruction 2015-04-16 23:24:18 +00:00
2008-06-13-InfiniteLoopStore.ll
2008-06-13-ReadOnlyCallStore.ll
2008-06-19-UncondLoad.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
2008-06-21-CompareMiscomp.ll
2008-06-24-StackRestore.ll [opaque pointer type] Add textual IR support for explicit type parameter to getelementptr instruction 2015-02-27 19:29:02 +00:00
2008-07-08-ShiftOneAndOne.ll update test to FileCheck 2016-06-05 16:29:15 +00:00
2008-07-08-SubAnd.ll
2008-07-08-VolatileLoadMerge.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
2008-07-09-SubAndError.ll
2008-07-10-CastSextBool.ll update test to use FileCheck 2016-06-05 16:41:20 +00:00
2008-07-10-ICmpBinOp.ll
2008-07-11-RemAnd.ll
2008-07-13-DivZero.ll
2008-07-16-fsub.ll
2008-08-05-And.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
2008-08-17-ICmpXorSignbit.ll [InstCombine] use m_APInt to allow icmp (xor X, Y), C folds for splat constant vectors 2016-08-18 14:10:48 +00:00
2008-09-02-VectorCrash.ll
2008-09-29-FoldingOr.ll
2008-10-11-DivCompareFold.ll
2008-10-23-ConstFoldWithoutMask.ll
2008-11-01-SRemDemandedBits.ll
2008-11-08-FCmp.ll Convert test to FileCheck and use CHECK-LABEL 2014-11-24 23:03:17 +00:00
2008-11-20-DivMulRem.ll
2008-11-27-IDivVector.ll
2008-11-27-MultiplyIntVec.ll
2008-11-27-UDivNegative.ll
2008-12-17-SRemNegConstVec.ll
2009-01-05-i128-crash.ll
2009-01-08-AlignAlloca.ll [opaque pointer type] Add textual IR support for explicit type parameter to the call instruction 2015-04-16 23:24:18 +00:00
2009-01-16-PointerAddrSpace.ll
2009-01-19-fmod-constant-float-specials.ll [opaque pointer type] Add textual IR support for explicit type parameter to the call instruction 2015-04-16 23:24:18 +00:00
2009-01-19-fmod-constant-float.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
2009-01-24-EmptyStruct.ll [opaque pointer type] Add textual IR support for explicit type parameter to getelementptr instruction 2015-02-27 19:29:02 +00:00
2009-01-31-InfIterate.ll
2009-01-31-Pressure.ll
2009-02-04-FPBitcast.ll
2009-02-11-NotInitialized.ll
2009-02-20-InstCombine-SROA.ll Remove the ScalarReplAggregates pass 2016-06-15 00:19:09 +00:00
2009-02-21-LoadCST.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
2009-02-25-CrashZeroSizeArray.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
2009-03-18-vector-ashr-crash.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
2009-03-20-AShrOverShift.ll
2009-03-24-InfLoop.ll
2009-04-07-MulPromoteToI96.ll
2009-05-23-FCmpToICmp.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
2009-06-11-StoreAddrSpace.ll
2009-06-16-SRemDemandedBits.ll
2009-07-02-MaskedIntVector.ll
2009-12-17-CmpSelectNull.ll [opaque pointer type] Add textual IR support for explicit type parameter to gep operator 2015-03-13 18:20:45 +00:00
2010-01-28-NegativeSRem.ll
2010-03-03-ExtElim.ll [opaque pointer type] Add textual IR support for explicit type parameter to gep operator 2015-03-13 18:20:45 +00:00
2010-05-30-memcpy-Struct.ll [opaque pointer type] Add textual IR support for explicit type parameter to the call instruction 2015-04-16 23:24:18 +00:00
2010-11-01-lshr-mask.ll
2010-11-21-SizeZeroTypeGEP.ll [opaque pointer type] Add textual IR support for explicit type parameter to getelementptr instruction 2015-02-27 19:29:02 +00:00
2010-11-23-Distributed.ll
2011-02-14-InfLoop.ll
2011-03-08-SRemMinusOneBadOpt.ll
2011-05-02-VectorBoolean.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
2011-05-13-InBoundsGEP.ll [opaque pointer type] Add textual IR support for explicit type parameter to getelementptr instruction 2015-02-27 19:29:02 +00:00
2011-05-28-swapmulsub.ll Reapply "InstCombine: Reduce trunc (shl x, K) width." 2016-09-13 19:43:57 +00:00
2011-06-13-nsw-alloca.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
2011-09-03-Trampoline.ll [opaque pointer type] Add textual IR support for explicit type parameter to getelementptr instruction 2015-02-27 19:29:02 +00:00
2011-10-07-AlignPromotion.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
2012-01-11-OpaqueBitcastCrash.ll
2012-02-13-FCmp.ll [opaque pointer type] Add textual IR support for explicit type parameter to the call instruction 2015-04-16 23:24:18 +00:00
2012-02-28-ICmp.ll
2012-03-10-InstCombine.ll
2012-3-15-or-xor-constant.ll
2012-04-23-Neon-Intrinsics.ll
2012-04-24-vselect.ll
2012-04-30-SRem.ll
2012-05-28-select-hang.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
2012-06-06-LoadOfPHIs.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
2012-6-7-vselect-bitcast.ll
2012-07-25-LoadPart.ll [opaque pointer type] Add textual IR support for explicit type parameter to gep operator 2015-03-13 18:20:45 +00:00
2012-07-30-addrsp-bitcast.ll [opaque pointer type] Add textual IR support for explicit type parameter to gep operator 2015-03-13 18:20:45 +00:00
2012-08-28-udiv_ashl.ll
2012-09-17-ZeroSizedAlloca.ll [opaque pointer type] Add textual IR support for explicit type parameter to getelementptr instruction 2015-02-27 19:29:02 +00:00
2012-10-25-vector-of-pointers.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
2012-12-14-simp-vgep.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
2013-03-05-Combine-BitcastTy-Into-Alloca.ll [opaque pointer type] Add textual IR support for explicit type parameter to gep operator 2015-03-13 18:20:45 +00:00
AddOverFlow.ll Move the personality function from LandingPadInst to Function 2015-06-17 20:52:32 +00:00
CPP_min_max.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
ExtractCast.ll
IntPtrCast.ll
JavaCompare.ll
LandingPadClauses.ll [EH] Keep filter clauses for types that have been caught. 2015-11-17 20:13:04 +00:00
OverlappingInsertvalues.ll
PR30597.ll [InstCombine] Transform !range metadata to !nonnull when combining loads 2016-10-11 01:00:45 +00:00
README.txt
abs-1.ll
abs_abs.ll [ValueTracking] fix matchSelectPattern to allow vector splat folds of min/max/abs/nabs 2016-10-27 15:26:10 +00:00
add-shrink.ll
add-sitofp.ll
add.ll [InstCombine] use m_APInt to allow icmp eq (add X, C1), C2 folds for splat constant vectors 2016-08-03 22:08:44 +00:00
add2.ll [InstCombine] Generalize sub of selects optimization to all BinaryOperators 2015-07-14 22:39:23 +00:00
add3.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
addnegneg.ll Removed extra whitespace. (Testing commit access). NFC. 2014-12-01 09:27:46 +00:00
addrspacecast.ll Fix constant folding of addrspacecast of null 2016-05-21 00:14:04 +00:00
adjust-for-minmax.ll [InstCombine] canonicalize min/max constant to select's false value 2016-11-21 22:04:14 +00:00
alias-recursion.ll [opaque pointer type] Add textual IR support for explicit type parameter for global aliases 2015-09-11 03:22:04 +00:00
align-2d-gep.ll [opaque pointer type] Add textual IR support for explicit type parameter to getelementptr instruction 2015-02-27 19:29:02 +00:00
align-addr.ll Revert "Change memcpy/memset/memmove to have dest and source alignments." 2015-11-19 05:56:52 +00:00
align-attr.ll Teach computeKnownBits to look through returned-argument functions 2016-07-11 02:25:14 +00:00
align-external.ll Update enforceKnownAlignment after the isWeakForLinker semantic change 2015-07-14 00:11:08 +00:00
aligned-altivec.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
aligned-qpx.ll [InstCombine/PowerPC] Fix single-precision QPX load/store replacement 2015-05-11 06:37:03 +00:00
all-bits-shift.ll InstCombine: Restrict computeKnownBits() on all Values to OptLevel > 2 2016-03-09 18:47:11 +00:00
alloca.ll [OperandBundles] Have InstCombine play nice with operand bundles 2015-12-23 09:58:41 +00:00
allocsize-32.ll Add the allocsize attribute to LLVM. 2016-04-12 01:05:35 +00:00
allocsize.ll Add the allocsize attribute to LLVM. 2016-04-12 01:05:35 +00:00
amdgcn-intrinsics.ll AMDGPU: Do basic folding of class intrinsic 2016-09-03 07:06:58 +00:00
and-compare.ll [InstCombine] use m_APInt to allow icmp (and X, Y), C folds for splat constant vectors 2016-08-28 18:18:00 +00:00
and-fcmp.ll [InstCombine] Simplify and correct folding fcmps with the same children 2016-06-29 20:10:17 +00:00
and-not-or.ll
and-or-and.ll
and-or-icmps.ll [InstCombine] consolidate some icmp+logic tests and improve checks 2016-06-20 18:40:37 +00:00
and-or-not.ll use FileCheck for tighter checking 2016-03-16 23:20:20 +00:00
and-or.ll [InstCombine] regenerate checks 2016-04-05 17:24:54 +00:00
and-xor-merge.ll Use FileCheck instead of grep. Change by Ankur Garg. 2014-11-27 11:22:49 +00:00
and-xor-or.ll
and.ll [InstCombine] allow vector types for constant folding / computeKnownBits (PR24942) 2016-09-16 21:20:36 +00:00
and2.ll [InstCombine] add tests to show type limitations of InsertRangeTest and callers 2016-08-30 23:16:59 +00:00
apint-add.ll [InstCombine] fold add(zext(xor X, C), C) --> sext X when C is INT_MIN in the source type 2016-07-19 22:09:34 +00:00
apint-and-compare.ll
apint-and-or-and.ll
apint-and-xor-merge.ll [InstCombine] regenerate checks 2016-04-05 17:24:54 +00:00
apint-and1.ll
apint-and2.ll
apint-call-cast-target.ll InstCombine: Bitcast call arguments from/to pointer/integer type 2015-01-06 08:41:31 +00:00
apint-cast-and-cast.ll
apint-cast-cast-to-and.ll
apint-cast.ll
apint-div1.ll
apint-div2.ll
apint-mul1.ll
apint-mul2.ll
apint-not.ll
apint-or.ll Merge or combine tests and convert to FileCheck. 2015-09-08 18:36:56 +00:00
apint-rem1.ll
apint-rem2.ll
apint-select.ll [InstCombine] LogicOpc (zext X), C --> zext (LogicOpc X, C) (PR28476) 2016-07-21 00:24:18 +00:00
apint-shift-simplify.ll
apint-shift.ll [InstCombine] use m_APInt to allow icmp (and (sh X, Y), C2), C1 folds for splat constant vectors 2016-09-07 22:33:03 +00:00
apint-shl-trunc.ll [InstCombine] use m_APInt to allow icmp (and (sh X, Y), C2), C1 folds for splat constant vectors 2016-09-07 22:33:03 +00:00
apint-sub.ll [InstCombine] update test to use FileCheck and auto-generate checks 2016-10-14 15:30:31 +00:00
apint-xor1.ll
apint-xor2.ll
assoc-cast-assoc.ll [InstCombine] LogicOpc (zext X), C --> zext (LogicOpc X, C) (PR28476) 2016-07-21 00:24:18 +00:00
assume-loop-align.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
assume-redundant.ll Teach computeKnownBits to use new align attribute/metadata 2015-10-07 16:01:18 +00:00
assume.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
assume2.ll
atomic.ll [PR29121] Don't fold if it would produce atomic vector loads or stores 2016-12-01 20:17:06 +00:00
badmalloc.ll
binop-cast.ll
bit-checks.ll [InstCombine] update to use FileCheck 2016-09-28 19:10:16 +00:00
bit-tracking.ll
bitcast-alias-function.ll [opaque pointer type] Add textual IR support for explicit type parameter for global aliases 2015-09-11 03:22:04 +00:00
bitcast-bigendian.ll [InstCombine] regenerate checks 2016-09-12 00:12:56 +00:00
bitcast-bitcast.ll [InstCombine] allow any pair of bitcasts to be combined 2015-12-12 00:33:36 +00:00
bitcast-sext-vector.ll
bitcast-store.ll InstCombine: Don't combine loads/stores from swifterror to a new type 2016-09-10 18:14:57 +00:00
bitcast-vec-canon.ll [InstCombine] canonicalize (bitcast (extractelement X)) --> (extractelement(bitcast X)) 2015-12-12 16:44:48 +00:00
bitcast.ll [InstCombine] change select type to eliminate bitcasts 2016-12-03 15:25:16 +00:00
bitcount.ll
bitreverse-fold.ll Implement constant folding for bitreverse 2016-03-21 15:00:35 +00:00
bitreverse-hang.ll [InstCombine] Rewrite bswap/bitreverse handling completely. 2016-01-15 09:20:19 +00:00
bittest.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
blend_x86.ll [InstCombine] canonicalize vector select with constant vector condition to shuffle 2016-09-16 22:16:18 +00:00
branch.ll If a conditional branch jumps to the same target, remove the condition 2015-03-10 22:52:37 +00:00
bswap-fold.ll Fix a few more cases of 'CHECK[^:]*$'. NFCI 2015-08-10 19:56:39 +00:00
bswap-known-bits.ll Extend known bits to understand @llvm.bswap 2015-10-06 20:20:45 +00:00
bswap.ll [InstCombine] Catch more bswap cases missed due to zext and truncs. 2016-05-26 14:58:51 +00:00
builtin-object-size-offset.ll Calculate __builtin_object_size when pointer depends on a condition 2016-04-13 12:25:25 +00:00
builtin-object-size-ptr.ll Reland r262337 "calculate builtin_object_size if arg is a removable pointer" 2016-03-09 14:12:47 +00:00
call-cast-target-inalloca.ll
call-cast-target.ll InstCombine: Don't fold call bitcast into args if callee is byval 2015-03-11 18:03:05 +00:00
call-intrinsics.ll Revert "Change memcpy/memset/memmove to have dest and source alignments." 2015-11-19 05:56:52 +00:00
call.ll Don't remove side effecting instructions due to ConstantFoldInstruction 2016-07-22 04:54:44 +00:00
call2.ll [opaque pointer type] Add textual IR support for explicit type parameter to the call instruction 2015-04-16 23:24:18 +00:00
call_nonnull_arg.ll [InstCombineCalls] Use isKnownNonNullAt() to check nullness of passing arguments at callsite 2015-09-14 18:10:43 +00:00
canonicalize_branch.ll IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
cast-call-combine.ll
cast-callee-deopt-bundles.ll [InstCombine] Don't drop operand bundles 2015-11-25 00:42:19 +00:00
cast-int-fcmp-eq-0.ll Broaden optimization of fcmp ([us]itofp x, constant) by instcombine. 2015-09-15 17:51:59 +00:00
cast-mul-select.ll
cast-set.ll auto-ggenerate checks 2016-07-16 16:24:06 +00:00
cast.ll [InstCombine] remove fold of an icmp pattern that should never happen 2016-09-01 14:20:43 +00:00
cast_ptr.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
ceil.ll
compare-alloca.ll InstCombine: Fold comparisons between unguessable allocas and other pointers 2015-10-07 00:20:07 +00:00
compare-signs.ll [InstCombine] use m_APInt to allow icmp (trunc X, Y), C folds for splat constant vectors 2016-08-18 20:28:54 +00:00
compare-udiv.ll [InstCombine] use m_APInt to allow icmp (udiv X, Y), C folds for splat constant vectors 2016-08-18 17:55:59 +00:00
compare-unescaped.ll Fold compares irrespective of whether allocation can be elided 2016-05-03 14:58:21 +00:00
constant-expr-datalayout.ll [opaque pointer type] Add textual IR support for explicit type parameter to gep operator 2015-03-13 18:20:45 +00:00
constant-fold-address-space-pointer.ll [opaque pointer type] Add textual IR support for explicit type parameter to gep operator 2015-03-13 18:20:45 +00:00
constant-fold-alias.ll [opaque pointer type] Add textual IR support for explicit type parameter for global aliases 2015-09-11 03:22:04 +00:00
constant-fold-compare.ll
constant-fold-gep.ll [opaque pointer type] Add textual IR support for explicit type parameter to gep operator 2015-03-13 18:20:45 +00:00
constant-fold-hang.ll Fix an infinite loop in InstCombine when an instruction with no users and side effects can be constant folded. 2015-03-10 05:13:47 +00:00
constant-fold-math.ll Make the sqrt intrinsic return undef for a negative input. 2014-10-01 20:36:33 +00:00
convergent.ll InstCombine: Don't strip convergent from intrinsic callsites 2016-06-20 19:04:44 +00:00
copysign.ll
cos-1.ll
cos-2.ll [LibCallSimplifier] don't get fooled by a fake sqrt() 2016-01-20 17:41:14 +00:00
cos-intrinsic.ll Propagate Undef in llvm.cos Intrinsic 2016-04-08 18:21:11 +00:00
crash.ll Move the personality function from LandingPadInst to Function 2015-06-17 20:52:32 +00:00
ctpop.ll Tighten known bits for ctpop based on zero input bits 2015-10-14 22:42:12 +00:00
dce-iterate.ll
deadcode.ll
debug-line.ll [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
debuginfo.ll [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
default-alignment.ll Teach DataLayout to infer a plausible alignment for things even when nothing is specified by the user. 2015-03-08 21:53:59 +00:00
demand_shrink_nsw.ll InstCombineSimplifyDemanded: Remove nsw/nuw flags when optimizing demanded bits 2015-04-30 22:05:30 +00:00
demorgan-zext.ll [InstCombine] LogicOpc (zext X), C --> zext (LogicOpc X, C) (PR28476) 2016-07-21 00:24:18 +00:00
disable-simplify-libcalls.ll [opaque pointer type] Add textual IR support for explicit type parameter to getelementptr instruction 2015-02-27 19:29:02 +00:00
distribute.ll
div-shift-crash.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
div-shift.ll [InstCombine] canonicalize min/max constant to select's false value 2016-11-21 22:04:14 +00:00
div.ll [InstCombine] allow icmp (div X, Y), C folds for splat constant vectors 2016-08-31 21:57:21 +00:00
double-float-shrink-1.ll [LibCallSimplifier] don't get fooled by a fake fmin() 2016-01-21 20:19:54 +00:00
double-float-shrink-2.ll
enforce-known-alignment.ll [opaque pointer type] Add textual IR support for explicit type parameter to getelementptr instruction 2015-02-27 19:29:02 +00:00
err-rep-cold.ll [opaque pointer type] Add textual IR support for explicit type parameter to the call instruction 2015-04-16 23:24:18 +00:00
exact.ll [InstCombine] add test to show missing vector optimization; NFC 2016-11-26 16:13:23 +00:00
exp2-1.ll AMDGPU: mark ldexp LibCalls as unavailable 2015-12-15 17:24:15 +00:00
exp2-2.ll
extractvalue.ll Instcombine: destructor loads of structs that do not contains padding 2015-12-15 01:44:07 +00:00
fabs.ll transform obscured FP sign bit ops into a fabs/fneg using TLI hook 2016-06-02 20:01:37 +00:00
fast-math-scalarization.ll Fix an issue where fast math flags were dropped during scalarization. 2016-03-01 19:35:52 +00:00
fast-math.ll [LibCallSimplifier] don't allow sqrt transform unless all ops are unsafe 2016-01-11 22:50:36 +00:00
fcmp-select.ll
fcmp-special.ll regenerate checks 2016-06-05 17:29:45 +00:00
fcmp.ll InstCombine: fix fold "fcmp x, undef" to account for NaN 2015-03-09 03:20:25 +00:00
fdiv.ll
ffs-1.ll TvOS: add missing support for some libcalls. 2015-11-02 18:00:00 +00:00
float-shrink-compare.ll [SimplifyLibCalls] Improve double->float shrinking to consider constants 2014-12-03 21:46:33 +00:00
fmul.ll InstCombine: fabs(x) * fabs(x) -> x * x 2016-01-30 05:02:00 +00:00
fneg-ext.ll
fold-bin-operand.ll
fold-calls.ll
fold-fops-into-selects.ll
fold-phi-load-metadata.ll Don't passively concatenate MDNodes 2016-08-16 18:48:34 +00:00
fold-phi.ll Minimize test case further 2014-11-04 05:17:58 +00:00
fold-sqrt-sqrtf.ll
fold-vector-select.ll
fold-vector-zero.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
fp-ret-bitcast.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
fpcast.ll [IR] fptrunc-of-fptrunc isn't an EliminableCastPair. 2015-05-29 00:04:30 +00:00
fpextend.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
fpextend_x86.ll
fprintf-1.ll [IR] Straighten out bundle overload of IRBuilder::CreateCall 2016-02-18 20:57:41 +00:00
fputs-1.ll [opaque pointer type] Add textual IR support for explicit type parameter to gep operator 2015-03-13 18:20:45 +00:00
fputs-opt-size.ll Code size optimisation: don't rewrite fputs to fwrite when optimising for size 2016-07-07 13:56:23 +00:00
fsub.ll
fwrite-1.ll [opaque pointer type] Add textual IR support for explicit type parameter to getelementptr instruction 2015-02-27 19:29:02 +00:00
gc.relocate.ll Don't propagate dereferenceable attribute through gc.relocate in InstCombine 2016-02-11 11:22:46 +00:00
gep-addrspace.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
gep-sext.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
gep-vector.ll [ConstantFold] Get the correct vector type when folding a getelementptr. 2016-10-28 00:53:16 +00:00
gepgep.ll [opaque pointer type] Add textual IR support for explicit type parameter to gep operator 2015-03-13 18:20:45 +00:00
gepphigep.ll [InstCombine] Teach instcombine not to create extra PHI nodes when folding GEPs 2015-10-26 10:25:05 +00:00
getelementptr-folding.ll [ConstantFold] Fix incorrect index rewrites for GEPs 2016-05-26 07:08:05 +00:00
getelementptr.ll [InstCombine] use m_APInt to allow icmp (shl X, Y), C folds for splat constant vectors, part 1 2016-08-19 22:33:26 +00:00
hoist_instr.ll
icmp-div-constant.ll fix FileCheck variables for test added with r280677 2016-09-05 23:49:32 +00:00
icmp-logical.ll InstCombine: Fold away tautological masked compares 2014-11-18 09:31:41 +00:00
icmp-range.ll [Bug 24848] Use range metadata to constant fold comparisons between two values 2015-09-26 03:26:47 +00:00
icmp-shl-nuw.ll [InstCombine] Fold nuw left-shifts in `ugt`/`ule` comparisons. 2016-11-01 19:19:29 +00:00
icmp-shr.ll [InstCombine] allow icmp (shr/shl) folds for vectors 2016-09-15 21:35:30 +00:00
icmp-vec.ll [InstCombine] use m_APInt to allow icmp ult X, C folds for splat constant vectors 2016-09-09 21:59:37 +00:00
icmp.ll [InstCombine] Ensure that truncated int types are legal. 2016-10-25 20:11:47 +00:00
idioms.ll
indexed-gep-compares.ll [InstCombine] Do not RAUW a constant GEP 2016-09-15 20:10:09 +00:00
inline-intrinsic-assert.ll [LibCallSimplifier] use instruction-level fast-math-flags to transform sqrt calls 2016-01-11 22:34:19 +00:00
insert-const-shuf.ll [InstCombine] Fix for PR29124: reduce insertelements to shufflevector 2016-09-23 09:14:08 +00:00
insert-extract-shuffle.ll [InstCombine] avoid infinite loop from shuffle-extract-insert sequence (PR30923) 2016-11-10 00:15:14 +00:00
insert-val-extract-elem.ll Optimize store of "bitcast" from vector to aggregate. 2016-04-25 22:22:39 +00:00
intrinsics.ll Make cltz and cttz zero undef when the operand cannot be zero in InstCombine 2016-08-18 20:43:50 +00:00
invariant.ll Revert "Revert "Invariant start/end intrinsics overloaded for address space"" 2016-08-13 23:31:24 +00:00
invoke.ll Move the personality function from LandingPadInst to Function 2015-06-17 20:52:32 +00:00
isascii-1.ll
isdigit-1.ll
known_align.ll [opaque pointer type] Add textual IR support for explicit type parameter to gep operator 2015-03-13 18:20:45 +00:00
lifetime-asan.ll Do not remove empty lifetime.start/lifetime.end ranges 2016-07-28 22:59:03 +00:00
lifetime.ll [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
load-bitcast32.ll Re-apply r238452, the bug was in clang and was fixed in r260567. 2016-02-11 22:30:41 +00:00
load-bitcast64.ll Re-apply r238452, the bug was in clang and was fixed in r260567. 2016-02-11 22:30:41 +00:00
load-cmp.ll [InstCombine] regenerate checks 2016-05-02 15:21:41 +00:00
load-combine-metadata-2.ll Preserve load alignment and dereferenceable metadata during some transformations 2015-11-02 17:53:51 +00:00
load-combine-metadata-3.ll Preserve load alignment and dereferenceable metadata during some transformations 2015-11-02 17:53:51 +00:00
load-combine-metadata-4.ll Preserve load alignment and dereferenceable metadata during some transformations 2015-11-02 17:53:51 +00:00
load-combine-metadata.ll Handle non-constant shifts in computeKnownBits, and use computeKnownBits for constant folding in InstCombine/Simplify 2015-10-23 20:37:08 +00:00
load-select.ll [opaque pointer type] Add textual IR support for explicit type parameter to gep operator 2015-03-13 18:20:45 +00:00
load.ll InstCombine: Don't combine loads/stores from swifterror to a new type 2016-09-10 18:14:57 +00:00
load3.ll [opaque pointer type] Add textual IR support for explicit type parameter to gep operator 2015-03-13 18:20:45 +00:00
load_combine_aa.ll [InstCombine] Employ AliasAnalysis in FindAvailableLoadedValue 2015-07-10 06:55:49 +00:00
loadstore-alignment.ll Fix known zero bits for addrspacecast. 2016-11-21 15:42:31 +00:00
loadstore-metadata.ll Preserve load alignment and dereferenceable metadata during some transformations 2015-11-02 17:53:51 +00:00
log-pow-nofastmath.ll [SimplifyLibCalls] Remove useless bits of this tests. 2015-11-30 19:38:35 +00:00
log-pow.ll Don't remove side effecting instructions due to ConstantFoldInstruction 2016-07-22 04:54:44 +00:00
logical-select.ll [InstCombine] canonicalize vector select with constant vector condition to shuffle 2016-09-16 22:16:18 +00:00
lshr-phi.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
malloc-free-delete.ll [Analysis] Become aware of MSVC's new/delete functions 2015-12-03 22:45:19 +00:00
masked_intrinsics.ll [InstCombine] Masked loads with undef masks can fold to normal loads 2016-07-14 06:58:42 +00:00
max-of-nots.ll [InstCombine] fix profitability equation for max-of-nots transform 2016-11-09 00:13:11 +00:00
maxnum.ll Add minnum / maxnum intrinsics 2014-10-21 23:00:20 +00:00
mem-gep-zidx.ll Fix a typo in rL265762 2016-04-17 04:30:43 +00:00
mem-par-metadata-memcpy.ll [InstCombine] Preserve llvm.mem.parallel_loop_access metadata when replacing 2016-09-04 07:49:39 +00:00
memchr.ll [InstCombine] regenerate checks 2016-05-02 15:25:49 +00:00
memcmp-1.ll Optimize memcmp(x,y,n)==0 for small n and suitably aligned x/y. 2015-08-28 18:30:18 +00:00
memcmp-2.ll
memcpy-1.ll
memcpy-2.ll
memcpy-from-global.ll Revert "Change memcpy/memset/memmove to have dest and source alignments." 2015-11-19 05:56:52 +00:00
memcpy-to-load.ll Revert "Change memcpy/memset/memmove to have dest and source alignments." 2015-11-19 05:56:52 +00:00
memcpy.ll Revert "Change memcpy/memset/memmove to have dest and source alignments." 2015-11-19 05:56:52 +00:00
memcpy_chk-1.ll Revert "Change memcpy/memset/memmove to have dest and source alignments." 2015-11-19 05:56:52 +00:00
memcpy_chk-2.ll
memmove-1.ll
memmove-2.ll
memmove.ll Revert "Change memcpy/memset/memmove to have dest and source alignments." 2015-11-19 05:56:52 +00:00
memmove_chk-1.ll Revert "Change memcpy/memset/memmove to have dest and source alignments." 2015-11-19 05:56:52 +00:00
memmove_chk-2.ll
memset-1.ll [LibCallSimplifier] fold memset(malloc(x), 0, x) --> calloc(1, x) 2016-01-26 16:17:24 +00:00
memset-2.ll
memset.ll Revert "Change memcpy/memset/memmove to have dest and source alignments." 2015-11-19 05:56:52 +00:00
memset2.ll Revert "Change memcpy/memset/memmove to have dest and source alignments." 2015-11-19 05:56:52 +00:00
memset_chk-1.ll Re-apply r238452, the bug was in clang and was fixed in r260567. 2016-02-11 22:30:41 +00:00
memset_chk-2.ll
merge-icmp.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
min-positive.ll [InstCombine] allow (icmp sgt smin(PosA, B), 0) fold for vectors 2016-09-15 16:23:20 +00:00
minmax-fold.ll [InstCombine] canonicalize min/max constant to select's false value 2016-11-21 22:04:14 +00:00
minmax-fp.ll [InstCombine] auto-generate checks 2016-10-25 00:41:00 +00:00
minnum.ll Fix using wrong intrinsic in test 2015-01-06 23:00:33 +00:00
misc-2002.ll [InstCombine] regenerate checks 2016-04-05 17:24:54 +00:00
mul-masked-bits.ll [InstCombine] regenerate checks 2016-04-05 17:24:54 +00:00
mul.ll [InstCombine] (mul nsw 1, INT_MIN) != (shl nsw 1, 31) 2015-04-18 04:41:30 +00:00
multi-size-address-space-pointer.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
multi-use-or.ll
narrow-switch.ll [InstCombine] shrink switch conditions better (PR24766) 2016-06-30 14:51:21 +00:00
narrow.ll [InstCombine] allow more narrowing transforms for logic ops 2016-11-30 20:48:54 +00:00
neon-intrinsics.ll [ARM][NEON] Use address space in vld([1234]|[234]lane) and vst([1234]|[234]lane) instructions 2015-09-30 10:56:37 +00:00
no-negzero.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
no_cgscc_assert.ll [LibCallSimplifier] use instruction-level fast-math-flags to transform sqrt calls 2016-01-11 22:34:19 +00:00
non-integral-pointers.ll [InstCombine] Don't coerce non-integral pointers to integers 2016-08-06 02:58:48 +00:00
nonnull-attribute.ll isKnownNonNull needs to consider globals in non-zero address spaces. 2015-08-27 03:16:29 +00:00
not-fcmp.ll Use FileCheck instead of grep. Change by Sonam. 2014-11-27 10:57:24 +00:00
not.ll fix typos, remove noise; NFCI 2015-09-08 17:58:22 +00:00
nothrow.ll
nsw.ll
obfuscated_splat.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
objsize-64.ll Move the personality function from LandingPadInst to Function 2015-06-17 20:52:32 +00:00
objsize-address-space.ll [opaque pointer type] Add textual IR support for explicit type parameter for global aliases 2015-09-11 03:22:04 +00:00
objsize-noverify.ll Verifier: Call verifyModule() from llc and opt 2015-03-27 22:04:28 +00:00
objsize.ll Revert "Change memcpy/memset/memmove to have dest and source alignments." 2015-11-19 05:56:52 +00:00
odr-linkage.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
onehot_merge.ll
opaque.ll [InstCombine] Fix assertion when bitcast is converted to gep 2016-05-23 19:23:17 +00:00
or-fcmp.ll [InstCombine] Simplify and correct folding fcmps with the same children 2016-06-29 20:10:17 +00:00
or-to-xor.ll update tests to use FileCheck 2016-06-25 17:39:10 +00:00
or-xor.ll [InstCombine] add tests to show pattern matching failures due to commutation 2016-09-09 16:35:20 +00:00
or.ll [InstCombine] add tests to show pattern matching failures due to commutation 2016-09-09 16:35:20 +00:00
osx-names.ll [opaque pointer type] Add textual IR support for explicit type parameter to the call instruction 2015-04-16 23:24:18 +00:00
overflow-mul.ll Make DataLayout Non-Optional in the Module 2015-03-04 18:43:29 +00:00
overflow.ll [InstCombine][CodeGenPrep] Create llvm.uadd.with.overflow in CGP. 2015-04-10 21:07:09 +00:00
phi-load-metadata-2.ll Preserve load alignment and dereferenceable metadata during some transformations 2015-11-02 17:53:51 +00:00
phi-load-metadata-3.ll Preserve load alignment and dereferenceable metadata during some transformations 2015-11-02 17:53:51 +00:00
phi-load-metadata.ll Preserve load alignment and dereferenceable metadata during some transformations 2015-11-02 17:53:51 +00:00
phi-merge-gep.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
phi-preserve-ir-flags.ll [InstCombine] Preserve fast math flags when combining PHIs 2016-04-22 11:21:36 +00:00
phi-select-constexpr.ll
phi.ll Revert "[ValueTracking] Teach computeKnownBits for PHI nodes to compute sign bit for a recurrence with a NSW addition." 2016-06-29 04:57:00 +00:00
pow-1.ll [SLC] Emit an intrinsic instead of a libcall for pow. 2016-08-07 20:27:03 +00:00
pow-2.ll
pow-3.ll
pow-4.ll [LibCallSimplifier] use instruction-level fast-math-flags to transform pow(x, [small integer]) calls 2016-01-19 18:15:12 +00:00
pow-exp-nofastmath.ll [SimplifyLibCalls] Add a new transformation: pow(exp(x), y) -> exp(x*y) 2015-11-03 20:32:23 +00:00
pow-exp.ll [LibCallSimplifier] use instruction-level fast-math-flags to transform pow(exp(x)) calls 2016-01-12 17:30:37 +00:00
pow-sqrt.ll [SimplifyLibCalls] Restore the old behaviour, emit a libcall. 2016-08-10 06:33:32 +00:00
pr2645-0.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
pr2645-1.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
pr2996.ll [opaque pointer type] Add textual IR support for explicit type parameter to the call instruction 2015-04-16 23:24:18 +00:00
pr12251.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
pr12338.ll [InstCombine] Re-commit of r218721 (Optimize icmp-select-icmp sequence) 2014-11-21 23:36:44 +00:00
pr17827.ll [InstCombine] use m_APInt to allow icmp ult X, C folds for splat constant vectors 2016-09-09 21:59:37 +00:00
pr19420.ll
pr20079.ll
pr20678.ll [ConstantFolding, ValueTracking] Fold constants involving bitcasts of ConstantVector 2016-05-04 06:13:33 +00:00
pr21199.ll [InstCombine] Re-commit of r218721 (Optimize icmp-select-icmp sequence) 2014-11-21 23:36:44 +00:00
pr21210.ll [InstCombine] Sharpended test case in pr21210.ll 2016-04-27 17:19:54 +00:00
pr21651.ll [InstCombine] shrink switch conditions better (PR24766) 2016-06-30 14:51:21 +00:00
pr21891.ll ValueTracking: Don't recurse too deeply in computeKnownBitsFromAssume 2014-12-12 23:59:29 +00:00
pr23751.ll [InstCombine] Fix PR23751. 2015-06-05 18:04:42 +00:00
pr23809.ll [InstCombine] call SimplifyICmpInst with correct context 2015-06-25 20:14:47 +00:00
pr24354.ll Fix PR24354. 2015-08-11 21:33:55 +00:00
pr24605.ll [InstCombine] Fix PR24605. 2015-08-28 19:09:31 +00:00
pr25342.ll [InstCombine] Resubmit the combine of A->B->A BitCast and fix for pr27996 2016-10-25 20:43:42 +00:00
pr25745.ll [InstCombine] Call getCmpPredicateForMinMax only with a valid SPF 2015-12-05 23:44:22 +00:00
pr26992.ll [InstCombine] Don't insert instructions before a catch switch 2016-03-19 04:39:52 +00:00
pr26993.ll [SimplifyLibCalls] Only consider sinpi/cospi functions within the same function 2016-03-19 04:53:02 +00:00
pr27236.ll [InstCombine] canonicalize min/max constant to select's false value 2016-11-21 22:04:14 +00:00
pr27332.ll [InstCombine] Don't transform compares of calls to functions named fabs{f,l,} 2016-04-15 17:21:03 +00:00
pr27703.ll [InstCombine] Resubmit the combine of A->B->A BitCast and fix for pr27996 2016-10-25 20:43:42 +00:00
pr27996.ll [InstCombine] Resubmit the combine of A->B->A BitCast and fix for pr27996 2016-10-25 20:43:42 +00:00
pr28143.ll [TargetLibraryInfo] Teach isValidProtoForLibFunc about tan 2016-06-15 16:47:23 +00:00
pr30929.ll [LibcallsShrinkWrap] This pass doesn't preserve the CFG. 2016-11-08 19:18:20 +00:00
preserve-sminmax.ll
prevent-cmp-merge.ll [InstCombine] Don't aggressively replace xor with icmp 2016-02-12 18:12:38 +00:00
printf-1.ll Optimize a printf with a double procent to putchar. 2016-05-09 14:36:16 +00:00
printf-2.ll [SimplifyLibCalls] Transform printf("%s", "a") -> putchar('a'). 2016-03-28 15:54:01 +00:00
printf-3.ll Add test for r256912 2016-01-07 19:27:16 +00:00
ptr-int-cast.ll
puts-1.ll [opaque pointer type] Add textual IR support for explicit type parameter to gep operator 2015-03-13 18:20:45 +00:00
range-check.ll InstCombine: simplify signed range checks 2014-12-03 10:39:15 +00:00
rem.ll [InstCombine] use m_APInt to allow icmp eq (srem X, C1), C2 folds for splat constant vectors 2016-08-03 19:48:40 +00:00
round.ll
sdiv-1.ll
sdiv-2.ll
select-2.ll
select-bitext.ll [InstCombine] add tests to show likely unwanted select widening; NFC 2016-11-18 23:22:00 +00:00
select-cmp-br.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
select-cmp-cttz-ctlz.ll [InstCombine] Fix regression introduced at r227197. 2015-02-13 16:33:34 +00:00
select-crash-noverify.ll Verifier: Call verifyModule() from llc and opt 2015-03-27 22:04:28 +00:00
select-crash.ll Verifier: Call verifyModule() from llc and opt 2015-03-27 22:04:28 +00:00
select-extractelement.ll
select-implied.ll [ValueTracking] Improve isImpliedCondition for matching LHS and Imm RHSs. 2016-05-05 15:39:18 +00:00
select-load-call.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
select-select.ll InstCombine: Ensure select condition types are identical before merging 2015-03-03 22:40:36 +00:00
select-with-bitwise-ops.ll [InstCombine] auto-generate checks for select+bitwise logic tests; NFC 2016-11-30 17:07:21 +00:00
select.ll [InstCombine] auto-generate checks for select+bitwise logic tests; NFC 2016-11-30 17:07:21 +00:00
select_meta.ll [InstCombine] don't drop metadata in FoldOpIntoSelect() 2016-11-26 15:23:20 +00:00
set.ll fix checks 2016-06-05 17:54:56 +00:00
setcc-strength-reduce.ll
sext.ll [InstCombine] canonicalize min/max constant to select's false value 2016-11-21 22:04:14 +00:00
shift-add.ll [InstCombine] Folding of shifts by the sum of positive values 2016-11-01 15:40:30 +00:00
shift-shift.ll [InstCombine] consolidate tests for related bugs 2016-04-11 17:58:37 +00:00
shift-sra.ll
shift.ll [InstCombine] use m_APInt to allow icmp X, C folds for splat constant vectors 2016-09-12 16:25:41 +00:00
shufflemask-undef.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
shufflevec-constant.ll [InstCombine] regenerate checks 2016-04-05 17:24:54 +00:00
sign-test-and-or.ll minimize tests and auto-generate checks 2016-07-20 17:58:20 +00:00
signed-comparison.ll [InstCombine] allow vector constants for cast+icmp fold 2016-06-04 22:04:05 +00:00
signext.ll auto-generate checks 2016-07-16 16:27:58 +00:00
simplify-demanded-bits-pointer.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
simplify-libcalls.ll [TLI] isdigit / isascii / toascii param type should match return type (PR30484) 2016-09-23 18:44:09 +00:00
sincospi.ll [SimplifyLibCalls] Don't depend on a called function having a name, it might be an indirect call. 2015-11-26 09:51:17 +00:00
sink-into-catchswitch.ll [InstCombine] Don't sink an instr after a catchswitch 2016-04-01 17:28:17 +00:00
sink_instruction.ll [InstCombine] Allow sinking from unique predecessor with multiple edges 2016-08-22 18:21:56 +00:00
sitofp.ll InstCombine: fold more cases of (fp_to_u/sint (u/sint_to_fp val)) 2015-02-16 21:47:54 +00:00
sprintf-1.ll Revert "[SimplifyLibCalls] sprintf doesn't copy null bytes" 2016-04-26 21:04:47 +00:00
sqrt-nofast.ll [SimplifyLibCalls] Add test to ensure transform is not executed if fast-math 2015-10-31 20:59:32 +00:00
sqrt.ll [opaque pointer type] Add textual IR support for explicit type parameter to the call instruction 2015-04-16 23:24:18 +00:00
srem-simplify-bug.ll
srem.ll
srem1.ll [opaque pointer type] Add textual IR support for explicit type parameter to the call instruction 2015-04-16 23:24:18 +00:00
stack-overalign.ll Revert "Change memcpy/memset/memmove to have dest and source alignments." 2015-11-19 05:56:52 +00:00
stacksaverestore.ll [InstCombine] Be more conservative about removing stackrestore 2016-02-27 00:53:54 +00:00
statepoint.ll [gc.statepoint] Change gc.statepoint intrinsic's return type to token type instead of i32 type 2015-12-26 07:54:32 +00:00
store.ll [InstCombine] Extend peephole DSE to handle unordered atomics 2015-12-17 22:19:27 +00:00
stpcpy-1.ll [opaque pointer type] Add textual IR support for explicit type parameter to gep operator 2015-03-13 18:20:45 +00:00
stpcpy-2.ll [opaque pointer type] Add textual IR support for explicit type parameter to getelementptr instruction 2015-02-27 19:29:02 +00:00
stpcpy_chk-1.ll Revert "Change memcpy/memset/memmove to have dest and source alignments." 2015-11-19 05:56:52 +00:00
stpcpy_chk-2.ll [opaque pointer type] Add textual IR support for explicit type parameter to getelementptr instruction 2015-02-27 19:29:02 +00:00
strcat-1.ll [opaque pointer type] Add textual IR support for explicit type parameter to getelementptr instruction 2015-02-27 19:29:02 +00:00
strcat-2.ll [opaque pointer type] Add textual IR support for explicit type parameter to getelementptr instruction 2015-02-27 19:29:02 +00:00
strcat-3.ll [opaque pointer type] Add textual IR support for explicit type parameter to getelementptr instruction 2015-02-27 19:29:02 +00:00
strchr-1.ll [SimplifyLibCalls] Turn memchr(const, C, const) into a bitfield check. 2015-03-21 21:09:33 +00:00
strchr-2.ll [opaque pointer type] Add textual IR support for explicit type parameter to getelementptr instruction 2015-02-27 19:29:02 +00:00
strcmp-1.ll [opaque pointer type] Add textual IR support for explicit type parameter to gep operator 2015-03-13 18:20:45 +00:00
strcmp-2.ll [opaque pointer type] Add textual IR support for explicit type parameter to getelementptr instruction 2015-02-27 19:29:02 +00:00
strcpy-1.ll [opaque pointer type] Add textual IR support for explicit type parameter to gep operator 2015-03-13 18:20:45 +00:00
strcpy-2.ll [opaque pointer type] Add textual IR support for explicit type parameter to getelementptr instruction 2015-02-27 19:29:02 +00:00
strcpy_chk-1.ll Revert "Change memcpy/memset/memmove to have dest and source alignments." 2015-11-19 05:56:52 +00:00
strcpy_chk-2.ll [opaque pointer type] Add textual IR support for explicit type parameter to getelementptr instruction 2015-02-27 19:29:02 +00:00
strcpy_chk-64.ll [opaque pointer type] Add textual IR support for explicit type parameter to getelementptr instruction 2015-02-27 19:29:02 +00:00
strcspn-1.ll [opaque pointer type] Add textual IR support for explicit type parameter to getelementptr instruction 2015-02-27 19:29:02 +00:00
strcspn-2.ll [opaque pointer type] Add textual IR support for explicit type parameter to getelementptr instruction 2015-02-27 19:29:02 +00:00
strlen-1.ll Simplify strlen to a subtraction for certain cases. 2016-04-13 14:31:06 +00:00
strlen-2.ll [opaque pointer type] Add textual IR support for explicit type parameter to getelementptr instruction 2015-02-27 19:29:02 +00:00
strncat-1.ll [opaque pointer type] Add textual IR support for explicit type parameter to getelementptr instruction 2015-02-27 19:29:02 +00:00
strncat-2.ll [opaque pointer type] Add textual IR support for explicit type parameter to getelementptr instruction 2015-02-27 19:29:02 +00:00
strncat-3.ll [opaque pointer type] Add textual IR support for explicit type parameter to getelementptr instruction 2015-02-27 19:29:02 +00:00
strncmp-1.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
strncmp-2.ll [opaque pointer type] Add textual IR support for explicit type parameter to getelementptr instruction 2015-02-27 19:29:02 +00:00
strncpy-1.ll [opaque pointer type] Add textual IR support for explicit type parameter to gep operator 2015-03-13 18:20:45 +00:00
strncpy-2.ll [opaque pointer type] Add textual IR support for explicit type parameter to getelementptr instruction 2015-02-27 19:29:02 +00:00
strncpy_chk-1.ll Revert "Change memcpy/memset/memmove to have dest and source alignments." 2015-11-19 05:56:52 +00:00
strncpy_chk-2.ll [opaque pointer type] Add textual IR support for explicit type parameter to getelementptr instruction 2015-02-27 19:29:02 +00:00
strpbrk-1.ll [opaque pointer type] Add textual IR support for explicit type parameter to gep operator 2015-03-13 18:20:45 +00:00
strpbrk-2.ll [opaque pointer type] Add textual IR support for explicit type parameter to getelementptr instruction 2015-02-27 19:29:02 +00:00
strrchr-1.ll [opaque pointer type] Add textual IR support for explicit type parameter to gep operator 2015-03-13 18:20:45 +00:00
strrchr-2.ll [opaque pointer type] Add textual IR support for explicit type parameter to getelementptr instruction 2015-02-27 19:29:02 +00:00
strspn-1.ll [opaque pointer type] Add textual IR support for explicit type parameter to getelementptr instruction 2015-02-27 19:29:02 +00:00
strstr-1.ll [opaque pointer type] Add textual IR support for explicit type parameter to gep operator 2015-03-13 18:20:45 +00:00
strstr-2.ll [opaque pointer type] Add textual IR support for explicit type parameter to getelementptr instruction 2015-02-27 19:29:02 +00:00
strto-1.ll [attrs] Extract the pure inference of function attributes into 2015-12-27 08:41:34 +00:00
struct-assign-tbaa.ll Revert "Change memcpy/memset/memmove to have dest and source alignments." 2015-11-19 05:56:52 +00:00
sub-xor.ll [InstCombine] use m_APInt to allow sub with constant folds for splat vectors 2016-10-14 16:31:54 +00:00
sub.ll [InstCombine] use m_APInt to allow sub with constant folds for splat vectors 2016-10-14 16:31:54 +00:00
switch-constant-expr.ll [InstCombine] Fix constexpr issue in select combining 2016-10-12 10:20:15 +00:00
switch-truncate-crash.ll Fix a crash in InstCombine where we could try to truncate a switch comparison to zero width. 2015-03-10 06:51:39 +00:00
tan-nofastmath.ll [SimplifyLibCalls] New transformation: tan(atan(x)) -> x 2015-11-04 23:36:56 +00:00
tan.ll [LibCallSimplifier] use instruction-level fast-math-flags for tan/atan transform 2016-01-06 19:23:35 +00:00
tbaa-store-to-load.ll [InstCombine] Don't widen metadata on store-to-load forwarding 2016-06-16 02:33:42 +00:00
toascii-1.ll
token.ll [InstructionCombining] prepareICWorklistFromFunction halts in infinite loop with instructions of token type 2016-01-04 23:28:57 +00:00
trunc.ll [InstCombine] allow vector types for constant folding / computeKnownBits (PR24942) 2016-09-16 21:20:36 +00:00
type_pun.ll Make DataLayout Non-Optional in the Module 2015-03-04 18:43:29 +00:00
udiv-simplify.ll [InstCombine] Teach the udiv folding logic how to handle constant expressions. 2016-09-26 12:07:23 +00:00
udiv_select_to_select_shift.ll [InstCombine] update test to use FileCheck; NFC 2016-11-11 23:12:46 +00:00
udivrem-change-width.ll
unordered-fcmp-select.ll Bug 21610: Canonicalize min/max fcmp selects to use ordered comparisons 2014-11-24 23:15:18 +00:00
unpack-fca.ll [InstCombine] Don't unpack arrays that are too large (part 2). 2016-10-07 21:53:09 +00:00
urem-simplify-bug.ll [opaque pointer type] Add textual IR support for explicit type parameter to the call instruction 2015-04-16 23:24:18 +00:00
urem.ll [InstCombine] sub X, sext(bool Y) -> add X, zext(bool Y) 2016-10-14 15:24:31 +00:00
vararg.ll [InstCombine] Remove trivially empty va_start/va_end and va_copy/va_end ranges. 2016-05-10 09:24:49 +00:00
vec_demanded_elts.ll [InstCombine] Fixed bug introduced in r282237 2016-09-26 13:18:59 +00:00
vec_extract_2elts.ll
vec_extract_elt.ll
vec_extract_var_elt.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
vec_insertelt.ll
vec_narrow.ll
vec_phi_extract.ll [InstCombine] scalarizePHI should not assume the code it sees has been CSE'd 2016-06-06 23:38:33 +00:00
vec_sext.ll [InstCombine] use m_APInt to allow icmp X, C folds for splat constant vectors 2016-09-12 16:25:41 +00:00
vec_shuffle.ll [InstCombine] regenerate checks; NFC 2016-11-09 22:21:58 +00:00
vector-casts.ll clean up tests and auto-generate checks 2016-09-30 18:37:34 +00:00
vector-mul.ll
vector-srem.ll [InstCombine] Regenerate vector srem tests 2016-12-02 17:12:56 +00:00
vector-type.ll
vector-urem.ll [InstCombine] Add vector urem tests 2016-12-02 17:16:21 +00:00
vector_gep1.ll [opaque pointer type] Add textual IR support for explicit type parameter to getelementptr instruction 2015-02-27 19:29:02 +00:00
vector_gep2.ll Fixed GEP visitor in the InstCombine pass. 2015-11-15 08:19:35 +00:00
vector_insertelt_shuffle.ll [InstCombine] Fix for PR29124: reduce insertelements to shufflevector 2016-09-23 09:14:08 +00:00
volatile_store.ll [InstCombine] regenerate checks 2016-04-05 17:24:54 +00:00
vsx-unaligned.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
weak-symbols.ll [opaque pointer type] Add textual IR support for explicit type parameter to getelementptr instruction 2015-02-27 19:29:02 +00:00
win-math.ll
x86-avx.ll Dropped FIXME comment 2016-05-01 20:33:25 +00:00
x86-avx2.ll [InstCombine][SSE] Added support to VPERMD/VPERMPS to shuffle combine to accept UNDEF elements. 2016-05-01 20:43:02 +00:00
x86-crc32-demanded.ll
x86-f16c.ll [InstCombine][X86] Regenerate SSE combine tests as part of setup for D17490 2016-04-19 12:56:46 +00:00
x86-insertps.ll [InstCombine] Fix for PR29124: reduce insertelements to shufflevector 2016-09-23 09:14:08 +00:00
x86-masked-memops.ll [InstCombine][X86] Regenerate masked memory op combine tests 2016-09-08 16:32:37 +00:00
x86-movmsk.ll [InstCombine][SSE] Add MOVMSK constant folding (PR27982) 2016-06-07 08:18:35 +00:00
x86-pshufb.ll [InstCombine][SSE] Added support to PSHUFB to shuffle combine to accept UNDEF elements. 2016-05-01 19:26:21 +00:00
x86-sse.ll [X86] Remove the scalar intrinsics for fadd/fsub/fdiv/fmul 2016-11-16 05:24:10 +00:00
x86-sse2.ll [X86] Remove the scalar intrinsics for fadd/fsub/fdiv/fmul 2016-11-16 05:24:10 +00:00
x86-sse4a.ll [ConstantFold] Improve the bitcast folding logic for constant vectors. 2016-09-13 14:50:47 +00:00
x86-sse41.ll [InstCombine][SSE] Demanded vector elements for scalar intrinsics (Part 2 of 2) 2016-04-24 18:23:14 +00:00
x86-vector-shifts.ll [InstCombine][AVX-512] Teach InstCombineCalls how to handle the intrinsics for variable shift with 16-bit elements. 2016-11-18 06:04:33 +00:00
x86-vperm2.ll [InstCombine][X86] Regenerate vperm2f128/vperm2i128 combine tests 2016-09-08 16:30:46 +00:00
x86-xop.ll [InstCombine][SSE] Demanded vector elements for scalar intrinsics (Part 2 of 2) 2016-04-24 18:23:14 +00:00
xor-undef.ll
xor.ll [InstCombine] use m_APInt to allow icmp (binop X, Y), C folds with constant splat vectors 2016-08-03 18:59:03 +00:00
xor2.ll [InstCombine] add tests to show pattern matching failures due to commutation 2016-09-09 16:35:20 +00:00
zero-point-zero-add.ll [InstCombine] We folded an fcmp to an i1 instead of a vector of i1 2016-04-13 06:55:52 +00:00
zeroext-and-reduce.ll [InstCombine] LogicOpc (zext X), C --> zext (LogicOpc X, C) (PR28476) 2016-07-21 00:24:18 +00:00
zext-bool-add-sub.ll add more tests for PR30273 2016-09-12 22:28:29 +00:00
zext-fold.ll [InstCombine] regenerate checks 2016-04-05 17:24:54 +00:00
zext-or-icmp.ll [InstCombine] Refactor optimization of zext(or(icmp, icmp)) to enable more aggressive cast-folding 2016-08-03 19:30:35 +00:00
zext.ll [InstCombine] consolidate zext tests and auto-generate checks; NFC 2016-10-26 14:08:49 +00:00

README.txt

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.