1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 19:23:23 +01:00
llvm-mirror/test/Transforms/InstCombine
Nikita Popov 453ec55b92 Reapply [IRBuilder] Always respect inserter/folder
Some IRBuilder methods that were originally defined on
IRBuilderBase do not respect custom IRBuilder inserters/folders,
because those were not accessible prior to D73835. Fix this by
making use of existing (and now accessible) IRBuilder methods,
which will handle inserters/folders correctly.

There are some changes in OpenMP and Instrumentation tests, where
bitcasts now get constant folded. I've also highlighted one
InstCombine test which now finishes in two rather than three
iterations, thanks to new instructions being inserted into the
worklist.

Differential Revision: https://reviews.llvm.org/D74787
2020-02-19 20:51:38 +01:00
..
AArch64
AMDGPU [InstCombine][AMDGPU] Trim components of s_buffer_load 2020-01-30 10:48:25 +01:00
ARM
NVPTX Consolidate internal denormal flushing controls 2020-01-17 20:09:53 -05:00
PowerPC
X86 [X86][InstCombine] Add constant folding and simplification support for pdep and pext 2019-12-31 15:06:47 -08: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
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-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-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
abs-1.ll [InstCombine] fix use check when canonicalizing abs/nabs 2020-02-10 14:57:37 -05:00
add2.ll
add3.ll
add4.ll
add-sitofp.ll
add.ll
addnegneg.ll
AddOverFlow.ll
addrspacecast.ll
addsub-constant-folding.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
alloca-cast-debuginfo.ll
alloca.ll
allocsize-32.ll
allocsize.ll
and2.ll [NFC][InstCombine] '(Op1 & С) - Op1' -> '-(Op1 & ~C)' fold (PR44427) 2020-01-03 21:25:48 +03: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
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
apint-shl-trunc.ll
apint-sub.ll
apint-xor1.ll
apint-xor2.ll
ashr-lshr.ll
assoc-cast-assoc.ll
assume2.ll
assume_inevitable.ll
assume-loop-align.ll
assume-redundant.ll
assume.ll [InstCombine] Fix worklist management in return combine 2020-01-17 17:59:23 +01:00
atomic.ll
atomicrmw.ll
badmalloc.ll
bcmp-1.ll
bcopy.ll
binop-cast.ll
bit-checks.ll
bitcast-bigendian.ll
bitcast-bitcast.ll
bitcast-function.ll
bitcast-phi-uselistorder.ll [InstCombine] Fix user iterator invalidation in bitcast of phi transform 2020-01-14 20:38:10 +01:00
bitcast-sext-vector.ll
bitcast-store.ll
bitcast-vec-canon.ll
bitcast.ll
bitreverse-hang.ll Migrate function attribute "no-frame-pointer-elim" to "frame-pointer"="all" as cleanups after D56351 2019-12-24 15:57:33 -08:00
bitreverse-known-bits.ll
bittest.ll
branch.ll
broadcast.ll
bswap-fold.ll
bswap-known-bits.ll
bswap.ll
builtin-dynamic-object-size.ll
builtin-object-size-custom-dl.ll
builtin-object-size-offset.ll
builtin-object-size-ptr.ll [InstCombine] remove uses before deleting instructions (PR43723) 2020-01-02 09:47:36 -05:00
byval.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 [InstCombine] Fix worklist management when removing guard intrinsic 2020-01-14 21:47:48 +01:00
call-intrinsics.ll
call.ll
callsite_nonnull_args_through_casts.ll
canonicalize_branch.ll
canonicalize-ashr-shl-to-masking.ll
canonicalize-clamp-like-pattern-between-negative-and-positive-thresholds.ll [InstCombine] Process newly inserted instructions in the correct order 2020-01-30 09:40:10 +01:00
canonicalize-clamp-like-pattern-between-zero-and-positive-threshold.ll [InstCombine] Process newly inserted instructions in the correct order 2020-01-30 09:40:10 +01:00
canonicalize-clamp-with-select-of-constant-threshold-pattern.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 [InstCombine] replace undef elements in vector constant when doing icmp folds (PR44383) 2020-01-03 09:16:57 -05:00
canonicalize-constant-low-bit-mask-and-icmp-sge-to-icmp-sle.ll
canonicalize-constant-low-bit-mask-and-icmp-sgt-to-icmp-sgt.ll [InstCombine] replace undef elements in vector constant when doing icmp folds (PR44383) 2020-01-03 09:16:57 -05:00
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] replace undef elements in vector constant when doing icmp folds (PR44383) 2020-01-03 09:16:57 -05: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 [InstCombine] replace undef elements in vector constant when doing icmp folds (PR44383) 2020-01-03 09:16:57 -05:00
canonicalize-constant-low-bit-mask-and-icmp-ule-to-icmp-ule.ll
canonicalize-constant-low-bit-mask-and-icmp-ult-to-icmp-ugt.ll [InstCombine] replace undef elements in vector constant when doing icmp folds (PR44383) 2020-01-03 09:16:57 -05:00
canonicalize-lack-of-signed-truncation-check.ll
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
canonicalize-low-bit-mask-v2-and-icmp-ne-to-icmp-ugt.ll
canonicalize-low-bit-mask-v3-and-icmp-eq-to-icmp-ule.ll
canonicalize-low-bit-mask-v3-and-icmp-ne-to-icmp-ugt.ll
canonicalize-low-bit-mask-v4-and-icmp-eq-to-icmp-ule.ll
canonicalize-low-bit-mask-v4-and-icmp-ne-to-icmp-ugt.ll
canonicalize-lshr-shl-to-masking.ll
canonicalize-shl-lshr-to-masking.ll
canonicalize-signed-truncation-check.ll
cast_phi.ll [InstCombine] fix operands of shouldChangeType() for casted phi transform 2020-02-04 07:45:48 -05: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 [InstCombine] allow more narrowing of casted select 2020-01-27 16:35:50 -05:00
cast-set-preserve-signed-dbg-val.ll
cast-set.ll
cast-unsigned-icmp-eqcmp-0.ll
cast.ll
ceil.ll
clamp-to-minmax.ll
cmp-intrinsic.ll
compare-3way.ll
compare-alloca.ll
compare-signs.ll
compare-udiv.ll
compare-unescaped.ll
conditional-variable-length-signext-after-high-bit-extract.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
constant-fold-shifts.ll
convergent.ll
copysign.ll [InstCombine] remove stale comment on test; NFC 2019-12-30 12:39:10 -05:00
cos-1.ll
cos-2.ll
cos-sin-intrinsic.ll
CPP_min_max.ll
crash.ll
ctlz-cttz-bitreverse.ll
ctpop-bswap-bitreverse.ll
ctpop.ll
cttz-abs.ll
cttz-negative.ll
dce-iterate.ll
deadcode.ll
debug-line.ll
debuginfo_add.ll
debuginfo-dce2.ll
debuginfo-dce.ll
debuginfo-sink.ll
debuginfo-skip.ll
debuginfo-variables.ll
debuginfo.ll
default-alignment.ll
demand_shrink_nsw.ll
demorgan-sink-not-into-xor.ll
demorgan.ll [InstCombine] Process newly inserted instructions in the correct order 2020-01-30 09:40:10 +01:00
deref-alloc-fns.ll
disable-builtin.ll
disable-simplify-libcalls.ll
distribute.ll
div-shift-crash.ll Migrate function attribute "no-frame-pointer-elim" to "frame-pointer"="all" as cleanups after D56351 2019-12-24 15:57:33 -08:00
div-shift.ll
div.ll [InstCombine] Process newly inserted instructions in the correct order 2020-01-30 09:40:10 +01:00
do-not-clone-dbg-declare.ll
double-float-shrink-1.ll
double-float-shrink-2.ll
early_constfold_changes_IR.ll
early_dce_clobbers_callgraph.ll
element-atomic-memintrins.ll
enforce-known-alignment.ll
err-rep-cold.ll
exact.ll
exp2-1.ll
exp2-2.ll
expensive-combines.ll [InstCombine] Support disabling expensive combines in opt 2020-01-17 17:56:20 +01:00
ExtractCast.ll
extractelement.ll
extractinsert-tbaa.ll
extractvalue.ll
fabs-copysign.ll
fabs-libcall.ll
fabs.ll
fadd-fsub-factor.ll
fadd.ll
fast-math.ll
fcmp-select.ll
fcmp-special.ll
fcmp.ll
fdiv-cos-sin.ll
fdiv-sin-cos.ll
fdiv.ll [InstCombine] Z / (1.0 / Y) => (Y * Z) 2020-01-09 10:52:39 -05:00
ffs-1.ll
float-shrink-compare.ll
fls.ll
fma.ll
fmul-exp2.ll
fmul-exp.ll
fmul-pow.ll
fmul-sqrt.ll
fmul.ll
fneg.ll [InstCombine] fneg(X + C) --> -C - X 2020-01-22 09:48:43 -05:00
fold-bin-operand.ll
fold-calls.ll
fold-fops-into-selects.ll
fold-inc-of-add-of-not-x-and-y-to-sub-x-from-y.ll
fold-phi-load-metadata.ll
fold-phi.ll
fold-sqrt-sqrtf.ll
fold-sub-of-not-to-inc-of-add.ll
fold-vector-select.ll
fold-vector-zero.ll
fortify-folding.ll
fp-ret-bitcast.ll
fpcast.ll
fpextend_x86.ll
fpextend.ll
fprintf-1.ll
fptrunc.ll
fputs-1.ll
fputs-opt-size.ll
freeze.ll
fsh.ll
fsub.ll [InstCombine] convert fsub nsz with fneg operand to -(X + Y) 2020-01-27 14:49:15 -05:00
fwrite-1.ll
gc.relocate.ll
gep-addrspace.ll
gep-alias.ll
gep-combine-loop-invariant.ll
gep-custom-dl.ll
gep-inbounds-null.ll [InstCombine] canonicalize splat shuffle after cmp 2020-01-29 08:34:29 -05:00
gep-sext.ll
gep-vector.ll
gepgep.ll
gepphigep.ll
getelementptr-folding.ll
getelementptr.ll [InstCombine] Process newly inserted instructions in the correct order 2020-01-30 09:40:10 +01:00
high-bit-signmask-with-trunc.ll
high-bit-signmask.ll
hoist_instr.ll
hoist-negation-out-of-bias-calculation-with-constant.ll [NFC][InstCombine] '(Op1 & С) - Op1' -> '-(Op1 & ~C)' fold (PR44427) 2020-01-03 21:25:48 +03:00
hoist-negation-out-of-bias-calculation.ll [NFC][InstCombine] '(X & (- Y)) - X' -> '- (X & (Y - 1))' fold (PR44448) 2020-01-03 20:27:29 +03:00
icmp_sdiv_with_and_without_range.ll
icmp-add.ll [InstCombine] Support non-splat vectors in icmp eq + add/sub fold 2020-01-29 20:56:58 +01:00
icmp-bc-vec.ll
icmp-custom-dl.ll [InstCombine] Avoid modifying instructions in-place 2020-02-08 17:05:56 +01:00
icmp-div-constant.ll [InstCombine] fix operands of shouldChangeType() for casted phi transform 2020-02-04 07:45:48 -05:00
icmp-dom.ll
icmp-logical.ll
icmp-mul-zext.ll [InstCombine] fix operands of shouldChangeType() for casted phi transform 2020-02-04 07:45:48 -05:00
icmp-mul.ll
icmp-range.ll
icmp-shl-nsw.ll
icmp-shl-nuw.ll
icmp-shr-lt-gt.ll
icmp-shr.ll
icmp-sub.ll [InstCombine] Support non-splat vectors in icmp eq + add/sub fold 2020-01-29 20:56:58 +01: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
icmp-uge-of-not-of-shl-allones-by-bits-and-val-to-icmp-eq-of-lshr-val-by-bits-and-0.ll
icmp-ugt-of-shl-1-by-bits-and-val-to-icmp-eq-of-lshr-val-by-bits-and-0.ll
icmp-ule-of-shl-1-by-bits-and-val-to-icmp-ne-of-lshr-val-by-bits-and-0.ll
icmp-ult-of-add-of-shl-one-by-bits-to-allones-and-val-to-icmp-ne-of-lshr-val-by-bits-and-0.ll
icmp-ult-of-not-of-shl-allones-by-bits-and-val-to-icmp-ne-of-lshr-val-by-bits-and-0.ll
icmp-vec.ll [InstCombine] canonicalize splat shuffle after cmp 2020-01-29 08:34:29 -05:00
icmp-xor-signbit.ll
icmp.ll [InstCombine] Relax preconditions for ashr+and+icmp fold (PR44754) 2020-02-18 17:49:46 +01:00
idioms.ll
indexed-gep-compares.ll
inline-intrinsic-assert.ll
inselt-binop.ll
insert-const-shuf.ll
insert-extract-shuffle.ll
insert-val-extract-elem.ll
insertelement-bitcast.ll
int_sideeffect.ll
intersect-accessgroup.ll
intptr1.ll
intptr2.ll
intptr3.ll
intptr4.ll
intptr5.ll
intptr6.ll
intptr7.ll
IntPtrCast.ll
intrinsics.ll
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
ispow2.ll
JavaCompare.ll
known_align.ll
known-never-nan.ll
known-non-zero.ll
LandingPadClauses.ll
lifetime-no-null-opt.ll
lifetime-sanitizer.ll
lifetime.ll
limit-max-iterations.ll Revert "Revert "Reland "[Support] make report_fatal_error abort instead of exit""" 2020-02-13 10:16:06 -08:00
load3.ll
load_combine_aa.ll
load-bitcast32.ll
load-bitcast64.ll [InstCombine] Let combineLoadToNewType preserve ABI alignment of the load (PR44543) 2020-01-15 03:20:53 +09:00
load-bitcast-select.ll
load-bitcast-vec.ll
load-cmp.ll
load-combine-metadata-2.ll
load-combine-metadata-3.ll
load-combine-metadata-4.ll
load-combine-metadata-dominance.ll
load-combine-metadata.ll
load-insert-store.ll [NFC] Add test for load-insert-store pattern 2019-12-30 16:14:37 +08:00
load-select.ll
load.ll [InstCombine] Process newly inserted instructions in the correct order 2020-01-30 09:40:10 +01:00
loadstore-alignment.ll
loadstore-metadata.ll
log-pow-nofastmath.ll
log-pow.ll
logical-select.ll [InstCombine] Process newly inserted instructions in the correct order 2020-01-30 09:40:10 +01:00
lower-dbg-declare.ll
lshr-and-negC-icmpeq-zero.ll
lshr-and-signbit-icmpeq-zero.ll
lshr-phi.ll
lshr.ll
malloc-free-delete.ll [IR] Mark memset.* intrinsics as IntrWriteMem. 2020-01-16 10:35:46 +00:00
masked_intrinsics.ll [IR] masked gather/scatter alignment should be set 2020-01-26 18:51:36 +01:00
masked-merge-add.ll
masked-merge-and-of-ors.ll
masked-merge-or.ll
masked-merge-xor.ll
max_known_bits.ll
max-of-nots.ll [InstCombine] Process newly inserted instructions in the correct order 2020-01-30 09:40:10 +01:00
maximum.ll
maxnum.ll
mem-deref-bytes-addrspaces.ll
mem-deref-bytes.ll
mem-gep-zidx.ll
mem-par-metadata-memcpy.ll Migrate function attribute "no-frame-pointer-elim" to "frame-pointer"="all" as cleanups after D56351 2019-12-24 15:57:33 -08:00
memccpy.ll
memchr.ll
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
mempcpy.ll
memrchr.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
minmax-demandbits.ll
minmax-fold.ll [InstCombine] Regenerate test checks; NFC 2020-01-29 18:22:07 +01:00
minmax-fp.ll
minmax-of-minmax.ll
minnum.ll
misc-2002.ll
mul-masked-bits.ll
mul.ll [InstCombine] Push negation through multiply (PR44234) 2020-01-31 20:58:55 +01:00
multi-size-address-space-pointer.ll
multi-use-or.ll
multiple-uses-load-bitcast-select.ll
musttail-thunk.ll
narrow-math.ll
narrow-switch.ll
narrow.ll
no_cgscc_assert.ll
no_sink_instruction.ll
no-negzero.ll
non-integral-pointers.ll
nonnull-attribute.ll
not.ll [InstCombine] try to pull 'not' of select into compare operands 2020-01-07 10:44:23 -05:00
nothrow.ll
nsw.ll [ValueTracking] Add DemandedElts support to computeKnownBits/ComputeNumSignBits (PR36319) 2020-02-01 12:45:46 +00:00
obfuscated_splat.ll
objsize-64.ll
objsize-address-space.ll
objsize-noverify.ll
objsize.ll
odr-linkage.ll
omit-urem-of-power-of-two-or-zero-when-comparing-with-zero.ll
onehot_merge.ll
opaque.ll
operand-complexity.ll
or-fcmp.ll
or-shifted-masks.ll
or-xor.ll
or.ll [InstCombine] Process newly inserted instructions in the correct order 2020-01-30 09:40:10 +01:00
osx-names.ll
out-of-bounds-indexes.ll
overflow_to_sat.ll
overflow-mul.ll
overflow.ll
OverlappingInsertvalues.ll
partally-redundant-left-shift-input-masking-after-truncation-variant-a.ll
partally-redundant-left-shift-input-masking-after-truncation-variant-b.ll
partally-redundant-left-shift-input-masking-after-truncation-variant-c.ll
partally-redundant-left-shift-input-masking-after-truncation-variant-d.ll
partally-redundant-left-shift-input-masking-after-truncation-variant-e.ll
partally-redundant-left-shift-input-masking-variant-a.ll
partally-redundant-left-shift-input-masking-variant-b.ll
partally-redundant-left-shift-input-masking-variant-c.ll
partally-redundant-left-shift-input-masking-variant-d.ll
partally-redundant-left-shift-input-masking-variant-e.ll
phi-equal-incoming-pointers.ll [InstCombine] Fix incorrect inbounds on GEP of GEP (PR44425) 2020-01-01 22:10:55 +01:00
phi-known-bits-operand-order.ll
phi-load-metadata-2.ll
phi-load-metadata-3.ll
phi-load-metadata-dominance.ll
phi-load-metadata.ll
phi-merge-gep.ll
phi-preserve-ir-flags.ll
phi-select-constant.ll
phi-shifts.ll
phi-timeout.ll
phi.ll
pow_fp_int.ll
pow-0.ll
pow-1.ll
pow-2.ll
pow-3.ll
pow-4.ll
pow-cbrt.ll
pow-exp-nofastmath.ll
pow-exp.ll
pow-sqrt.ll
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 [InstCombine] Regenerate test checks; NFC 2020-01-29 18:22:07 +01:00
pr25745.ll
pr26992.ll [InstCombine] Fix incorrect inbounds on GEP of GEP (PR44425) 2020-01-01 22:10:55 +01:00
pr26993.ll
pr27236.ll
pr27332.ll
pr27343.ll
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
pr38897.ll
pr38915.ll [InstCombine] Process newly inserted instructions in the correct order 2020-01-30 09:40:10 +01:00
pr38984.ll
pr39177.ll
pr39908.ll
pr41164.ll
pr43081.ll
pr43376-getFlippedStrictnessPredicateAndConstant-assert.ll
pr43893.ll
pr44242.ll [InstCombine] Don't rewrite phi-of-bitcast when the phi has other users 2019-12-31 12:15:02 +01:00
pr44245.ll [InstCombine] Process newly inserted instructions in the correct order 2020-01-30 09:40:10 +01:00
pr44541.ll [InstCombine] Fix worklist management when simplifying demanded bits 2020-02-18 17:55:40 +01:00
pr44552.ll [InstCombine] Fix worklist management in DSE (PR44552) 2020-01-17 18:10:56 +01:00
pr44835.ll [InstCombine] Fix infinite loop in min/max load/store bitcast combine (PR44835) 2020-02-08 16:55:22 +01:00
PR30597.ll
PR37526.ll
prefetch-load.ll
preserve-sminmax.ll
preserved-analyses.ll
prevent-cmp-merge.ll
printf-1.ll
printf-2.ll
printf-3.ll
ptr-int-cast.ll
pull-binop-through-shift.ll
pull-conditional-binop-through-shift.ll
puts-1.ll
range-check.ll
README.txt
readnone-maythrow.ll
realloc.ll
reassociate-nuw.ll
redundant-left-shift-input-masking-after-truncation-variant-a.ll
redundant-left-shift-input-masking-after-truncation-variant-b.ll
redundant-left-shift-input-masking-after-truncation-variant-c.ll
redundant-left-shift-input-masking-after-truncation-variant-d.ll
redundant-left-shift-input-masking-after-truncation-variant-e.ll
redundant-left-shift-input-masking-after-truncation-variant-f.ll
redundant-left-shift-input-masking-variant-a.ll
redundant-left-shift-input-masking-variant-b.ll
redundant-left-shift-input-masking-variant-c.ll
redundant-left-shift-input-masking-variant-d.ll
redundant-left-shift-input-masking-variant-e.ll
redundant-left-shift-input-masking-variant-f.ll
redundant-right-shift-input-masking.ll
rem.ll
result-of-add-of-negative-is-non-zero-and-no-underflow.ll
result-of-add-of-negative-or-zero-is-non-zero-and-no-underflow.ll
result-of-usub-is-non-zero-and-no-overflow.ll
reuse-constant-from-select-in-icmp.ll
rotate.ll
sadd_sat.ll
sadd-with-overflow.ll
salvage-dbg-declare.ll
saturating-add-sub.ll Reapply [IRBuilder] Always respect inserter/folder 2020-02-19 20:51:38 +01:00
scalarization.ll
sdiv-1.ll
sdiv-2.ll
sdiv-canonicalize.ll
sdiv-guard.ll
select_arithmetic.ll
select_meta.ll
select-2.ll
select-binop-cmp.ll
select-bitext-bitwise-ops.ll
select-bitext.ll
select-cmp-br.ll [InstCombine] Process newly inserted instructions in the correct order 2020-01-30 09:40:10 +01:00
select-cmp-cttz-ctlz.ll [InstCombine] Fix multi-use handling in cttz transform 2020-02-18 17:55:00 +01:00
select-cmpxchg.ll
select-crash-noverify.ll
select-crash.ll
select-ctlz-to-cttz.ll
select-extractelement.ll Migrate function attribute "no-frame-pointer-elim" to "frame-pointer"="all" as cleanups after D56351 2019-12-24 15:57:33 -08:00
select-gep.ll
select-icmp-and.ll
select-imm-canon.ll [InstCombine] Fix worklist management when simplifying demanded bits 2020-02-18 17:55:40 +01:00
select-load-call.ll
select-obo-peo-ops.ll
select-of-bittest.ll
select-pr39595.ll [InstCombine] Process newly inserted instructions in the correct order 2020-01-30 09:40:10 +01:00
select-select.ll
select-with-bitwise-ops.ll
select.ll [InstCombine] form copysign from select of FP constants (PR44153) 2020-01-20 10:51:14 -05:00
set-lowbits-mask-canonicalize.ll
set.ll
setcc-strength-reduce.ll
sext.ll
shift-add.ll [ValueTracking] Add DemandedElts support to computeKnownBits/ComputeNumSignBits (PR36319) 2020-02-01 12:45:46 +00:00
shift-amount-reassociation-in-bittest-with-truncation-lshr.ll
shift-amount-reassociation-in-bittest-with-truncation-shl.ll
shift-amount-reassociation-in-bittest.ll
shift-amount-reassociation-with-truncation-ashr.ll
shift-amount-reassociation-with-truncation-lshr.ll
shift-amount-reassociation-with-truncation-shl.ll
shift-amount-reassociation.ll
shift-by-signext.ll
shift-direction-in-bit-test.ll
shift-logic.ll
shift-shift.ll
shift-sra.ll
shift.ll
shl-and-negC-icmpeq-zero.ll
shl-and-signbit-icmpeq-zero.ll
shl-sub.ll
shl-unsigned-cmp-const.ll
should-change-type.ll
shuffle_select.ll
shuffle-select-narrow.ll
shufflevec-bitcast.ll
shufflevec-constant.ll
shufflevector-div-rem.ll
sign-bit-test-via-right-shifting-all-other-bits.ll
sign-test-and-or.ll
signbit-lshr-and-icmpeq-zero.ll
signbit-shl-and-icmpeq-zero.ll
signed-comparison.ll
signed-truncation-check.ll
signext.ll
simplify-demanded-bits-pointer.ll
simplify-libcalls-erased.ll
simplify-libcalls.ll
sincospi.ll
sink_instruction.ll
sink-alloca.ll
sink-into-catchswitch.ll
sitofp.ll
smax-icmp.ll
smin-icmp.ll
snprintf.ll
sprintf-1.ll
sprintf-void.ll
sqrt-nofast.ll
sqrt.ll
srem1.ll
srem-canonicalize.ll
srem-simplify-bug.ll
srem-via-sdiv-mul-sub.ll
ssub-with-overflow.ll
stack-overalign.ll
stacksave-debuginfo.ll
stacksaverestore.ll
statepoint.ll
stdio-custom-dl.ll
store-load-unaliased-gep.ll
store.ll
storemerge-dbg.ll
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
strchr-2.ll
strcmp-1.ll
strcmp-2.ll
strcmp-memcmp.ll
strcpy_chk-1.ll
strcpy_chk-2.ll
strcpy_chk-64.ll
strcpy-1.ll
strcpy-2.ll
strcspn-1.ll
strcspn-2.ll
strict-sub-underflow-check-to-comparison-of-sub-operands.ll
strlen_chk.ll [SimplifyLibCalls] Add __strlen_chk. 2020-02-08 11:51:00 -08:00
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
strndup.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-and-or-neg-xor.ll
sub-ashr-and-to-icmp-select.ll [InstCombine] Process newly inserted instructions in the correct order 2020-01-30 09:40:10 +01:00
sub-ashr-or-to-icmp-select.ll [InstCombine] Process newly inserted instructions in the correct order 2020-01-30 09:40:10 +01:00
sub-gep.ll [InstCombine] Process newly inserted instructions in the correct order 2020-01-30 09:40:10 +01:00
sub-minmax.ll [InstCombine] Process newly inserted instructions in the correct order 2020-01-30 09:40:10 +01:00
sub-not.ll
sub-of-negatible.ll
sub-or-and-xor.ll
sub-xor-or-neg-and.ll
sub-xor.ll
sub.ll [InstCombine] Push negation through multiply (PR44234) 2020-01-31 20:58:55 +01:00
subtract-from-one-hand-of-select.ll [InstCombine] Sink sub into hands of select if one hand becomes zero. Part 2 (PR44426) 2020-01-04 17:30:51 +03:00
subtract-of-one-hand-of-select.ll [NFC][InstCombine] 'subtract from one hands of select' pattern tests (PR44426) 2020-01-04 17:30:51 +03: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-load.ll
trunc.ll [InstCombine] allow more narrowing of casted select 2020-01-27 16:35:50 -05:00
type_pun.ll
uadd-with-overflow.ll
uaddo.ll
udiv_select_to_select_shift.ll
udiv-simplify.ll
udivrem-change-width.ll
umax-icmp.ll
umin-icmp.ll
umul-sign-check.ll [InstCombine] Simplify a umul overflow check to a != 0 && b != 0. 2020-02-18 09:11:55 +01:00
unavailable-debug.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
unsigned_saturated_sub.ll
unsigned-add-lack-of-overflow-check-via-add.ll
unsigned-add-lack-of-overflow-check-via-xor.ll
unsigned-add-lack-of-overflow-check.ll
unsigned-add-overflow-check-via-add.ll
unsigned-add-overflow-check-via-xor.ll
unsigned-add-overflow-check.ll
unsigned-mul-lack-of-overflow-check-via-mul-udiv.ll
unsigned-mul-lack-of-overflow-check-via-udiv-of-allones.ll
unsigned-mul-overflow-check-via-mul-udiv.ll
unsigned-mul-overflow-check-via-udiv-of-allones.ll
unsigned-sub-lack-of-overflow-check.ll
unsigned-sub-overflow-check.ll
unused-nonnull.ll
urem-simplify-bug.ll
urem-via-udiv-mul-sub.ll
usub-overflow-known-by-implied-cond.ll [ValueTracking] usub(a, b) cannot overflow if a >= b. 2020-02-07 10:41:18 +00:00
vararg.ll
variable-signext-of-variable-high-bit-extraction.ll
vec_demanded_elts.ll
vec_extract_2elts.ll
vec_extract_var_elt.ll
vec_gep_scalar_arg.ll
vec_phi_extract.ll
vec_sext.ll [InstCombine] Process newly inserted instructions in the correct order 2020-01-30 09:40:10 +01:00
vec_shuffle.ll [InstCombine] add more splat tests with undef elements; NFC 2020-02-04 09:13:08 -05:00
vec_udiv_to_shift.ll
vec-binop-select.ll
vector_gep1.ll
vector_gep2.ll
vector_insertelt_shuffle.ll
vector-casts.ll
vector-concat-binop.ll
vector-mul.ll
vector-type.ll
vector-udiv.ll
vector-urem.ll
vector-xor.ll
volatile_store.ll
wcslen-1.ll
wcslen-2.ll
wcslen-3.ll
wcslen-4.ll
weak-symbols.ll
widenable-conditions.ll
win-math.ll
with_overflow.ll
xor2.ll
xor-icmps.ll
xor-of-icmps-with-extra-uses.ll
xor-undef.ll
xor.ll [InstCombine] Process newly inserted instructions in the correct order 2020-01-30 09:40:10 +01: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 Revert "[InstCombine] fold zext of masked bit set/clear" 2020-01-08 11:21:21 +01: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.