llvm-project/llvm/test/Transforms/InstCombine
David Bolvansky 937720e75b [InstCombine] Simplify ctpop with bitreverse/bswap
Summary: Fixes PR41337

Reviewers: spatel

Reviewed By: spatel

Subscribers: llvm-commits

Tags: #llvm

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

llvm-svn: 357564
2019-04-03 08:08:44 +00:00
..
AArch64 [InstCombine, ARM, AArch64] Convert table lookup to shuffle vector 2018-05-30 14:38:50 +00:00
AMDGPU InstCombineSimplifyDemanded: Allow v3 results for AMDGCN buffer and image intrinsics 2019-03-22 15:53:50 +00:00
ARM [InstCombine, ARM] Convert vld1 to llvm load 2018-05-31 12:19:18 +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] canonicalize select shuffles by commuting 2019-03-31 15:01:30 +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
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 [InstCombine] Enable more reassociations using FMF 'reassoc' + 'nsz' 2018-05-24 20:16:43 +00:00
2006-11-10-ashr-miscompile.ll
2006-12-01-BadFPVectorXform.ll
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-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
2007-03-25-BadShiftMask.ll
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 [PPC] Remove Darwin support from POWER backend. 2018-08-28 01:18:29 +00:00
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 Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1) 2018-01-19 17:13:12 +00:00
2007-10-12-Crash.ll
2007-10-28-stacksave.ll
2007-10-31-RangeCrash.ll [PPC] Remove Darwin support from POWER backend. 2018-08-28 01:18:29 +00:00
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 [InstCombine] update tests to use FileCheck; NFC 2019-03-26 15:58:33 +00:00
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-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
2008-07-08-SubAnd.ll
2008-07-08-VolatileLoadMerge.ll
2008-07-09-SubAndError.ll
2008-07-10-CastSextBool.ll
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-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 alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1) 2018-01-19 17:13:12 +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 Revert commit rL323951 2018-02-01 13:05:25 +00:00
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 [InstCombine] auto-generate complete test checks; NFC 2017-11-28 19:07:28 +00:00
2011-06-13-nsw-alloca.ll
2011-09-03-Trampoline.ll [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00
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
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 [ValueTracking] More accurate unsigned add overflow detection 2019-02-28 08:11:20 +00:00
CPP_min_max.ll
ExtractCast.ll
IntPtrCast.ll
JavaCompare.ll
LandingPadClauses.ll
OverlappingInsertvalues.ll
PR30597.ll
PR37526.ll [InstCombine] Fix PR37526: MinMax patterns produce an infinite loop. 2018-05-21 17:46:34 +00:00
README.txt
abs-1.ll [InstCombine] canonicalize abs pattern 2018-07-27 01:49:51 +00:00
abs_abs.ll [InstCombine] canonicalize abs pattern 2018-07-27 01:49:51 +00:00
add-sitofp.ll Fix for PR32740 - Invalid floating type, unreachable between r300969 and r301029 2017-04-22 07:24:52 +00:00
add.ll Add extra ops in add to sub transform test in order to enforce proper operand ordering. NFC 2019-03-03 15:11:13 +00:00
add2.ll [InstCombine][NFC] add2.ll: add a few commutative checks. 2018-04-26 20:07:17 +00:00
add3.ll
add4.ll [InstCombine] Simplify Add with remainder expressions as operands. 2018-04-26 20:52:28 +00:00
addnegneg.ll
addrspacecast.ll Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1) 2018-01-19 17:13:12 +00:00
adjust-for-minmax.ll
alias-recursion.ll
align-2d-gep.ll
align-addr.ll Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1) 2018-01-19 17:13:12 +00:00
align-attr.ll
align-external.ll
all-bits-shift.ll
alloca-big.ll [InstCombine] Limit simplifyAllocaArraySize constant folding to values that fit into a uint64_t 2018-08-13 16:50:20 +00:00
alloca-cast-debuginfo.ll [ValueTracking] Look through casts when determining non-nullness 2019-01-26 23:40:35 +00:00
alloca.ll Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1) 2018-01-19 17:13:12 +00:00
allocsize-32.ll
allocsize.ll
and-compare.ll
and-fcmp.ll [InstCombine] fold logic-of-nan-fcmps (PR41069) 2019-03-19 16:39:17 +00:00
and-narrow.ll [InstCombine] Allow common type conversions to i8/i16/i32 2018-02-03 16:51:03 +00:00
and-or-and.ll
and-or-icmps.ll [InstCombine] return when SimplifyAssociativeOrCommutative makes a change 2018-07-13 01:18:07 +00:00
and-or-not.ll Revert rL333106 / D46814: [InstCombine] Fold unfolded masked merge pattern with variable mask! 2018-05-31 06:00:36 +00:00
and-or.ll [InstCombine] allow mask hoisting transform for vector types 2017-07-31 21:01:53 +00:00
and-xor-merge.ll
and-xor-or.ll [InstCombine] simplify code for A & (A ^ B) --> A & ~B 2018-07-31 13:00:03 +00:00
and.ll [InstCombine] fix demanded-bits propagation for zext/trunc 2018-01-17 14:39:28 +00:00
and2.ll [ValueTracking] Use computeConstantRange() for unsigned add/sub overflow 2019-03-19 17:53:56 +00:00
apint-add.ll
apint-and-compare.ll
apint-and-or-and.ll
apint-and-xor-merge.ll
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 [InstCombine] Improve mul(x, pow2) -> shl combine for vector constants 2018-02-08 14:10:01 +00:00
apint-mul2.ll [InstCombine] Improve mul(x, pow2) -> shl combine for vector constants 2018-02-08 14:10:01 +00:00
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] move tests for select with bit-test of condition; NFC 2018-04-24 21:06:06 +00:00
apint-shift-simplify.ll
apint-shift.ll [InstCombine] canonicalize add/sub with bool 2019-02-24 16:57:45 +00:00
apint-shl-trunc.ll [InstCombine] reverse 'trunc X to <N x i1>' canonicalization; 2nd try 2018-10-10 20:47:46 +00:00
apint-sub.ll [InstCombine] put tests of mul with neg operand(s) together; NFC 2018-02-13 23:02:12 +00:00
apint-xor1.ll
apint-xor2.ll
assoc-cast-assoc.ll
assume-loop-align.ll
assume-redundant.ll
assume.ll [InstCombine] remove stale FIXME comment from test; NFC 2019-03-03 19:08:54 +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 llvm: Add support for "-fno-delete-null-pointer-checks" 2018-07-09 22:27:23 +00:00
atomicrmw.ll [InstCombine] Extend saturating idempotent atomicrmw transform to FP 2019-03-01 19:50:36 +00:00
badmalloc.ll
binop-cast.ll
bit-checks.ll [InstCombine][InstSimplify] Teach decomposeBitTestICmp to look through truncate instructions 2017-09-01 21:27:34 +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] Preserve access-group metadata. 2018-12-20 17:11:02 +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
bitreverse-hang.ll Remove irrelevant references to legacy git repositories from 2019-01-15 16:18:52 +00:00
bitreverse-known-bits.ll
bittest.ll
branch.ll [InstCombine] Fold branches with irrelevant conditions to a constant. 2017-08-23 09:14:37 +00:00
broadcast.ll [InstCombine] Fold insert sequence if first ins has multiple users. 2017-08-30 10:54:21 +00:00
bswap-fold.ll Move tests associated with transforms moved in r321467 2017-12-30 03:13:00 +00:00
bswap-known-bits.ll
bswap.ll [InstCombine] Adjusting bswap pattern matching to hold for And/Shift mixed case 2018-05-01 12:25:46 +00:00
builtin-dynamic-object-size.ll Add a 'dynamic' parameter to the objectsize intrinsic 2019-01-30 20:34:35 +00:00
builtin-object-size-offset.ll
builtin-object-size-ptr.ll
cabs-array.ll [SimplifyLibCalls] Inline calls to cabs when it's safe to do so 2017-12-16 01:26:25 +00:00
cabs-discrete.ll [SimplifyLibCalls] Inline calls to cabs when it's safe to do so 2017-12-16 01:26:25 +00:00
call-callconv.ll [InstCombine] use nsw negation for abs libcalls 2018-05-22 23:29:40 +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] Widen guards with conditions between 2018-05-09 22:56:32 +00:00
call-intrinsics.ll Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1) 2018-01-19 17:13:12 +00:00
call.ll [InstCombine] Add test to remove VarArg casts (NFC) 2018-01-03 13:35:43 +00:00
call2.ll
call_nonnull_arg.ll
callsite_nonnull_args_through_casts.ll [ValueTracking] Look through casts when determining non-nullness 2019-01-26 23:40:35 +00:00
canonicalize-ashr-shl-to-masking.ll [InstCombine] Fold (x >> y) << y -> x & (-1 << y) 2018-06-10 20:10:13 +00:00
canonicalize-constant-low-bit-mask-and-icmp-eq-to-icmp-ule.ll [NFC][InstCombine] Add forgotten variable tests for foldICmpWithLowBitMaskedVal() 2018-07-14 12:19:56 +00:00
canonicalize-constant-low-bit-mask-and-icmp-ne-to-icmp-ugt.ll [NFC][InstCombine] Add forgotten variable tests for foldICmpWithLowBitMaskedVal() 2018-07-14 12:19:56 +00:00
canonicalize-constant-low-bit-mask-and-icmp-sge-to-icmp-sle.ll [InstCombine] foldICmpWithLowBitMaskedVal(): don't miscompile -1 vector elts 2018-12-06 08:14:24 +00:00
canonicalize-constant-low-bit-mask-and-icmp-sgt-to-icmp-sgt.ll [InstCombine] Fold x s> x & (-1 >> y) to x s> (-1 >> y) 2018-07-14 20:08:16 +00:00
canonicalize-constant-low-bit-mask-and-icmp-sle-to-icmp-sle.ll [InstCombine] Fold x s<= x & (-1 >> y) to x s<= (-1 >> y) 2018-07-14 20:08:26 +00:00
canonicalize-constant-low-bit-mask-and-icmp-slt-to-icmp-sgt.ll [InstCombine] foldICmpWithLowBitMaskedVal(): don't miscompile -1 vector elts 2018-12-06 08:14:24 +00:00
canonicalize-constant-low-bit-mask-and-icmp-uge-to-icmp-ule.ll [InstCombine] Fold x & (-1 >> y) u>= x to x u<= (-1 >> y) 2018-07-14 12:20:06 +00:00
canonicalize-constant-low-bit-mask-and-icmp-ugt-to-icmp-ugt.ll [InstCombine] Fold x u> x & C to x u> C 2018-07-14 16:44:43 +00:00
canonicalize-constant-low-bit-mask-and-icmp-ule-to-icmp-ule.ll [InstCombine] Fold x u<= x & C to x u<= C 2018-07-14 16:44:54 +00:00
canonicalize-constant-low-bit-mask-and-icmp-ult-to-icmp-ugt.ll [InstCombine] Fold x & (-1 >> y) u< x to x u> (-1 >> y) 2018-07-14 12:20:16 +00:00
canonicalize-lack-of-signed-truncation-check.ll [InstCombine] Re-commit: Fold 'check for [no] signed truncation' pattern 2018-07-18 10:55:17 +00:00
canonicalize-low-bit-mask-and-icmp-eq-to-icmp-ule.ll [InstCombine] Fold x & (-1 >> y) == x to x u<= (-1 >> y) 2018-07-11 19:05:04 +00:00
canonicalize-low-bit-mask-and-icmp-ne-to-icmp-ugt.ll [InstCombine] Fold x & (-1 >> y) != x to x u> (-1 >> y) 2018-07-12 14:56:12 +00:00
canonicalize-low-bit-mask-v2-and-icmp-eq-to-icmp-ule.ll [InstCombine] foldICmpWithLowBitMaskedVal(): handle ~(-1 << y) mask 2018-09-19 13:35:27 +00:00
canonicalize-low-bit-mask-v2-and-icmp-ne-to-icmp-ugt.ll [InstCombine] foldICmpWithLowBitMaskedVal(): handle ~(-1 << y) mask 2018-09-19 13:35:27 +00:00
canonicalize-low-bit-mask-v3-and-icmp-eq-to-icmp-ule.ll [InstCombine] foldICmpWithLowBitMaskedVal(): handle uncanonical ((1 << y)+(-1)) mask 2018-09-19 13:35:40 +00:00
canonicalize-low-bit-mask-v3-and-icmp-ne-to-icmp-ugt.ll [InstCombine] foldICmpWithLowBitMaskedVal(): handle uncanonical ((1 << y)+(-1)) mask 2018-09-19 13:35:40 +00:00
canonicalize-low-bit-mask-v4-and-icmp-eq-to-icmp-ule.ll [InstCombine] foldICmpWithLowBitMaskedVal(): handle uncanonical ((-1 << y) >> y) mask 2018-09-19 13:35:46 +00:00
canonicalize-low-bit-mask-v4-and-icmp-ne-to-icmp-ugt.ll [InstCombine] foldICmpWithLowBitMaskedVal(): handle uncanonical ((-1 << y) >> y) mask 2018-09-19 13:35:46 +00:00
canonicalize-lshr-shl-to-masking.ll [InstCombine] Fold (x >> y) << y -> x & (-1 << y) 2018-06-10 20:10:13 +00:00
canonicalize-shl-lshr-to-masking.ll [InstCombine] Recommit: Fold (x << y) >> y -> x & (-1 >> y) 2018-06-15 09:56:52 +00:00
canonicalize-signed-truncation-check.ll [InstCombine] Re-commit: Fold 'check for [no] signed truncation' pattern 2018-07-18 10:55:17 +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 Fix some misc. -enable-var-scope violations 2017-11-13 01:47:52 +00:00
cast-call-combine.ll
cast-callee-deopt-bundles.ll
cast-int-fcmp-eq-0.ll [InstCombine] regenerate test checks; NFC 2019-02-20 01:24:59 +00:00
cast-int-icmp-eq-0.ll [InstCombine] Fix crashing from (icmp (bitcast ([su]itofp X)), Y) 2019-02-07 21:12:01 +00:00
cast-mul-select.ll [Local] replaceAllDbgUsesWith: Update debug values before RAUW 2018-07-06 17:32:39 +00:00
cast-select.ll [InstCombine] don't change the size of a select if it would mismatch its condition operands' sizes 2018-05-31 00:16:58 +00:00
cast-set-preserve-signed-dbg-val.ll [DebugInfo] Introduce DW_OP_LLVM_convert 2019-03-19 13:16:28 +00:00
cast-set.ll
cast-unsigned-icmp-eqcmp-0.ll [PatternMatch] allow undef elements when matching a vector zero 2018-04-22 17:07:44 +00:00
cast.ll [InstCombine] don't widen an arbitrary sequence of vector ops (PR40032) 2018-12-17 20:27:43 +00:00
cast_phi.ll Extra processing for BitCast + PHI in InstCombine 2019-02-09 01:44:28 +00:00
cast_ptr.ll
ceil.ll
clamp-to-minmax.ll [InstCombine] Canonicalize clamp of float types to minmax in fast mode. 2017-08-04 12:22:17 +00:00
cmp-intrinsic.ll [InstCombine] Simplify cttz/ctlz + icmp ugt/ult 2019-01-19 09:56:01 +00:00
compare-3way.ll [InstCombine] Recognize and simplify three way comparison idioms 2017-06-23 13:41:45 +00:00
compare-alloca.ll
compare-signs.ll [InstCombine] add folds for xor-of-icmp signbit tests (PR36682) 2018-03-22 14:08:16 +00:00
compare-udiv.ll
compare-unescaped.ll
consecutive-fences.ll InstCombine: ignore debug instructions during fence combine 2018-06-06 12:46:02 +00:00
constant-expr-datalayout.ll
constant-fold-address-space-pointer.ll ConstantFold: Don't fold global address vs. null for addrspace != 0 2018-06-26 18:55:43 +00:00
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 Add strictfp attribute to prevent unwanted optimizations of libm calls 2017-08-14 21:15:13 +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 misc. -enable-var-scope violations 2017-11-13 01:47:52 +00:00
copysign.ll
cos-1.ll [InstCombine] add reflection fold for tan(-x) 2018-08-16 22:46:20 +00:00
cos-2.ll
cos-sin-intrinsic.ll [InstCombine] canonicalize fneg with llvm.sin 2018-08-29 18:27:49 +00:00
crash.ll
ctlz-cttz-bitreverse.ll [InstCombine] Simplify ctlz/cttz with bitreverse 2019-04-02 20:13:28 +00:00
ctpop-bswap-bitreverse.ll [InstCombine] Simplify ctpop with bitreverse/bswap 2019-04-03 08:08:44 +00:00
ctpop.ll Fix some misc. -enable-var-scope violations 2017-11-13 01:47:52 +00:00
dce-iterate.ll
deadcode.ll
debug-line.ll
debuginfo-dce.ll [DebugInfo] Don't salvage load operations (PR40628). 2019-02-12 10:54:30 +00:00
debuginfo-dce2.ll [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00
debuginfo-sink.ll [DebugInfo][InstCombine] Prefer to salvage debuginfo over sinking it 2019-02-13 10:54:53 +00:00
debuginfo-skip.ll [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00
debuginfo-variables.ll [InstCombine] Preserve debug value when simplifying cast-of-select 2018-07-17 18:08:36 +00:00
debuginfo.ll Re-apply "[DebugInfo] Check size of variable in ConvertDebugDeclareToDebugValue" 2018-06-15 13:48:55 +00:00
debuginfo_add.ll [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00
default-alignment.ll
demand_shrink_nsw.ll [ValueTracking] More accurate unsigned sub overflow detection 2019-02-28 18:04:20 +00:00
demorgan-sink-not-into-xor.ll [InstCombine] De Morgan: sink 'not' into 'xor' (PR38446) 2018-08-08 13:31:19 +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] (X << Y) / X -> 1 << Y 2018-01-21 16:14:51 +00:00
div.ll [InstCombine] fold udiv with common factor from muls with nuw 2018-07-26 19:22:41 +00:00
double-float-shrink-1.ll [TargetLibraryInfo] Update run time support for Windows 2019-02-11 22:12:01 +00:00
double-float-shrink-2.ll [TargetLibraryInfo] Update run time support for Windows 2019-02-11 19:02:28 +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-memintrins.ll [InstCombine]Avoid introduction of unaligned mem access 2019-01-16 04:36:26 +00:00
enforce-known-alignment.ll
err-rep-cold.ll Fix some misc. -enable-var-scope violations 2017-11-13 01:47:52 +00:00
exact.ll
exp2-1.ll
exp2-2.ll
extractelement.ll [InstCombine] allow bitcast to/from FP for vector insert/extract transform 2018-10-04 16:25:05 +00:00
extractinsert-tbaa.ll [InstCombine] Retain TBAA when narrowing memory accesses 2017-06-28 23:36:40 +00:00
extractvalue.ll
fabs-libcall.ll [InstCombine] regenerate test checks; NFC 2017-11-16 16:38:42 +00:00
fabs.ll [PatternMatch] allow undef elements when matching vector FP +0.0 2018-03-25 21:16:33 +00:00
fadd-fsub-factor.ll [InstCombine] fix/enhance fadd/fsub factorization 2018-08-12 15:48:26 +00:00
fadd.ll [InstCombine] simplify fneg+fadd folds; NFC 2018-04-16 14:13:57 +00:00
fast-math.ll [InstCombine] move/add tests for fadd/fsub factorization; NFC 2018-08-12 15:06:15 +00:00
fcmp-select.ll [InstCombine] add/adjust tests for fcmp+select substitution; NFC 2018-11-05 18:09:10 +00:00
fcmp-special.ll [InstCombine] canonicalize -0.0 to +0.0 in fcmp 2018-11-05 17:26:42 +00:00
fcmp.ll [InstCombine] propagate FMF for fcmp+fabs folds 2018-11-07 16:15:01 +00:00
fdiv-cos-sin.ll [InstCombine] Don't transform sin/cos -> tanl if for half types 2018-09-19 12:01:38 +00:00
fdiv-sin-cos.ll [InstCombine] allow sin/cos transforms with 'reassoc' 2018-02-15 15:07:12 +00:00
fdiv.ll [PatternMatch] define m_FNeg using m_FSub 2018-04-05 15:36:55 +00:00
ffs-1.ll [InstCombine] narrow truncated add/sub/mul with constant 2017-08-04 22:30:34 +00:00
float-shrink-compare.ll [InstCombine] regenerate test checks; NFC 2017-11-16 16:59:49 +00:00
fls.ll [InstCombine] narrow truncated add/sub/mul with constant 2017-08-04 22:30:34 +00:00
fma.ll [PatternMatch] define m_FNeg using m_FSub 2018-04-05 15:36:55 +00:00
fmul-exp.ll [InstCombine] Missed optimization in math expression: simplify calls exp functions 2019-01-31 06:28:10 +00:00
fmul-exp2.ll [InstCombine] Missed optimization in math expression: simplify calls exp functions 2019-01-31 06:28:10 +00:00
fmul-pow.ll Commit tests for changes in revision D41608 2019-02-04 10:32:07 +00:00
fmul-sqrt.ll [InstCombine] add nnan requirement for sqrt(x) * sqrt(y) -> sqrt(x*y) 2018-03-18 14:32:54 +00:00
fmul.ll [PatternMatch] define m_FNeg using m_FSub 2018-04-05 15:36:55 +00:00
fneg.ll [InstCombine] fold fneg into constant operand of fmul/fdiv 2018-08-08 14:29:08 +00:00
fold-bin-operand.ll
fold-calls.ll
fold-fops-into-selects.ll
fold-phi-load-metadata.ll
fold-phi.ll
fold-sqrt-sqrtf.ll
fold-vector-select.ll
fold-vector-zero.ll
fp-ret-bitcast.ll
fpcast.ll [FPEnv] Last BinaryOperator::isFNeg(...) to m_FNeg(...) changes 2018-10-25 18:09:33 +00:00
fpextend.ll [InstCombine] Add constant vector support to getMinimumFPType for visitFPTrunc. 2018-03-05 18:04:12 +00:00
fpextend_x86.ll
fprintf-1.ll
fputs-1.ll [SimplifyLibCalls] Fix comments about fputs, memchr, and s[n]printf. NFC 2019-03-12 10:31:52 +00:00
fputs-opt-size.ll
fsh.ll [InstCombine] allow general vector constants for funnel shift to shift transforms 2019-03-18 14:27:51 +00:00
fsub.ll [InstCombine] fold fneg into constant operand of fmul/fdiv 2018-08-08 14:29:08 +00:00
fwrite-1.ll
gc.relocate.ll
gep-addrspace.ll Fix InstCombine address space assert 2018-07-31 15:53:03 +00:00
gep-combine-loop-invariant.ll [InstCombine] Properly change GEP type when reassociating loop invariant GEP chains 2018-04-05 18:51:45 +00:00
gep-custom-dl.ll Adding a width of the GEP index to the Data Layout. 2018-02-14 06:58:08 +00:00
gep-sext.ll
gep-vector.ll [InstCombine] Fix incongruous GEP type addrspace 2018-10-08 08:40:45 +00:00
gepgep.ll
gepphigep.ll
getelementptr-folding.ll
getelementptr.ll Fix some misc. -enable-var-scope violations 2017-11-13 01:47:52 +00:00
hoist_instr.ll
icmp-add.ll [InstCombine] add folds for unsigned-overflow compares 2018-09-11 22:40:20 +00:00
icmp-bc-vec.ll [InstCombine] Fold compare of int constant against a splatted vector of ints 2018-04-03 17:26:20 +00:00
icmp-custom-dl.ll Adding a width of the GEP index to the Data Layout. 2018-02-14 06:58:08 +00:00
icmp-div-constant.ll
icmp-dom.ll [InstCombine] Add missing test for icmp transformation (NFC) 2019-03-19 15:43:56 +00:00
icmp-logical.ll [InstCombine] icmp-logical.ll: restore the original intention of the test. 2018-07-12 14:56:17 +00:00
icmp-mul-zext.ll [InstCombine] Fold x & (-1 >> y) == x to x u<= (-1 >> y) 2018-07-11 19:05:04 +00:00
icmp-mul.ll [InstCombine] Add new tests in preparation for a combine of icmp (mul nsw/nuw X, C2), C 2018-09-27 10:08:38 +00:00
icmp-range.ll
icmp-shl-nsw.ll Revert "[InstCombine] Delay foldICmpUsingKnownBits until simple transforms are done" 2018-07-06 04:04:13 +00:00
icmp-shl-nuw.ll
icmp-shr-lt-gt.ll Revert "[InstCombine] Delay foldICmpUsingKnownBits until simple transforms are done" 2018-07-06 04:04:13 +00:00
icmp-shr.ll revert r314984: revert r314698 - [InstCombine] remove one-use restriction for icmp (shr exact X, C1), C2 --> icmp X, (C2<<C1) 2017-10-15 15:39:15 +00:00
icmp-sub.ll [NFC][InstCombine] Add tests for combining icmp of no-wrap sub w/ constant. 2019-03-31 08:58:50 +00:00
icmp-uge-of-add-of-shl-one-by-bits-to-allones-and-val-to-icmp-eq-of-lshr-val-by-bits-and-0.ll [InstCombine] Inefficient pattern for high-bits checking 3 (PR38708) 2018-09-15 12:04:13 +00:00
icmp-uge-of-not-of-shl-allones-by-bits-and-val-to-icmp-eq-of-lshr-val-by-bits-and-0.ll [InstCombine] Inefficient pattern for high-bits checking 2 (PR38708) 2018-09-13 20:33:12 +00:00
icmp-ugt-of-shl-1-by-bits-and-val-to-icmp-eq-of-lshr-val-by-bits-and-0.ll [NFC][InstCombine] Test what happens if 'unefficient high bit check' pattern is on both sides. 2018-09-13 20:33:02 +00:00
icmp-ule-of-shl-1-by-bits-and-val-to-icmp-ne-of-lshr-val-by-bits-and-0.ll [NFC][InstCombine] Test what happens if 'unefficient high bit check' pattern is on both sides. 2018-09-13 20:33:02 +00:00
icmp-ult-of-add-of-shl-one-by-bits-to-allones-and-val-to-icmp-ne-of-lshr-val-by-bits-and-0.ll [InstCombine] Inefficient pattern for high-bits checking 3 (PR38708) 2018-09-15 12:04:13 +00:00
icmp-ult-of-not-of-shl-allones-by-bits-and-val-to-icmp-ne-of-lshr-val-by-bits-and-0.ll [InstCombine] Inefficient pattern for high-bits checking 2 (PR38708) 2018-09-13 20:33:12 +00:00
icmp-vec.ll [InstCombine] move vector compare before same-shuffled ops 2018-08-16 12:52:17 +00:00
icmp-xor-signbit.ll [InstCombine] reverse bitcast + bitwise-logic canonicalization (PR33138) 2017-06-22 15:46:54 +00:00
icmp.ll [InstSimplify] SimplifyICmpInst - icmp eq/ne %X, undef -> undef 2019-03-19 14:08:23 +00:00
icmp_sdiv_with_and_without_range.ll Revert "[InstCombine] Delay foldICmpUsingKnownBits until simple transforms are done" 2018-07-06 04:04:13 +00:00
idioms.ll
indexed-gep-compares.ll
inline-intrinsic-assert.ll
inselt-binop.ll [InstCombine] add tests for insertelement+binop; NFC 2018-08-20 16:49:08 +00:00
insert-const-shuf.ll
insert-extract-shuffle.ll [InstCombine] try to turn shuffle into insertelement 2018-10-30 15:26:39 +00:00
insert-val-extract-elem.ll
int_sideeffect.ll Add an @llvm.sideeffect intrinsic 2017-11-08 21:59:51 +00:00
intersect-accessgroup.ll Introduce llvm.loop.parallel_accesses and llvm.access.group metadata. 2018-12-20 04:58:07 +00:00
intptr1.ll Renable r314928 2017-10-10 05:07:54 +00:00
intptr2.ll Renable r314928 2017-10-10 05:07:54 +00:00
intptr3.ll Renable r314928 2017-10-10 05:07:54 +00:00
intptr4.ll Renable r314928 2017-10-10 05:07:54 +00:00
intptr5.ll Renable r314928 2017-10-10 05:07:54 +00:00
intptr6.ll Renable r314928 2017-10-10 05:07:54 +00:00
intptr7.ll Renable r314928 2017-10-10 05:07:54 +00:00
intrinsics.ll [InstCombine] Move with.overflow tests to separate file; NFC 2019-02-24 21:55:31 +00:00
invariant.group.ll Simplify recursive launder.invariant.group and strip 2018-07-12 23:55:20 +00:00
invariant.ll
invert-variable-mask-in-masked-merge-scalar.ll [InstCombine] Canonicalize variable mask in masked merge 2018-04-28 15:45:07 +00:00
invert-variable-mask-in-masked-merge-vector.ll [InstCombine] Canonicalize variable mask in masked merge 2018-04-28 15:45:07 +00:00
invoke.ll Add a 'dynamic' parameter to the objectsize intrinsic 2019-01-30 20:34:35 +00:00
isascii-1.ll
isdigit-1.ll
known-never-nan.ll [InstSimplify] use isKnownNeverNaN to fold more fcmp ord/uno 2018-08-21 14:45:13 +00:00
known_align.ll
lifetime-asan.ll Hardware-assisted AddressSanitizer (llvm part). 2017-12-09 00:21:41 +00:00
lifetime-no-null-opt.ll llvm: Add support for "-fno-delete-null-pointer-checks" 2018-07-09 22:27:23 +00:00
lifetime.ll [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00
load-bitcast-select.ll [InstCombine] PR35354: Convert store(bitcast, load bitcast (select (Cond, &V1, &V2)) --> store (, load (select(Cond, load &V1, load &V2))) 2017-12-08 15:32:10 +00:00
load-bitcast32.ll
load-bitcast64.ll
load-cmp.ll
load-combine-metadata-2.ll
load-combine-metadata-3.ll
load-combine-metadata-4.ll
load-combine-metadata-dominance.ll [Local] Make DoesKMove required for combineMetadata. 2018-08-24 11:40:04 +00:00
load-combine-metadata.ll [Local] Keep K's range if K does not move when combining metadata. 2018-10-27 16:53:45 +00:00
load-select.ll
load.ll [InstCombine] auto-generate full checks; NFC 2018-11-10 18:51:10 +00:00
load3.ll
load_combine_aa.ll
loadstore-alignment.ll
loadstore-metadata.ll Introduce llvm.loop.parallel_accesses and llvm.access.group metadata. 2018-12-20 04:58:07 +00:00
log-pow-nofastmath.ll
log-pow.ll
logical-select.ll [InstCombine] canonicalize select shuffles by commuting 2019-03-31 15:01:30 +00:00
lower-dbg-declare.ll [DebugInfo] LowerDbgDeclare: Add derefs when handling CallInst users 2018-07-26 20:56:53 +00:00
lshr-phi.ll [InstCombine] update tests to use FileCheck; NFC 2019-03-26 15:58:33 +00:00
lshr.ll [InstCombine] narrow lshr with constant 2017-08-04 15:42:47 +00:00
malloc-free-delete.ll [InstCombine] Teach the move free before null test opti how to deal with noop casts 2018-10-30 20:51:04 +00:00
masked-merge-add.ll Revert rL333106 / D46814: [InstCombine] Fold unfolded masked merge pattern with variable mask! 2018-05-31 06:00:36 +00:00
masked-merge-and-of-ors.ll Revert rL333106 / D46814: [InstCombine] Fold unfolded masked merge pattern with variable mask! 2018-05-31 06:00:36 +00:00
masked-merge-or.ll Revert rL333106 / D46814: [InstCombine] Fold unfolded masked merge pattern with variable mask! 2018-05-31 06:00:36 +00:00
masked-merge-xor.ll Revert rL333106 / D46814: [InstCombine] Fold unfolded masked merge pattern with variable mask! 2018-05-31 06:00:36 +00:00
masked_intrinsics.ll [Tests] Add masked.gather tests for non-constant masks + speculation possibilities 2019-03-22 16:39:04 +00:00
max-of-nots.ll [InstCombine] Tests for ~A - Min/Max(~A, O) -> Max/Min(A, ~O) - A. NFC 2018-10-02 09:06:49 +00:00
max_known_bits.ll [InstCombine] remove stall comment from test file; NFC 2018-09-14 18:02:17 +00:00
maximum.ll [InstCombine] Combine nested min/max intrinsics with constants 2018-10-31 17:50:52 +00:00
maxnum.ll [InstCombine] Combine nested min/max intrinsics with constants 2018-10-31 17:50:52 +00:00
mem-gep-zidx.ll
mem-par-metadata-memcpy.ll Introduce llvm.loop.parallel_accesses and llvm.access.group metadata. 2018-12-20 04:58:07 +00:00
memchr.ll [SimplifyLibCalls] Fix memchr expansion for constant strings. 2019-01-09 23:39:26 +00:00
memcmp-1.ll [SelectionDAG] Allow the user to specify a memeq function. 2019-03-08 09:07:45 +00:00
memcmp-2.ll
memcmp-constant-fold.ll [LibCallSimplifier] try harder to fold memcmp with constant arguments (2nd try) 2017-08-21 19:13:14 +00:00
memcpy-1.ll Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1) 2018-01-19 17:13:12 +00:00
memcpy-2.ll [InstCombine] regenerate test checks; NFC 2017-08-10 15:07:37 +00:00
memcpy-addrspace.ll llvm: Add support for "-fno-delete-null-pointer-checks" 2018-07-09 22:27:23 +00:00
memcpy-from-global.ll llvm: Add support for "-fno-delete-null-pointer-checks" 2018-07-09 22:27:23 +00:00
memcpy-to-load.ll Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1) 2018-01-19 17:13:12 +00:00
memcpy.ll Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1) 2018-01-19 17:13:12 +00:00
memcpy_chk-1.ll Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1) 2018-01-19 17:13:12 +00:00
memcpy_chk-2.ll
memmove-1.ll
memmove-2.ll
memmove.ll [InstCombine] Simplify MemTransferInst's source and dest alignments separately 2018-02-12 23:06:55 +00:00
memmove_chk-1.ll Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1) 2018-01-19 17:13:12 +00:00
memmove_chk-2.ll
memset-1.ll [InstCombine] add potential calloc tests and regenerate checks; NFC 2018-04-06 16:06:08 +00:00
memset-2.ll
memset.ll Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1) 2018-01-19 17:13:12 +00:00
memset2.ll Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1) 2018-01-19 17:13:12 +00:00
memset_chk-1.ll Add a 'dynamic' parameter to the objectsize intrinsic 2019-01-30 20:34:35 +00:00
memset_chk-2.ll
merge-icmp.ll
min-positive.ll [PatternMatch] allow undef elements when matching a vector zero 2018-04-22 17:07:44 +00:00
minimum.ll [InstCombine] Combine nested min/max intrinsics with constants 2018-10-31 17:50:52 +00:00
minmax-demandbits.ll [InstCombine] Demand bits of UMin 2018-10-11 11:28:27 +00:00
minmax-fold.ll [InstCombine] form uaddsat from add+umin (PR14613) 2019-03-26 17:50:08 +00:00
minmax-fp.ll [InstCombine] canonicalize -0.0 to +0.0 in fcmp 2018-11-05 17:26:42 +00:00
minnum.ll [InstCombine] Combine nested min/max intrinsics with constants 2018-10-31 17:50:52 +00:00
misc-2002.ll
mul-masked-bits.ll
mul.ll [InstCombine] Don't undo 0 - (X * Y) canonicalization when combining subs. 2019-01-15 11:18:21 +00:00
multi-size-address-space-pointer.ll
multi-use-or.ll
multiple-uses-load-bitcast-select.ll [InstCombine] Fix PR35618: Instcombine hangs on single minmax load bitcast. 2017-12-12 20:28:46 +00:00
musttail-thunk.ll [Debugify] Add debug intrinsics before terminating musttail calls 2018-06-04 03:33:01 +00:00
narrow-math.ll [InstCombine] Support (sub (sext x), (sext y)) --> (sext (sub x, y)) and (sub (zext x), (zext y)) --> (zext (sub x, y)) 2018-09-15 18:54:10 +00:00
narrow-switch.ll [InstCombine] do not shrink switch conditions to illegal types (PR29009) 2018-11-07 14:12:41 +00:00
narrow.ll [InstCombine] regenerate checks; NFC 2019-02-24 16:11:58 +00:00
no-negzero.ll
no_cgscc_assert.ll
no_sink_instruction.ll Add -instcombine-code-sinking option 2018-10-25 08:32:29 +00:00
non-integral-pointers.ll Fix invalid ptrtoint in InstCombine 2017-10-22 20:28:17 +00:00
nonnull-attribute.ll
not.ll [InstCombine] allow add+not --> sub for arbitrary vector constants. 2018-09-03 18:21:59 +00:00
nothrow.ll
nsw.ll [ValueTracking] peek through shuffles in ComputeNumSignBits (PR37549) 2018-10-26 21:05:14 +00:00
obfuscated_splat.ll
objsize-64.ll
objsize-address-space.ll
objsize-noverify.ll
objsize.ll Add a 'dynamic' parameter to the objectsize intrinsic 2019-01-30 20:34:35 +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 Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1) 2018-01-19 17:13:12 +00:00
operand-complexity.ll fix comment typo - NFC 2019-01-08 00:40:01 +00:00
or-fcmp.ll [InstCombine] fold logic-of-nan-fcmps (PR41069) 2019-03-19 16:39:17 +00:00
or-shifted-masks.ll Inserting several lit tests to reflect current behaviour 2017-12-14 12:00:04 +00:00
or-xor.ll [PatternMatch] Stabilize the matching order of commutative matchers 2018-04-27 21:23:20 +00:00
or.ll [NFC][InstCombine] Regenerate two tests that are affected by folding masked merge 2018-04-20 10:49:19 +00:00
osx-names.ll
out-of-bounds-indexes.ll Reintroduce r320049, r320014 and r319894. 2017-12-13 11:21:18 +00:00
overflow-mul.ll
overflow.ll [InstCombine] auto-generate full checks for icmp overflow tests; NFC 2018-12-04 15:41:34 +00:00
phi-load-metadata-2.ll
phi-load-metadata-3.ll
phi-load-metadata-dominance.ll [Local] Make DoesKMove required for combineMetadata. 2018-08-24 11:40:04 +00:00
phi-load-metadata.ll
phi-merge-gep.ll
phi-preserve-ir-flags.ll
phi-select-constant.ll [InstCombine] canonicalize select shuffles by commuting 2019-03-31 15:01:30 +00:00
phi-timeout.ll Remove unneeded -debug argument from new test 2018-02-03 17:33:50 +00:00
phi.ll
pow-1.ll [TargetLibraryInfo] Update run time support for Windows 2019-02-11 22:12:01 +00:00
pow-2.ll [InstCombine] regenerate checks; NFC 2018-08-14 15:21:13 +00:00
pow-3.ll [SLC] Expand simplification of pow() for vector types 2018-08-13 16:12:37 +00:00
pow-4.ll [SLC] Support expanding pow(x, n+0.5) to x * x * ... * sqrt(x) 2018-09-03 17:37:39 +00:00
pow-cbrt.ll [SLC] Test simplification of pow(x, 0.333...) to cbrt(x) (NFC) 2018-07-27 18:56:47 +00:00
pow-exp-nofastmath.ll [InstCombine] regenerate checks; NFC 2018-08-14 15:21:13 +00:00
pow-exp.ll [InstCombine] Expand the simplification of pow() with nested exp{,2}() 2018-08-29 17:59:48 +00:00
pow-sqrt.ll [NFC] Fix typo in test cases 2018-08-16 17:03:22 +00:00
pr2645-0.ll
pr2996.ll
pr12251.ll
pr12338.ll
pr17827.ll [InstCombine] Teach the code that pulls logical operators through constant shifts to handle vector splats too. 2017-08-05 20:00:42 +00:00
pr19420.ll
pr20079.ll
pr20678.ll
pr21199.ll
pr21210.ll
pr21651.ll
pr21891.ll
pr23751.ll
pr23809.ll
pr24354.ll
pr24605.ll
pr25342.ll
pr25745.ll
pr26992.ll
pr26993.ll
pr27236.ll [InstCombine] Canonicalize clamp of float types to minmax in fast mode. 2017-08-04 12:22:17 +00:00
pr27332.ll
pr27343.ll [InstCombine] Add PR27343 test cases 2018-10-14 20:14:33 +00:00
pr27703.ll
pr27996.ll
pr28143.ll
pr28725.ll Reintroduce r320049, r320014 and r319894. 2017-12-13 11:21:18 +00:00
pr30929.ll
pr31990_wrong_memcpy.ll Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1) 2018-01-19 17:13:12 +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
pr33689_same_bitwidth.ll Add original reproducer for r307754 / PR33689 2017-07-13 07:38:53 +00:00
pr34349.ll [InstCombine] Call hasNoSignedWrap instead of hasNoUnsignedWrap to get the NSW flag when handling Add in SimplifyDemandedUseBits. 2017-08-28 18:44:28 +00:00
pr34627.ll [ConstantFold] Return the correct type when folding a GEP with vector indices. 2017-09-15 20:53:05 +00:00
pr35515.ll [InstCombine] Fix SimplifyDemandedUseBits SHL handling (PR35515) 2017-12-09 23:42:56 +00:00
pr36362.ll [InstCombine] Don't fold select(C, Z, binop(select(C, X, Y), W)) -> select(C, Z, binop(Y, W)) if the binop is rem or div. 2018-02-14 18:08:33 +00:00
pr38677.ll [ValueTracking] Fix assert message and add test case for r340546 and PR38677. 2018-08-23 17:45:53 +00:00
pr38897.ll [InstCombine] Fold (min/max ~X, Y) -> ~(max/min X, ~Y) when Y is freely invertible 2018-09-22 05:53:27 +00:00
pr38915.ll [InstCombine] Fold (xor (min/max X, Y), -1) -> (max/min ~X, ~Y) when X and Y are freely invertible. 2018-09-13 18:52:58 +00:00
pr38984.ll [InstCombine] Handle vector compares in foldGEPIcmp(), take 2 2018-10-01 14:59:25 +00:00
pr39177.ll [InstCombine] Cleanup libfunc attribute inferring 2018-10-16 21:18:31 +00:00
pr39908.ll [InstCombine] Fix negative GEP offset evaluation for 32-bit pointers 2018-12-12 23:19:03 +00:00
pr41164.ll [InstCombine] Don't transform ((C1 OP zext(X)) & C2) -> zext((C1 OP X) & C2) if either zext or OP has another use. 2019-03-21 17:50:49 +00:00
prefetch-load.ll
preserve-sminmax.ll
preserved-analyses.ll
prevent-cmp-merge.ll
printf-1.ll [SLC] Add an alignment to CreateGlobalString 2018-09-06 08:42:17 +00:00
printf-2.ll
printf-3.ll
ptr-int-cast.ll
puts-1.ll
range-check.ll
readnone-maythrow.ll
realloc.ll [SimplifyLibcalls] Realloc(null, N) -> Malloc(N) 2018-04-18 14:21:31 +00:00
rem.ll [InstCombine] fold urem with sext bool divisor 2018-06-26 16:30:00 +00:00
rotate.ll [InstCombine] Fix matchRotate bug when one operand is a ConstantExpr shift 2019-02-11 19:26:27 +00:00
round.ll
sadd-with-overflow.ll [InstCombine] Add tests for ssubo X, C -> saddo X, -C; NFC 2019-03-26 18:05:43 +00:00
salvage-dbg-declare.ll [DebugInfo] Corrections for salvageDebugInfo 2018-07-03 11:29:00 +00:00
saturating-add-sub.ll [InstCombine] Use uadd.sat and usub.sat for canonicalization 2019-03-27 17:56:15 +00:00
scalarization.ll [InstCombine] add tests for extract of vector load; NFC 2018-12-18 22:51:06 +00:00
sdiv-1.ll
sdiv-2.ll
sdiv-guard.ll [InstCombine] Fix div handling 2018-06-04 02:52:36 +00:00
select-2.ll
select-binop-cmp.ll [InstCombine] canonicalize -0.0 to +0.0 in fcmp 2018-11-05 17:26:42 +00:00
select-bitext-bitwise-ops.ll [InstCombine] narrow select to match condition operands' size 2018-05-31 19:55:27 +00:00
select-bitext.ll [InstCombine] don't widen an arbitrary sequence of vector ops (PR40032) 2018-12-17 20:27:43 +00:00
select-cmp-br.ll [InstCombine] Fold branches with irrelevant conditions to a constant. 2017-08-23 09:14:37 +00:00
select-cmp-cttz-ctlz.ll [InstCombine] Relax cttz/ctlz with select on zero 2019-01-05 09:48:16 +00:00
select-cmpxchg.ll [InstCombine] Simplify selects that test cmpxchg instructions 2017-10-31 12:34:02 +00:00
select-crash-noverify.ll
select-crash.ll [InstCombine, NewGVN] remove FP undef from tests 2018-03-08 14:57:08 +00:00
select-extractelement.ll [InstCombine] remove extract-of-select vector transform (2nd try) 2017-09-25 20:30:53 +00:00
select-gep.ll [InstCombine] Do not fold scalar ops over select with vector condition. 2018-09-07 14:40:06 +00:00
select-icmp-and.ll [InstCombine] refine select-of-constants to bitwise ops 2018-05-03 21:58:44 +00:00
select-load-call.ll
select-obo-peo-ops.ll [InstCombine] narrow select to match condition operands' size 2018-05-31 19:55:27 +00:00
select-of-bittest.ll [PatternMatch] allow undef elements when matching a vector zero 2018-04-22 17:07:44 +00:00
select-pr39595.ll [InstCombine] Remove a couple of asserts based on incorrect assumptions 2018-11-14 17:55:07 +00:00
select-select.ll
select-with-bitwise-ops.ll [InstCombine] move tests for select with bit-test of condition; NFC 2018-04-24 21:06:06 +00:00
select.ll [InstCombine] canonicalize add/sub with bool 2019-02-24 16:57:45 +00:00
select_arithmetic.ll [InstCombine] auto-generate complete checks; NFC 2018-02-28 16:53:45 +00:00
select_meta.ll [InstCombine] use 'match' to handle vectors and simplify code 2018-10-23 15:05:12 +00:00
set-lowbits-mask-canonicalize.ll [InstSimplify] add nuw %x, -1 -> -1 fold. 2018-06-08 15:44:47 +00:00
set.ll [NFC][InstCombine] Regenerate set.ll test 2018-08-05 08:53:40 +00:00
setcc-strength-reduce.ll
sext.ll [ValueTracking] More accurate unsigned sub overflow detection 2019-02-28 18:04:20 +00:00
shift-add.ll
shift-shift.ll
shift-sra.ll [InstCombine] sink sext after ashr 2017-08-15 18:25:52 +00:00
shift.ll [InstSimplify] move tests for shifts; NFC 2018-04-21 16:58:00 +00:00
should-change-type.ll [InstCombine] Allow common type conversions to i8/i16/i32 2018-02-03 16:51:03 +00:00
shuffle-select-narrow.ll [InstCombine] enhance vector demanded elements to look at a vector select condition operand 2018-09-11 18:49:00 +00:00
shuffle_select.ll [InstCombine] canonicalize select shuffles by commuting 2019-03-31 15:01:30 +00:00
shufflevec-bitcast.ll
shufflevec-constant.ll
sign-test-and-or.ll
signed-comparison.ll
signed-truncation-check.ll [InstCombine] Re-land: Optimize redundant 'signed truncation check pattern'. 2018-08-13 21:54:37 +00:00
signext.ll [InstCombine] fix datalayout in test file 2018-01-24 21:36:45 +00:00
simplify-demanded-bits-pointer.ll
simplify-libcalls-erased.ll [InstCombine] Fix SimplifyLibCalls erasing an instruction while IC still had references to it. 2018-10-11 14:51:11 +00:00
simplify-libcalls.ll Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1) 2018-01-19 17:13:12 +00:00
sincospi.ll
sink-alloca.ll [InstCombine] Don't sink dynamic allocas 2019-01-17 20:46:53 +00:00
sink-into-catchswitch.ll [InstCombine] auto-generate complete checks; NFC 2018-12-18 22:09:15 +00:00
sink_instruction.ll
sitofp.ll
smax-icmp.ll
smin-icmp.ll
snprintf.ll [InstCombine] snprintf optimizations 2018-05-11 17:50:49 +00:00
sprintf-1.ll Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1) 2018-01-19 17:13:12 +00:00
sprintf-void.ll [Analysis] Validate the return type of s(n)printf like libcalls 2018-05-11 16:53:56 +00:00
sqrt-nofast.ll
sqrt.ll
srem-simplify-bug.ll
srem1.ll
ssub-with-overflow.ll [InstCombine] Add tests for ssubo X, C -> saddo X, -C; NFC 2019-03-26 18:05:43 +00:00
stack-overalign.ll Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1) 2018-01-19 17:13:12 +00:00
stacksave-debuginfo.ll [InstCombine] Skip dbg.value(s) when looking at stack{save,restore}. 2018-06-08 20:42:36 +00:00
stacksaverestore.ll
statepoint.ll
store-load-unaliased-gep.ll [PM][InstCombine] fixing omission of AliasAnalysis in new-pass-manager's version of InstCombine 2017-12-14 10:36:31 +00:00
store.ll [InstCombine] auto-generate full checks; NFC 2018-11-10 18:51:10 +00:00
storemerge-dbg.ll [InstCombine] Set debug loc on `mergeStoreIntoSuccessor` phi 2018-11-19 19:55:02 +00:00
stpcpy-1.ll
stpcpy-2.ll
stpcpy_chk-1.ll Add a 'dynamic' parameter to the objectsize intrinsic 2019-01-30 20:34:35 +00:00
stpcpy_chk-2.ll
str-int-2.ll [SimplifyLibcalls] Atoi, strtol replacements 2018-04-25 18:58:53 +00:00
str-int.ll [SimplifyLibcalls] Atoi, strtol replacements 2018-04-25 18:58:53 +00:00
strcat-1.ll
strcat-2.ll
strcat-3.ll
strchr-1.ll [SimplifyLibCalls] Fix memchr expansion for constant strings. 2019-01-09 23:39:26 +00:00
strchr-2.ll
strcmp-1.ll [SelectionDAG] Allow the user to specify a memeq function. 2019-03-08 09:07:45 +00:00
strcmp-2.ll
strcmp-memcmp.ll [InstCombine] Disable strcmp->memcmp transform for MSan. 2018-09-19 19:37:24 +00:00
strcpy-1.ll
strcpy-2.ll
strcpy_chk-1.ll Add a 'dynamic' parameter to the objectsize intrinsic 2019-01-30 20:34:35 +00:00
strcpy_chk-2.ll
strcpy_chk-64.ll llvm: Add support for "-fno-delete-null-pointer-checks" 2018-07-09 22:27:23 +00:00
strcspn-1.ll
strcspn-2.ll
strlen-1.ll [ValueTracking] More accurate unsigned sub overflow detection 2019-02-28 18:04:20 +00:00
strlen-2.ll
strncat-1.ll
strncat-2.ll
strncat-3.ll
strncmp-1.ll
strncmp-2.ll
strncmp-wrong-datalayout.ll [TargetLibraryInfo] Discard library functions with incorrectly sized integers 2017-12-18 10:31:58 +00:00
strncpy-1.ll
strncpy-2.ll
strncpy_chk-1.ll Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1) 2018-01-19 17:13:12 +00:00
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-new.ll [Transforms] Propagate new-format TBAA tags on simplification of memory-transfer intrinsics 2018-02-19 12:10:20 +00:00
struct-assign-tbaa.ll Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1) 2018-01-19 17:13:12 +00:00
sub-minmax.ll [InstCombine] Fold ~A - Min/Max(~A, O) -> Max/Min(A, ~O) - A 2018-10-02 09:48:34 +00:00
sub-not.ll [InstCombine] try to fold 'add+sub' to 'not+add' 2018-07-29 18:13:16 +00:00
sub-xor.ll [ValueTracking] More accurate unsigned sub overflow detection 2019-02-28 18:04:20 +00:00
sub.ll [ValueTracking] Use ConstantRange based overflow check for signed sub 2019-03-21 17:23:51 +00:00
switch-constant-expr.ll
switch-truncate-crash.ll
tan-nofastmath.ll
tan.ll
tbaa-store-to-load.ll
toascii-1.ll
token.ll
trunc-binop-ext.ll [InstCombine] include 'sub' in the list of narrow-able binops 2017-11-16 14:40:51 +00:00
trunc.ll [InstCombine] Consider more cases where SimplifyDemandedUseBits does not convert AShr to LShr. 2017-08-25 11:07:54 +00:00
type_pun.ll
uadd-with-overflow.ll [InstCombine] Fold add nuw + uadd.with.overflow 2019-03-20 18:00:27 +00:00
uaddo.ll [InstCombine] add test for icmp+add fold; NFC 2019-02-24 17:31:15 +00:00
udiv-simplify.ll [InstCombine] Teach SimplifyDemandedBits that udiv doesn't demand low dividend bits that are zero in the divisor 2018-05-09 22:27:34 +00:00
udiv_select_to_select_shift.ll [InstCombine] Add constant vector support for X udiv C, where C >= signbit 2018-02-09 10:43:59 +00:00
udivrem-change-width.ll [InstCombine] fix and enhance udiv/urem narrowing 2017-08-24 22:54:01 +00:00
umax-icmp.ll
umin-icmp.ll
unavailable-debug.ll [InstCombine] Mark debug values as unavailable after DCE. 2019-03-04 04:38:58 +00:00
unfold-masked-merge-with-const-mask-scalar.ll [InstCombine] Unfold masked merge with constant mask 2018-04-30 17:59:33 +00:00
unfold-masked-merge-with-const-mask-vector.ll [InstCombine] Unfold masked merge with constant mask 2018-04-30 17:59:33 +00:00
unlocked-stdio-mingw.ll [Analysis] Only use _unlocked stdio functions on linux 2018-05-17 08:16:08 +00:00
unlocked-stdio.ll [InstCombine] [NFC] Added more tests for unlocked IO transformation 2018-05-23 03:01:45 +00:00
unordered-fcmp-select.ll
unpack-fca.ll
unrecognized_three-way-comparison.ll [InstSimplify] fold select with implied condition 2018-11-29 18:44:39 +00:00
unsigned_saturated_sub.ll [InstCombine] Use uadd.sat and usub.sat for canonicalization 2019-03-27 17:56:15 +00:00
urem-simplify-bug.ll
vararg.ll
vec-binop-select.ll [InstCombine] eliminate commuted select-shuffles + binop (PR41304) 2019-04-01 13:36:40 +00:00
vec_demanded_elts.ll [InstCombine] canonicalize select shuffles by commuting 2019-03-31 15:01:30 +00:00
vec_extract_2elts.ll
vec_extract_var_elt.ll
vec_gep_scalar_arg.ll [InstCombine] Handle vector gep with scalar argument in evaluateInDifferentElementOrder 2019-04-01 14:10:10 +00:00
vec_insertelt.ll
vec_phi_extract.ll [InstCombine] Support ~(c-X) --> X+(-c-1) and ~(X-c) --> (-c-1)-X for splat vectors. 2017-08-06 06:28:41 +00:00
vec_sext.ll [InstCombine] try harder to form select from logic ops (2nd try) 2018-10-24 15:17:56 +00:00
vec_shuffle.ll [InstCombine] fix crash while trying to narrow a binop of shuffles (PR40734) 2019-02-15 16:31:55 +00:00
vector-casts.ll [InstCombine] don't widen an arbitrary sequence of vector ops (PR40032) 2018-12-17 20:27:43 +00:00
vector-concat-binop.ll [InstCombine] narrow binops on concatenated vectors (PR33026) 2018-09-25 15:57:37 +00:00
vector-mul.ll [InstCombine] Regenerate vector mul tests. 2018-02-08 17:54:24 +00:00
vector-type.ll
vector-udiv.ll [InstCombine] Add constant vector support for X udiv C, where C >= signbit 2018-02-09 10:43:59 +00:00
vector-urem.ll [PatternMatch] enhance m_One() to ignore undef elements in vectors 2018-02-17 16:00:42 +00:00
vector-xor.ll [InstCombine] consolidate tests for ~(X+C); NFC 2018-09-03 18:04:21 +00:00
vector_gep1.ll [InstCombine] auto-generate checks; NFC 2018-03-23 15:39:03 +00:00
vector_gep2.ll [InstCombine] auto-generate checks; NFC 2018-03-23 15:39:03 +00:00
vector_insertelt_shuffle.ll [instsimplify] consistently handle undef and out of bound indices for insertelement and extractelement 2017-12-30 05:54:22 +00:00
volatile_store.ll
wcslen-1.ll [ValueTracking] More accurate unsigned sub overflow detection 2019-02-28 18:04:20 +00:00
wcslen-2.ll TargetLibraryInfo: Stop guessing wchar_t size 2017-09-26 02:36:57 +00:00
wcslen-3.ll [ValueTracking] More accurate unsigned sub overflow detection 2019-02-28 18:04:20 +00:00
wcslen-4.ll TargetLibraryInfo: Stop guessing wchar_t size 2017-09-26 02:36:57 +00:00
weak-symbols.ll
win-math.ll [TargetLibraryInfo] Update run time support for Windows 2019-02-11 19:02:28 +00:00
with_overflow.ll [InstCombine] Improve with.overflow intrinsic tests; NFC 2019-03-18 20:08:35 +00:00
xor-icmps.ll [InstCombine] Fix IC trying to create a xor of pointer types. 2018-08-15 17:46:22 +00:00
xor-undef.ll
xor.ll [InstCombine] add/move tests for select with inverted condition; NFC 2018-10-23 14:37:29 +00:00
xor2.ll [InstCombine] fix xor-or-xor fold to check uses and handle commutes 2018-09-04 23:22:13 +00:00
zero-point-zero-add.ll
zeroext-and-reduce.ll
zext-bool-add-sub.ll [InstCombine] canonicalize add/sub with bool 2019-02-24 16:57:45 +00:00
zext-fold.ll
zext-or-icmp.ll
zext-phi.ll
zext.ll [InstCombine] make ((X & C) ^ C) form consistent for vectors 2018-09-04 21:17:14 +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.