1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 03:02:36 +01:00
llvm-mirror/test/Transforms/InstCombine
Serguei Katkov db0a0def25 [InstCombine]Avoid introduction of unaligned mem access
InstCombine is able to transform mem transfer instrinsic to alone store or store/load pair.
It might result in generation of unaligned atomic load/store which later in backend
will be transformed to libcall. It is not an evident gain and it is better to keep intrinsic as is
and handle it at backend.

Reviewers: reames, anna, apilipenko, mkazantsev
Reviewed By: reames
Subscribers: t.p.northover, jfb, llvm-commits
Differential Revision: https://reviews.llvm.org/D56582

llvm-svn: 351295
2019-01-16 04:36:26 +00:00
..
AArch64
AMDGPU AMDGPU: Add a fast path for icmp.i1(src, false, NE) 2019-01-15 02:13:18 +00:00
ARM
NVPTX
PowerPC
X86 [InstCombine] Make x86 PADDS/PSUBS constant folding tests generic 2018-12-20 13:50:12 +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-BadLoadCombine2.ll
2004-09-20-BadLoadCombine.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
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
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
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
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
2011-06-13-nsw-alloca.ll
2011-09-03-Trampoline.ll
2011-10-07-AlignPromotion.ll
2012-3-15-or-xor-constant.ll
2012-6-7-vselect-bitcast.ll
2012-01-11-OpaqueBitcastCrash.ll
2012-02-13-FCmp.ll
2012-02-28-ICmp.ll
2012-03-10-InstCombine.ll
2012-04-24-vselect.ll
2012-04-30-SRem.ll
2012-05-28-select-hang.ll
2012-06-06-LoadOfPHIs.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
abs_abs.ll [InstCombine] canonicalize abs pattern 2018-07-27 01:49:51 +00:00
abs-1.ll [InstCombine] canonicalize abs pattern 2018-07-27 01:49:51 +00:00
add2.ll
add3.ll
add4.ll
add-sitofp.ll
add.ll
addnegneg.ll
AddOverFlow.ll
addrspacecast.ll
adjust-for-minmax.ll
alias-recursion.ll
align-2d-gep.ll
align-addr.ll
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
alloca.ll
allocsize-32.ll
allocsize.ll
and2.ll [InstCombine] move/add tests for xor+add fold; NFC 2018-07-31 12:31:00 +00:00
and-compare.ll
and-fcmp.ll
and-narrow.ll
and-or-and.ll
and-or-icmps.ll
and-or-not.ll
and-or.ll
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
apint-add.ll
apint-and-compare.ll
apint-and-or-and.ll
apint-and-xor-merge.ll
apint-and.ll
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
apint-or.ll
apint-rem1.ll
apint-rem2.ll
apint-select.ll
apint-shift-simplify.ll
apint-shift.ll [InstCombine] Ensure nested shifts are in range (OSS-Fuzz #9880) 2018-11-06 11:28:22 +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
apint-xor1.ll
apint-xor2.ll
assoc-cast-assoc.ll
assume2.ll
assume-loop-align.ll
assume-redundant.ll
assume.ll
atomic.ll
badmalloc.ll
binop-cast.ll
bit-checks.ll
bitcast-alias-function.ll
bitcast-bigendian.ll
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
bitcast.ll
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
broadcast.ll
bswap-fold.ll
bswap-known-bits.ll
bswap.ll
builtin-object-size-offset.ll
builtin-object-size-ptr.ll
cabs-array.ll
cabs-discrete.ll
call2.ll
call_nonnull_arg.ll
call-callconv.ll
call-cast-attrs.ll
call-cast-target-inalloca.ll
call-cast-target.ll
call-guard.ll
call-intrinsics.ll
call.ll
canonicalize_branch.ll
canonicalize-ashr-shl-to-masking.ll
canonicalize-constant-low-bit-mask-and-icmp-eq-to-icmp-ule.ll
canonicalize-constant-low-bit-mask-and-icmp-ne-to-icmp-ugt.ll
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
canonicalize-constant-low-bit-mask-and-icmp-sle-to-icmp-sle.ll
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
canonicalize-constant-low-bit-mask-and-icmp-ugt-to-icmp-ugt.ll
canonicalize-constant-low-bit-mask-and-icmp-ule-to-icmp-ule.ll
canonicalize-constant-low-bit-mask-and-icmp-ult-to-icmp-ugt.ll
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
canonicalize-low-bit-mask-and-icmp-ne-to-icmp-ugt.ll
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
canonicalize-shl-lshr-to-masking.ll
canonicalize-signed-truncation-check.ll [InstCombine] Re-commit: Fold 'check for [no] signed truncation' pattern 2018-07-18 10:55:17 +00:00
cast_ptr.ll
cast-call-combine-prof.ll
cast-call-combine.ll
cast-callee-deopt-bundles.ll
cast-int-fcmp-eq-0.ll
cast-int-icmp-eq-0.ll
cast-mul-select.ll
cast-select.ll
cast-set-preserve-signed-dbg-val.ll
cast-set.ll
cast-unsigned-icmp-eqcmp-0.ll
cast.ll [InstCombine] don't widen an arbitrary sequence of vector ops (PR40032) 2018-12-17 20:27:43 +00:00
ceil.ll
clamp-to-minmax.ll
cmp-intrinsic.ll [InstCombine] Improve cttz/ctlz + icmp tests; NFC 2019-01-05 17:36:05 +00:00
compare-3way.ll
compare-alloca.ll
compare-signs.ll
compare-udiv.ll
compare-unescaped.ll
consecutive-fences.ll
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
constant-fold-libfunc.ll
constant-fold-math.ll
convergent.ll
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
CPP_min_max.ll
crash.ll
ctpop.ll
dce-iterate.ll
deadcode.ll
debug-line.ll
debuginfo_add.ll
debuginfo-dce2.ll
debuginfo-dce.ll
debuginfo-skip.ll
debuginfo-variables.ll [InstCombine] Preserve debug value when simplifying cast-of-select 2018-07-17 18:08:36 +00:00
debuginfo.ll
default-alignment.ll
demand_shrink_nsw.ll [InstCombine] fix xor-or-xor fold to check uses and handle commutes 2018-09-04 23:22:13 +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
disable-simplify-libcalls.ll
distribute.ll
div-shift-crash.ll
div-shift.ll
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 [SLC] Fix shrinking of pow() 2018-08-06 19:40:17 +00:00
double-float-shrink-2.ll
early_constfold_changes_IR.ll
early_dce_clobbers_callgraph.ll
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
exact.ll
exp2-1.ll
exp2-2.ll
ExtractCast.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
extractvalue.ll
fabs-libcall.ll
fabs.ll
fadd-fsub-factor.ll [InstCombine] fix/enhance fadd/fsub factorization 2018-08-12 15:48:26 +00:00
fadd.ll
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
fdiv.ll
ffs-1.ll
float-shrink-compare.ll
fls.ll
fma.ll
fmul-sqrt.ll
fmul.ll
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_x86.ll
fpextend.ll
fprintf-1.ll
fputs-1.ll
fputs-opt-size.ll
fsh.ll [InstCombine] add tests for rotate/bswap equality; NFC 2018-11-27 00:08:21 +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
gep-custom-dl.ll
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
hoist_instr.ll
icmp_sdiv_with_and_without_range.ll
icmp-add.ll [InstCombine] add folds for unsigned-overflow compares 2018-09-11 22:40:20 +00:00
icmp-bc-vec.ll
icmp-custom-dl.ll
icmp-div-constant.ll
icmp-dom.ll [InstCombine] simplify icmps with same operands based on dominating cmp 2018-12-05 15:04:00 +00:00
icmp-logical.ll
icmp-mul-zext.ll
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
icmp-shl-nuw.ll
icmp-shr-lt-gt.ll
icmp-shr.ll
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
icmp.ll [InstCombine] auto-generate full checks for icmp dominator tests; NFC 2018-12-04 15:00:35 +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
intersect-accessgroup.ll Introduce llvm.loop.parallel_accesses and llvm.access.group metadata. 2018-12-20 04:58:07 +00:00
intptr1.ll
intptr2.ll
intptr3.ll
intptr4.ll
intptr5.ll
intptr6.ll
intptr7.ll
IntPtrCast.ll
intrinsics.ll [InstCombine] Simplify cttz/ctlz + icmp eq/ne into mask check 2018-12-18 19:59:50 +00:00
invariant.group.ll
invariant.ll
invert-variable-mask-in-masked-merge-scalar.ll
invert-variable-mask-in-masked-merge-vector.ll
invoke.ll
isascii-1.ll
isdigit-1.ll
JavaCompare.ll
known_align.ll
known-never-nan.ll [InstSimplify] use isKnownNeverNaN to fold more fcmp ord/uno 2018-08-21 14:45:13 +00:00
LandingPadClauses.ll
lifetime-asan.ll
lifetime-no-null-opt.ll
lifetime.ll
load3.ll
load_combine_aa.ll
load-bitcast32.ll
load-bitcast64.ll
load-bitcast-select.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
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 [ValueTracking] peek through 2-input shuffles in ComputeNumSignBits 2018-11-03 13:18:55 +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
lshr.ll
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_intrinsics.ll
masked-merge-add.ll
masked-merge-and-of-ors.ll
masked-merge-or.ll
masked-merge-xor.ll
max_known_bits.ll [InstCombine] remove stall comment from test file; NFC 2018-09-14 18:02:17 +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
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
memcmp-2.ll
memcmp-constant-fold.ll
memcpy_chk-1.ll
memcpy_chk-2.ll
memcpy-1.ll
memcpy-2.ll
memcpy-addrspace.ll
memcpy-from-global.ll
memcpy-to-load.ll
memcpy.ll
memmove_chk-1.ll
memmove_chk-2.ll
memmove-1.ll
memmove-2.ll
memmove.ll
memset2.ll
memset_chk-1.ll
memset_chk-2.ll
memset-1.ll
memset-2.ll
memset.ll
merge-icmp.ll
min-positive.ll
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
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
musttail-thunk.ll
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
no_cgscc_assert.ll
no_sink_instruction.ll Add -instcombine-code-sinking option 2018-10-25 08:32:29 +00:00
no-negzero.ll
non-integral-pointers.ll
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
odr-linkage.ll
onehot_merge.ll
opaque.ll
operand-complexity.ll fix comment typo - NFC 2019-01-08 00:40:01 +00:00
or-fcmp.ll
or-shifted-masks.ll
or-xor.ll
or.ll
osx-names.ll
out-of-bounds-indexes.ll
overflow-mul.ll
overflow.ll [InstCombine] auto-generate full checks for icmp overflow tests; NFC 2018-12-04 15:41:34 +00:00
OverlappingInsertvalues.ll
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
phi-timeout.ll
phi.ll
pow-1.ll [InstCombine] Expand the simplification of pow() into exp2() 2018-08-30 19:04:51 +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
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
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
pr30929.ll
pr31990_wrong_memcpy.ll
pr32686.ll
pr33453.ll
pr33689_same_bitwidth.ll
pr34349.ll
pr34627.ll
pr35515.ll
pr36362.ll
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
PR30597.ll
PR37526.ll
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
README.txt
readnone-maythrow.ll
realloc.ll
rem.ll
rotate.ll [InstCombine] remove stale comments; NFC 2019-01-08 22:52:08 +00:00
round.ll
salvage-dbg-declare.ll
saturating-add-sub.ll [InstCombine] Support ssub.sat canonicalization for non-splats 2018-12-01 10:58:34 +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
select_arithmetic.ll
select_meta.ll [InstCombine] use 'match' to handle vectors and simplify code 2018-10-23 15:05:12 +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
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
select-cmp-cttz-ctlz.ll [InstCombine] Relax cttz/ctlz with select on zero 2019-01-05 09:48:16 +00:00
select-cmpxchg.ll
select-crash-noverify.ll
select-crash.ll
select-extractelement.ll
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
select-load-call.ll
select-obo-peo-ops.ll
select-of-bittest.ll
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
select.ll [InstCombine] Fold (min/max ~X, Y) -> ~(max/min X, ~Y) when Y is freely invertible 2018-09-22 05:53:27 +00:00
set-lowbits-mask-canonicalize.ll
set.ll [NFC][InstCombine] Regenerate set.ll test 2018-08-05 08:53:40 +00:00
setcc-strength-reduce.ll
sext.ll
shift-add.ll
shift-shift.ll
shift-sra.ll
shift.ll
should-change-type.ll
shuffle_select.ll [InstCombine] drop poison flags in SimplifyVectorDemandedElts 2018-10-04 21:36:50 +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
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
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
sincospi.ll
sink_instruction.ll
sink-into-catchswitch.ll [InstCombine] auto-generate complete checks; NFC 2018-12-18 22:09:15 +00:00
sitofp.ll
smax-icmp.ll
smin-icmp.ll
snprintf.ll
sprintf-1.ll
sprintf-void.ll
sqrt-nofast.ll
sqrt.ll
srem1.ll
srem-simplify-bug.ll
stack-overalign.ll
stacksave-debuginfo.ll
stacksaverestore.ll
statepoint.ll
store-load-unaliased-gep.ll
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_chk-1.ll
stpcpy_chk-2.ll
stpcpy-1.ll
stpcpy-2.ll
str-int-2.ll
str-int.ll
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
strcmp-2.ll
strcmp-memcmp.ll [InstCombine] Disable strcmp->memcmp transform for MSan. 2018-09-19 19:37:24 +00:00
strcpy_chk-1.ll
strcpy_chk-2.ll
strcpy_chk-64.ll
strcpy-1.ll
strcpy-2.ll
strcspn-1.ll
strcspn-2.ll
strlen-1.ll
strlen-2.ll
strncat-1.ll
strncat-2.ll
strncat-3.ll
strncmp-1.ll
strncmp-2.ll
strncmp-wrong-datalayout.ll
strncpy_chk-1.ll
strncpy_chk-2.ll
strncpy-1.ll
strncpy-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
struct-assign-tbaa.ll
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
sub.ll [InstCombine] use m_Neg() in dyn_castNegVal() to match vectors with undef elts 2018-10-19 17:54:53 +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
trunc.ll
type_pun.ll
uaddo.ll [InstCombine] add tests for unsigned add overflow; NFC 2018-09-12 21:13:37 +00:00
udiv_select_to_select_shift.ll
udiv-simplify.ll
udivrem-change-width.ll
umax-icmp.ll
umin-icmp.ll
unfold-masked-merge-with-const-mask-scalar.ll
unfold-masked-merge-with-const-mask-vector.ll
unlocked-stdio-mingw.ll
unlocked-stdio.ll
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
urem-simplify-bug.ll
vararg.ll
vec_demanded_elts.ll [InstCombine] drop poison flags in SimplifyVectorDemandedElts 2018-10-04 21:36:50 +00:00
vec_extract_2elts.ll
vec_extract_var_elt.ll
vec_insertelt.ll
vec_phi_extract.ll
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 undef propagation bug with shuffle+binop 2018-12-03 21:15:17 +00:00
vector_gep1.ll
vector_gep2.ll
vector_insertelt_shuffle.ll
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
vector-type.ll
vector-udiv.ll
vector-urem.ll
vector-xor.ll [InstCombine] consolidate tests for ~(X+C); NFC 2018-09-03 18:04:21 +00:00
volatile_store.ll
wcslen-1.ll
wcslen-2.ll
wcslen-3.ll
wcslen-4.ll
weak-symbols.ll
win-math.ll
xor2.ll [InstCombine] fix xor-or-xor fold to check uses and handle commutes 2018-09-04 23:22:13 +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
zero-point-zero-add.ll
zeroext-and-reduce.ll
zext-bool-add-sub.ll
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

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.