hanchenye-llvm-project/llvm/test/Transforms/InstCombine
Sanjay Patel c3d5cf0bb7 [InstCombine] look through bswap/bitreverse for equality comparisons
I noticed this missed bswap optimization in the CGP memcmp() expansion, 
and then I saw that we don't have the fold in InstCombine.

Differential Revision: https://reviews.llvm.org/D34763

llvm-svn: 306980
2017-07-02 14:34:50 +00:00
..
AArch64 InstCombine: Move tests that use target intrinsics into subdirectories 2017-05-13 05:39:46 +00:00
AMDGPU Update three tests I missed in r302979 and r302990 2017-05-18 00:58:06 +00:00
ARM InstCombine: Move tests that use target intrinsics into subdirectories 2017-05-13 05:39:46 +00:00
NVPTX Update three tests I missed in r302979 and r302990 2017-05-18 00:58:06 +00:00
PowerPC InstCombine: Move tests that use target intrinsics into subdirectories 2017-05-13 05:39:46 +00:00
X86 InstCombine: Move tests that use target intrinsics into subdirectories 2017-05-13 05:39:46 +00:00
2003-05-26-CastMiscompile.ll
2003-05-27-ConstExprCrash.ll
2003-06-05-BranchInvertInfLoop.ll
2003-07-21-ExternalConstant.ll
2003-08-12-AllocaNonNull.ll
2003-09-09-VolatileLoadElim.ll
2003-10-29-CallSiteResolve.ll
2003-11-03-VarargsCallBug.ll
2004-01-13-InstCombineInvokePHI.ll
2004-02-23-ShiftShiftOverflow.ll
2004-03-13-InstCombineInfLoop.ll
2004-04-04-InstCombineReplaceAllUsesWith.ll
2004-05-07-UnsizedCastLoad.ll
2004-07-27-ConstantExprMul.ll
2004-08-09-RemInfLoop.ll
2004-08-10-BoolSetCC.ll
2004-09-20-BadLoadCombine.ll
2004-09-20-BadLoadCombine2.ll
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-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
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
2006-12-08-Select-ICmp.ll
2006-12-15-Range-Test.ll
2006-12-23-Select-Cmp-Cmp.ll
2007-01-13-ExtCompareMiscompile.ll
2007-01-14-FcmpSelf.ll
2007-01-18-VectorInfLoop.ll
2007-02-01-LoadSinkAlloca.ll
2007-02-07-PointerCast.ll
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
2007-05-18-CastFoldBug.ll
2007-06-06-AshrSignBit.ll
2007-06-21-DivCompareMiscomp.ll
2007-08-02-InfiniteLoop.ll
2007-09-10-AliasConstFold.ll
2007-09-17-AliasConstFold2.ll
2007-10-10-EliminateMemCpy.ll
2007-10-12-Crash.ll
2007-10-28-stacksave.ll
2007-10-31-RangeCrash.ll
2007-10-31-StringCrash.ll
2007-11-07-OpaqueAlignCrash.ll
2007-11-15-CompareMiscomp.ll
2007-11-25-CompatibleAttributes.ll
2007-12-10-ConstFoldCompare.ll
2007-12-12-GEPScale.ll
2007-12-16-AsmNoUnwind.ll
2007-12-18-AddSelCmpSub.ll
2007-12-28-IcmpSub2.ll
2008-01-06-BitCastAttributes.ll
2008-01-06-CastCrash.ll
2008-01-06-VoidCast.ll
2008-01-13-AndCmpCmp.ll
2008-01-14-VarArgTrampoline.ll
2008-01-21-MismatchedCastAndCompare.ll
2008-01-21-MulTrunc.ll
2008-01-27-FloatSelect.ll
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
2008-04-22-ByValBitcast.ll
2008-04-28-VolatileStore.ll
2008-04-29-VolatileLoadDontMerge.ll
2008-04-29-VolatileLoadMerge.ll
2008-05-08-LiveStoreDelete.ll
2008-05-08-StrLenSink.ll
2008-05-09-SinkOfInvoke.ll
2008-05-17-InfLoop.ll
2008-05-18-FoldIntToPtr.ll
2008-05-22-IDivVector.ll
2008-05-22-NegValVector.ll [InstCombine] Support weird size element types in dyn_castNegVal. 2017-04-11 05:42:47 +00:00
2008-05-23-CompareFold.ll
2008-05-31-AddBool.ll
2008-05-31-Bools.ll
2008-06-05-ashr-crash.ll
2008-06-08-ICmpPHI.ll
2008-06-13-InfiniteLoopStore.ll
2008-06-13-ReadOnlyCallStore.ll
2008-06-19-UncondLoad.ll
2008-06-21-CompareMiscomp.ll
2008-06-24-StackRestore.ll
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
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-11-RemAnd.ll
2008-07-13-DivZero.ll
2008-07-16-fsub.ll
2008-08-05-And.ll
2008-09-02-VectorCrash.ll
2008-10-11-DivCompareFold.ll
2008-10-23-ConstFoldWithoutMask.ll
2008-11-01-SRemDemandedBits.ll
2008-11-08-FCmp.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
2009-01-16-PointerAddrSpace.ll
2009-01-19-fmod-constant-float-specials.ll
2009-01-19-fmod-constant-float.ll
2009-01-24-EmptyStruct.ll
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
2009-02-25-CrashZeroSizeArray.ll
2009-03-18-vector-ashr-crash.ll
2009-03-24-InfLoop.ll
2009-04-07-MulPromoteToI96.ll
2009-05-23-FCmpToICmp.ll
2009-06-11-StoreAddrSpace.ll
2009-06-16-SRemDemandedBits.ll
2009-07-02-MaskedIntVector.ll
2009-12-17-CmpSelectNull.ll
2010-01-28-NegativeSRem.ll
2010-03-03-ExtElim.ll
2010-05-30-memcpy-Struct.ll
2010-11-01-lshr-mask.ll
2010-11-21-SizeZeroTypeGEP.ll
2010-11-23-Distributed.ll
2011-02-14-InfLoop.ll
2011-03-08-SRemMinusOneBadOpt.ll
2011-05-02-VectorBoolean.ll
2011-05-13-InBoundsGEP.ll
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
2011-09-03-Trampoline.ll
2011-10-07-AlignPromotion.ll
2012-01-11-OpaqueBitcastCrash.ll
2012-02-13-FCmp.ll
2012-02-28-ICmp.ll
2012-03-10-InstCombine.ll
2012-3-15-or-xor-constant.ll
2012-04-24-vselect.ll
2012-04-30-SRem.ll
2012-05-28-select-hang.ll
2012-06-06-LoadOfPHIs.ll
2012-6-7-vselect-bitcast.ll
2012-07-25-LoadPart.ll opt: Rename -default-data-layout flag to -data-layout and make it always override the layout. 2017-02-17 17:36:52 +00:00
2012-07-30-addrsp-bitcast.ll
2012-08-28-udiv_ashl.ll
2012-09-17-ZeroSizedAlloca.ll
2012-10-25-vector-of-pointers.ll
2012-12-14-simp-vgep.ll
2013-03-05-Combine-BitcastTy-Into-Alloca.ll
AddOverFlow.ll [InstCombine][KnownBits] Use KnownBits better to detect nsw adds 2017-05-03 23:22:46 +00:00
CPP_min_max.ll
ExtractCast.ll
IntPtrCast.ll
JavaCompare.ll
LandingPadClauses.ll
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 Fix for PR32740 - Invalid floating type, unreachable between r300969 and r301029 2017-04-22 07:24:52 +00:00
add.ll [InstCombine] add (sext i1 X), 1 --> zext (not X) 2017-06-25 14:15:28 +00:00
add2.ll
add3.ll
addnegneg.ll
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
align-2d-gep.ll
align-addr.ll
align-attr.ll Teach computeKnownBits to look through returned-argument functions 2016-07-11 02:25:14 +00:00
align-external.ll
all-bits-shift.ll
alloca.ll [InstCombine] Teach isAllocSiteRemovable to look through addrspacecasts 2017-05-25 15:14:48 +00:00
allocsize-32.ll Add the allocsize attribute to LLVM. 2016-04-12 01:05:35 +00:00
allocsize.ll [Analysis] Ignore `nobuiltin` on `allocsize` function calls. 2016-12-27 06:32:14 +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 [InstSimplify] use ConstantRange to simplify or-of-icmps 2017-05-07 15:11:40 +00:00
and-or-not.ll [InstCombine] Fold (a | b) ^ (~a | ~b) --> ~(a ^ b) and (a & b) ^ (~a & ~b) --> ~(a ^ b) 2017-07-02 01:15:51 +00:00
and-or.ll [InstCombine] consolidate tests for DeMorgan folds; NFC 2017-04-30 18:57:12 +00:00
and-xor-merge.ll
and-xor-or.ll
and.ll [InstCombine] fix typo in test comment; NFC 2017-05-10 14:25:23 +00:00
and2.ll [InstCombine] add/move tests for and/or-of-icmps equality folds; NFC 2017-04-14 18:19:27 +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-and.ll [InstCombine] use FileCheck and auto-generate checks; NFC 2017-05-01 14:20:30 +00:00
apint-call-cast-target.ll
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 [InstCombine] consolidate tests for DeMorgan folds; NFC 2017-04-30 18:57:12 +00:00
apint-or.ll [InstCombine] consolidate tests for DeMorgan folds; NFC 2017-04-30 18:57:12 +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] allow shl demanded bits folds with splat constants 2017-04-20 21:33:02 +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] fix operand-complexity-based canonicalization (PR28296) 2017-02-03 21:43:34 +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
assume-redundant.ll Revert @llvm.assume with operator bundles (r289755-r289757) 2016-12-19 08:22:17 +00:00
assume.ll [ValueTracking] recognize a 'not' of an assumed condition as false 2017-01-17 18:15:49 +00:00
assume2.ll [InstCombine] don't use DeMorgan's Law on integer constants (2nd try) 2017-05-02 15:31:40 +00:00
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
bitcast-alias-function.ll
bitcast-bigendian.ll [InstCombine] reverse bitcast + bitwise-logic canonicalization (PR33138) 2017-06-22 15:46:54 +00:00
bitcast-bitcast.ll
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] auto-generate test checks; NFC 2017-05-23 17:51:22 +00:00
bitcast.ll [InstCombine] reverse bitcast + bitwise-logic canonicalization (PR33138) 2017-06-22 15:46:54 +00:00
bitcount.ll
bitreverse-fold.ll [Analysis] bitreverse(undef) returns undef 2017-03-19 04:40:42 +00:00
bitreverse-hang.ll
bitreverse-known-bits.ll [ValueTracking] Make sure we keep range metadata information when calculating known bits for calls to bitreverse intrinsic. 2017-03-22 07:22:49 +00:00
bittest.ll
branch.ll
broadcast.ll [InstCombine] Canonicalize insert splat sequences into an insert + shuffle 2016-12-28 00:18:08 +00:00
bswap-fold.ll [InstCombine] auto-generate better test checks; NFC 2017-02-03 20:19:33 +00:00
bswap-known-bits.ll
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 Add address space mangling to lifetime intrinsics 2017-04-10 20:18:21 +00:00
builtin-object-size-ptr.ll Add address space mangling to lifetime intrinsics 2017-04-10 20:18:21 +00:00
call-cast-attrs.ll Simplify test for sret attribute in instcombine 2017-04-19 23:17:47 +00:00
call-cast-target-inalloca.ll
call-cast-target.ll
call-guard.ll [InstCombine] Allow InstCombine to merge adjacent guards 2017-02-01 16:34:55 +00:00
call-intrinsics.ll
call.ll Don't remove side effecting instructions due to ConstantFoldInstruction 2016-07-22 04:54:44 +00:00
call2.ll
call_nonnull_arg.ll [ValueTracking] use nonnull argument attribute to eliminate null checks 2017-02-12 15:35:34 +00:00
canonicalize_branch.ll [InstCombine] add isCanonicalPredicate() helper function and use it; NFCI 2017-05-17 14:21:19 +00:00
cast-call-combine-prof.ll [InstCombine] Fix !prof metadata preservation for invokes 2017-04-13 20:26:38 +00:00
cast-call-combine.ll
cast-callee-deopt-bundles.ll
cast-int-fcmp-eq-0.ll
cast-mul-select.ll
cast-set.ll auto-ggenerate checks 2016-07-16 16:24:06 +00:00
cast.ll [InstCombine] Take in account the size in sext->lshr->trunc patterns. 2017-05-21 20:30:27 +00:00
cast_ptr.ll
ceil.ll
clamp-to-minmax.ll Revert of r306525: "Canonicalize clamp of float types to minmax" 2017-06-30 10:39:09 +00:00
compare-3way.ll [InstCombine] Recognize and simplify three way comparison idioms 2017-06-23 13:41:45 +00:00
compare-alloca.ll Add address space mangling to lifetime intrinsics 2017-04-10 20:18:21 +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 [InstCombine] fix operand-complexity-based canonicalization (PR28296) 2017-02-03 21:43:34 +00:00
consecutive-fences.ll [Instcombine] Combine consecutive identical fences 2017-01-31 18:09:05 +00:00
constant-expr-datalayout.ll
constant-fold-address-space-pointer.ll
constant-fold-alias.ll
constant-fold-compare.ll
constant-fold-gep.ll
constant-fold-iteration.ll [InstCombine] Prevent InstCombine from triggering an extra iteration if something changed in the initial Worklist creation 2017-05-13 06:56:04 +00:00
constant-fold-libfunc.ll [InstSimplify] Don't constant fold or DCE calls that are marked nobuiltin 2017-06-09 23:18:11 +00:00
constant-fold-math.ll [InstCombine] Add frem constant folding test (PR3316) 2017-04-19 21:09:19 +00:00
convergent.ll Fix some broken CHECK lines. 2017-01-22 20:28:56 +00:00
copysign.ll
cos-1.ll
cos-2.ll
cos-intrinsic.ll InstCombine: Fold cos(-x) -> cos(x) 2017-01-04 22:49:03 +00:00
crash.ll
ctpop.ll [InstCombine] Add range metadata to cttz/ctlz/ctpop intrinsic calls based on known bits 2017-06-21 16:32:35 +00:00
dce-iterate.ll
deadcode.ll Add address space mangling to lifetime intrinsics 2017-04-10 20:18:21 +00:00
debug-line.ll [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
debuginfo-dce.ll Align definition of DW_OP_plus with DWARF spec [3/3] 2017-06-14 13:14:38 +00:00
debuginfo-skip.ll llvm/test/Transforms/InstCombine/debuginfo-skip.ll REQUIRES +asserts. 2017-05-16 22:19:56 +00:00
debuginfo.ll [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
default-alignment.ll
demand_shrink_nsw.ll [InstCombine][KnownBits] Use KnownBits better to detect nsw adds 2017-05-03 23:22:46 +00:00
demorgan.ll [InstCombine] fix auto-generated FileCheck-captured variable refs 2017-05-10 14:40:04 +00:00
disable-simplify-libcalls.ll
distribute.ll
div-shift-crash.ll
div-shift.ll [InstCombine] Add support for turning vector sdiv into udiv. 2017-04-17 01:51:19 +00:00
div.ll [InstCombine] Simplify 1/X for vectors. 2017-04-17 03:41:47 +00:00
double-float-shrink-1.ll
double-float-shrink-2.ll InstCombine: Check source value precision when reducing cast intrinsic 2017-03-20 21:59:24 +00:00
early_constfold_changes_IR.ll [InstCombine] Make sure AddReachableCodeToWorklist sets MadeIRChange 2017-06-19 18:00:27 +00:00
early_dce_clobbers_callgraph.ll [InstCombine] Make sure AddReachableCodeToWorklist sets MadeIRChange 2017-06-19 18:00:27 +00:00
element-atomic-memcpy-to-loads.ll [Atomics] Rename and change prototype for atomic memcpy intrinsic 2017-06-16 14:43:59 +00:00
enforce-known-alignment.ll
err-rep-cold.ll
exact.ll [InstCombine] use m_APInt to allow ashr folds for vectors with splat constants 2017-01-15 16:38:19 +00:00
exp2-1.ll
exp2-2.ll
extractinsert-tbaa.ll [InstCombine] Retain TBAA when narrowing memory accesses 2017-06-28 23:36:40 +00:00
extractvalue.ll
fabs-libcall.ll SimplifyLibCalls: Replace fabs libcalls with intrinsics 2017-01-17 00:10:40 +00:00
fabs.ll SimplifyLibCalls: Replace fabs libcalls with intrinsics 2017-01-17 00:10:40 +00:00
fast-math-scalarization.ll
fast-math.ll [InstCombine] Make sure we preserve fast math flags when folding fp instructions into phi nodes 2017-04-10 07:00:10 +00:00
fcmp-select.ll
fcmp-special.ll regenerate checks 2016-06-05 17:29:45 +00:00
fcmp.ll [InstCombine] remove duplicate test; NFC 2017-04-09 21:45:52 +00:00
fdiv.ll InstCombine: fdiv -x, -y -> fdiv x, y 2017-01-10 23:08:54 +00:00
ffs-1.ll [InstCombine] canonicalize icmp predicate feeding select 2017-06-27 17:53:22 +00:00
float-shrink-compare.ll Do not translate rint into nearbyint, but truncate it like nearbyint. 2017-03-31 19:58:07 +00:00
fls.ll [SimplifyLibCalls] Add a test to make sure we lower fls(0) correctly. 2016-12-15 23:48:07 +00:00
fma.ll InstCombine: Canonicalize fast fmuladd to fmul + fadd 2017-02-16 18:46:24 +00:00
fmul.ll
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
fold-sqrt-sqrtf.ll
fold-vector-select.ll
fold-vector-zero.ll
fp-ret-bitcast.ll
fpcast.ll
fpextend.ll
fpextend_x86.ll
fprintf-1.ll
fputs-1.ll
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 InstCombine: Fix assert when reassociating fsub with undef 2017-04-24 17:24:37 +00:00
fwrite-1.ll
gc.relocate.ll
gep-addrspace.ll
gep-sext.ll
gep-vector.ll [ConstantFold] Get the correct vector type when folding a getelementptr. 2016-10-28 00:53:16 +00:00
gepgep.ll
gepphigep.ll
getelementptr-folding.ll [ConstantFold] Fix incorrect index rewrites for GEPs 2016-05-26 07:08:05 +00:00
getelementptr.ll [InstCombine] Correct the check for vector GEPs 2017-03-29 18:23:08 +00:00
hoist_instr.ll
icmp-add.ll [InstCombine] add nsw/nuw X, signbit --> or X, signbit 2017-02-18 22:20:09 +00:00
icmp-div-constant.ll fix FileCheck variables for test added with r280677 2016-09-05 23:49:32 +00:00
icmp-logical.ll
icmp-range.ll
icmp-shl-nsw.ll [InstCombine] icmp Pred (shl nsw X, C1), C0 --> icmp Pred X, C0 >> C1 2017-01-19 16:12:10 +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-xor-signbit.ll [InstCombine] reverse bitcast + bitwise-logic canonicalization (PR33138) 2017-06-22 15:46:54 +00:00
icmp.ll [InstCombine] look through bswap/bitreverse for equality comparisons 2017-07-02 14:34:50 +00:00
idioms.ll
indexed-gep-compares.ll [InstCombine] Make sure that LHS and RHS have the same type in 2017-01-31 14:04:15 +00:00
inline-intrinsic-assert.ll
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] Fix extractelement use before def 2017-06-05 09:18:10 +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 [InstCombine] Add range metadata to cttz/ctlz/ctpop intrinsic calls based on known bits 2017-06-21 16:32:35 +00:00
invariant.ll Revert "Revert "Invariant start/end intrinsics overloaded for address space"" 2016-08-13 23:31:24 +00:00
invoke.ll
isascii-1.ll
isdigit-1.ll
known_align.ll
lifetime-asan.ll Add address space mangling to lifetime intrinsics 2017-04-10 20:18:21 +00:00
lifetime.ll Add address space mangling to lifetime intrinsics 2017-04-10 20:18:21 +00:00
load-bitcast32.ll
load-bitcast64.ll
load-cmp.ll opt: Rename -default-data-layout flag to -data-layout and make it always override the layout. 2017-02-17 17:36:52 +00:00
load-combine-metadata-2.ll
load-combine-metadata-3.ll
load-combine-metadata-4.ll
load-combine-metadata.ll [Verifier] Add verification for TBAA metadata 2016-12-11 20:07:15 +00:00
load-select.ll
load.ll Don't combine stores to a swifterror pointer operand to a different type 2017-01-31 17:53:49 +00:00
load3.ll
load_combine_aa.ll
loadstore-alignment.ll Fix known zero bits for addrspacecast. 2016-11-21 15:42:31 +00:00
loadstore-metadata.ll [Verifier] Add verification for TBAA metadata 2016-12-11 20:07:15 +00:00
log-pow-nofastmath.ll
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 icmp predicate feeding select 2017-06-27 17:53:22 +00:00
lshr-phi.ll
lshr.ll [InstCombine] lshr (sext iM X to iN), N-M --> zext (ashr X, min(N-M, M-1)) to iN 2017-06-12 14:23:43 +00:00
malloc-free-delete.ll Add address space mangling to lifetime intrinsics 2017-04-10 20:18:21 +00:00
masked_intrinsics.ll Support arbitrary address space pointers in masked gather/scatter intrinsics. 2017-05-03 12:28:54 +00:00
max-of-nots.ll [InstCombine] canonicalize icmp predicate feeding select 2017-06-27 17:53:22 +00:00
maxnum.ll
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 SimplifyLibCalls: Optimize wcslen 2017-05-19 22:37:09 +00:00
memcmp-1.ll [InstCombine] auto-generate better checks; NFC 2017-04-09 15:44:59 +00:00
memcmp-2.ll
memcpy-1.ll
memcpy-2.ll
memcpy-addrspace.ll [InstCombine] Fix bug in pointer replacement 2017-02-24 20:27:25 +00:00
memcpy-from-global.ll [InstCombine] Don't replace allocas with smaller globals 2017-06-24 01:35:19 +00:00
memcpy-to-load.ll Remove sometimes faulty rewrite of memcpy in instcombine. 2017-03-01 06:45:20 +00:00
memcpy.ll
memcpy_chk-1.ll
memcpy_chk-2.ll
memmove-1.ll
memmove-2.ll
memmove.ll Explicitly check for presence of correct results in instcombine memmove test 2017-06-29 14:17:50 +00:00
memmove_chk-1.ll
memmove_chk-2.ll
memset-1.ll SimplifyLibCalls: Fix crash on memset(notmalloc()) 2017-04-25 19:44:25 +00:00
memset-2.ll
memset.ll Restore original intent of memset instcombine test 2017-06-29 14:21:28 +00:00
memset2.ll
memset_chk-1.ll Let llvm.objectsize be conservative with null pointers 2017-03-21 20:08:59 +00:00
memset_chk-2.ll
merge-icmp.ll
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 [InstSimplify] use ConstantRange to simplify more and-of-icmps 2017-04-24 21:52:39 +00:00
minmax-fp.ll [InstCombine] auto-generate checks 2016-10-25 00:41:00 +00:00
minnum.ll
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] Propagate nsw flag when turning mul by pow2 into shift when the constant is a vector splat or the scalar bit width is larger than 64-bits 2017-06-27 19:57:53 +00:00
multi-size-address-space-pointer.ll
multi-use-or.ll
narrow-switch.ll opt: Rename -default-data-layout flag to -data-layout and make it always override the layout. 2017-02-17 17:36:52 +00:00
narrow.ll [InstCombine] fix operand-complexity-based canonicalization (PR28296) 2017-02-03 21:43:34 +00:00
no-negzero.ll
no_cgscc_assert.ll
non-integral-pointers.ll [InstCombine] Don't coerce non-integral pointers to integers 2016-08-06 02:58:48 +00:00
nonnull-attribute.ll
not.ll [InstCombine] fix icmp with not op and constant to work with splat vector constant 2017-06-02 16:29:41 +00:00
nothrow.ll
nsw.ll
obfuscated_splat.ll
objsize-64.ll
objsize-address-space.ll
objsize-noverify.ll
objsize.ll Let llvm.objectsize be conservative with null pointers 2017-03-21 20:08:59 +00:00
odr-linkage.ll
onehot_merge.ll [InstCombine] Fold (!iszero(A & K1) & !iszero(A & K2)) -> (A & (K1 | K2)) == (K1 | K2) if K1 and K2 are a 1-bit mask 2017-06-16 05:10:37 +00:00
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-xor.ll [InstCombine] Fold (a | b) ^ (~a | ~b) --> ~(a ^ b) and (a & b) ^ (~a & ~b) --> ~(a ^ b) 2017-07-02 01:15:51 +00:00
or.ll [InstSimplify, InstCombine] move 'or' simplification tests; NFC 2017-05-10 15:57:47 +00:00
osx-names.ll
overflow-mul.ll
overflow.ll
phi-load-metadata-2.ll
phi-load-metadata-3.ll
phi-load-metadata.ll
phi-merge-gep.ll
phi-preserve-ir-flags.ll [InstCombine] Preserve fast math flags when combining PHIs 2016-04-22 11:21:36 +00:00
phi-select-constant.ll [InstCombine] Set correct insertion point for selects generated while folding phis 2017-06-16 21:08:37 +00:00
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 SimplifyLibCalls: Replace fabs libcalls with intrinsics 2017-01-17 00:10:40 +00:00
pow-2.ll
pow-3.ll
pow-4.ll [SimplifyLibCalls] Propagate fast math flags while optimizing pow(). 2017-01-10 18:02:05 +00:00
pow-exp-nofastmath.ll
pow-exp.ll
pow-sqrt.ll Replace hardcoded intrinsic list with speculatable attribute. 2017-05-03 02:26:10 +00:00
pr2645-0.ll
pr2996.ll
pr12251.ll
pr12338.ll
pr17827.ll [InstCombine] allow shl demanded bits folds with splat constants 2017-04-20 21:33:02 +00:00
pr19420.ll [InstCombine] auto-generate better test checks; NFC 2017-02-03 20:56:38 +00:00
pr20079.ll
pr20678.ll [ConstantFolding, ValueTracking] Fold constants involving bitcasts of ConstantVector 2016-05-04 06:13:33 +00:00
pr21199.ll
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
pr23751.ll
pr23809.ll
pr24354.ll
pr24605.ll
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
pr26992.ll
pr26993.ll
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
pr31990_wrong_memcpy.ll Remove sometimes faulty rewrite of memcpy in instcombine. 2017-03-01 06:45:20 +00:00
pr32686.ll Regenerate test. NFCI. 2017-04-19 12:06:40 +00:00
pr33453.ll [InstCombine] Make FPMathOperator working with ConstantExpression(s). 2017-06-17 00:07:22 +00:00
prefetch-load.ll Change the default attributes for llvm.prefetch to inaccessiblemem_or_argmemonly 2017-03-25 20:20:23 +00:00
preserve-sminmax.ll
preserved-analyses.ll [PM] Fix instcombine's analysis preservation in the new pass manager to 2017-01-14 23:25:22 +00:00
prevent-cmp-merge.ll
printf-1.ll Optimize a printf with a double procent to putchar. 2016-05-09 14:36:16 +00:00
printf-2.ll
printf-3.ll
ptr-int-cast.ll
puts-1.ll
range-check.ll
readnone-maythrow.ll [InstCombine] Don't DSE across readnone functions that may throw 2017-01-17 05:45:09 +00:00
rem.ll [InstCombine] Add support for vector srem->urem. 2017-04-17 01:51:24 +00:00
round.ll
sdiv-1.ll
sdiv-2.ll
select-2.ll
select-bitext.ll [InstCombine] use m_APInt to allow ashr folds for vectors with splat constants 2017-01-15 16:38:19 +00:00
select-cmp-br.ll [InstCombine] morph an existing instruction instead of creating a new one 2017-04-12 15:11:33 +00:00
select-cmp-cttz-ctlz.ll [PatternMatch] Remove 64-bit or less restriction from m_SpecificInt 2017-06-27 15:39:40 +00:00
select-crash-noverify.ll
select-crash.ll
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
select-select.ll
select-with-bitwise-ops.ll [InstCombine] canonicalize icmp predicate feeding select 2017-06-27 17:53:22 +00:00
select.ll [InstCombine] canonicalize icmp predicate feeding select 2017-06-27 17:53:22 +00:00
select_meta.ll [InstCombine] canonicalize non-obivous forms of integer min/max 2017-02-21 19:33:53 +00:00
set.ll [InstCombine] fix code/test comments for r305792; NFC 2017-06-20 12:45:46 +00:00
setcc-strength-reduce.ll
sext.ll [InstCombine] fix auto-generated FileCheck-captured variable refs 2017-05-10 14:40:04 +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 [InstCombine] use m_APInt to allow ashr folds for vectors with splat constants 2017-01-21 17:59:59 +00:00
shift.ll [ValueTracking] Correct early out in computeKnownBitsFromOperator to work with non power of 2 bit widths 2017-06-14 17:04:59 +00:00
shufflevec-bitcast.ll InstCombine: fix extraction when performing vector/array punning 2017-02-17 07:36:03 +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 [InstCombine] use m_APInt to allow ashr folds for vectors with splat constants 2017-01-15 16:38:19 +00:00
simplify-demanded-bits-pointer.ll
simplify-libcalls.ll [TLI] isdigit / isascii / toascii param type should match return type (PR30484) 2016-09-23 18:44:09 +00:00
sincospi.ll
sink-into-catchswitch.ll [InstCombine] Don't sink an instr after a catchswitch 2016-04-01 17:28:17 +00:00
sink-zext.ll [InstCombine] Add a test for r290733 2017-01-04 02:21:37 +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] auto-generate better checks; NFC 2017-03-21 14:04:44 +00:00
smax-icmp.ll [InstCombine] add folds for icmp (smax X, Y), X 2016-12-19 16:28:53 +00:00
smin-icmp.ll [InstCombine] add folds for icmp (smin X, Y), X 2016-12-15 19:13:37 +00:00
sprintf-1.ll Revert "[SimplifyLibCalls] sprintf doesn't copy null bytes" 2016-04-26 21:04:47 +00:00
sqrt-nofast.ll
sqrt.ll
srem-simplify-bug.ll
srem1.ll
stack-overalign.ll
stacksaverestore.ll
statepoint.ll
store.ll
stpcpy-1.ll
stpcpy-2.ll
stpcpy_chk-1.ll Let llvm.objectsize be conservative with null pointers 2017-03-21 20:08:59 +00:00
stpcpy_chk-2.ll
strcat-1.ll
strcat-2.ll
strcat-3.ll
strchr-1.ll
strchr-2.ll
strcmp-1.ll
strcmp-2.ll
strcpy-1.ll
strcpy-2.ll
strcpy_chk-1.ll Let llvm.objectsize be conservative with null pointers 2017-03-21 20:08:59 +00:00
strcpy_chk-2.ll
strcpy_chk-64.ll
strcspn-1.ll
strcspn-2.ll
strlen-1.ll strlen-1.ll: Fix test 2017-05-03 23:32:51 +00:00
strlen-2.ll
strncat-1.ll
strncat-2.ll
strncat-3.ll
strncmp-1.ll
strncmp-2.ll
strncpy-1.ll
strncpy-2.ll
strncpy_chk-1.ll
strncpy_chk-2.ll
strpbrk-1.ll
strpbrk-2.ll
strrchr-1.ll
strrchr-2.ll
strspn-1.ll
strstr-1.ll
strstr-2.ll
strto-1.ll
struct-assign-tbaa.ll
sub-xor.ll Replace hardcoded intrinsic list with speculatable attribute. 2017-05-03 02:26:10 +00:00
sub.ll [InstCombine] Support folding a subtract with a constant LHS into a phi node 2017-04-14 19:20:12 +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
tan-nofastmath.ll
tan.ll
tbaa-store-to-load.ll [Verifier] Add verification for TBAA metadata 2016-12-11 20:07:15 +00:00
toascii-1.ll
token.ll
trunc.ll [InstCombine] fix auto-generated FileCheck-captured variable refs 2017-05-10 14:40:04 +00:00
type_pun.ll Update tests for the patch. 2017-04-14 17:47:07 +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
umax-icmp.ll [InstCombine] add folds for icmp (umin|umax X, Y), X 2016-12-19 17:32:37 +00:00
umin-icmp.ll [InstCombine] add folds for icmp (umin|umax X, Y), X 2016-12-19 17:32:37 +00:00
unordered-fcmp-select.ll
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 [InstSimplify] Optimize away urems in the presence of range metadata 2017-01-06 21:23:51 +00:00
vararg.ll Add address space mangling to lifetime intrinsics 2017-04-10 20:18:21 +00:00
vec_demanded_elts.ll InstCombine: Move tests that use target intrinsics into subdirectories 2017-05-13 05:39:46 +00:00
vec_extract_2elts.ll
vec_extract_elt.ll
vec_extract_var_elt.ll
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] fix operand-complexity-based canonicalization (PR28296) 2017-02-03 21:43:34 +00:00
vec_shuffle.ll [InstCombine] regenerate checks; NFC 2016-11-09 22:21:58 +00:00
vector-casts.ll [InstCombine] allow ashr/lshr demanded bits folds with splat constants 2017-04-20 20:59:02 +00:00
vector-mul.ll
vector-type.ll
vector-urem.ll [InstSimplify] vector div/rem with any zero element in divisor is undef 2017-03-09 16:20:52 +00:00
vector_gep1.ll
vector_gep2.ll
vector_insertelt_shuffle.ll [InstCombine] canonicalize insertelement of scalar constant ahead of insertelement of variable 2017-03-22 17:10:44 +00:00
volatile_store.ll [InstCombine] regenerate checks 2016-04-05 17:24:54 +00:00
wcslen-1.ll SimplifyLibCalls: Optimize wcslen 2017-05-19 22:37:09 +00:00
wcslen-2.ll SimplifyLibCalls: Optimize wcslen 2017-05-19 22:37:09 +00:00
wcslen-3.ll SimplifyLibCalls: Optimize wcslen 2017-05-19 22:37:09 +00:00
weak-symbols.ll
win-math.ll SimplifyLibCalls: Replace more unary libcalls with intrinsics 2017-01-23 23:55:08 +00:00
xor-undef.ll
xor.ll [InstCombine] revert r300977 and r301021 2017-04-21 20:29:17 +00:00
xor2.ll [InstCombine] Cleanup some duplicated one use checks 2017-06-19 16:23:49 +00:00
zero-point-zero-add.ll SimplifyLibCalls: Replace fabs libcalls with intrinsics 2017-01-17 00:10:40 +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 [ValueTracking] Out of range shifts might be undef 2017-03-14 10:13:17 +00:00
zext-phi.ll [InstCombine] treat i1 as a special type in shouldChangeType() 2017-02-03 23:13:11 +00:00
zext.ll [InstCombine] revert r300977 and r301021 2017-04-21 20:29:17 +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.