1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-22 10:42:39 +01:00
llvm-mirror/test/Transforms/InstCombine
Sanjay Patel 4345e14522 [InstCombine] avoid infinite loops from min/max canonicalization
The intrinsics have an extra chunk of known bits logic
compared to the normal cmp+select idiom. That allows
folding the icmp in each case to something better, but
that then opposes the canonical form of min/max that
we try to form for a select.

I'm carving out a narrow exception to preserve all
existing regression tests while avoiding the inf-loop.
It seems unlikely that this is the only bug like this
left, but this should fix:
https://llvm.org/PR51419

(cherry picked from commit b267d3ce8defa092600bda717ff18440d002f316)
2021-08-16 11:35:38 -07:00
..
AArch64 [AArch64][SVE] Move instcombine like transforms out of SVEIntrinsicOpts 2021-07-20 14:17:30 +00:00
AMDGPU [InstCombine] tmp alloca bypass: ensure that the replacement dominates all alloca uses 2021-04-14 13:04:12 +03:00
ARM [ARM] Fix arm.mve.pred.v2i range upper limit 2021-07-05 21:06:30 +01:00
Hexagon
NVPTX
PowerPC
RISCV [RISCV] Teach computeKnownBits that vsetvli returns number less than 2^31. 2021-04-29 08:07:59 -07:00
X86 [ValueTracking] look through bitcast of vector in computeKnownBits 2021-06-23 11:46:46 -04: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 [InstCombine] Fully disable select to and/or i1 folding 2021-05-06 09:29:52 +09:00
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 [NFC][InstCombine] Autogenerate some checklines being affected by upcoming change 2021-03-23 00:51:18 +03: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 Revert "[BuildLibCalls/SimplifyLibCalls] Fix attributes on created CallInst instructions." 2021-06-24 19:24:34 -07:00
2010-11-01-lshr-mask.ll
2010-11-21-SizeZeroTypeGEP.ll
2010-11-23-Distributed.ll [InstCombine] Regenerate 2010-11-23-Distributed.ll tests 2021-04-09 16:40:18 +01:00
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 [InstCombine] Fully disable select to and/or i1 folding 2021-05-06 09:29:52 +09:00
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 Reland [InstCombine] Fold ((X - Y) - Z) to X - (Y + Z) (PR49858) 2021-04-07 12:06:25 +03:00
abs-intrinsic.ll [InstCombine] fold abs(srem X, 2) 2021-03-31 11:29:20 -04:00
add2.ll
add3.ll
add4.ll
add-shl-sdiv-to-srem.ll
add-sitofp.ll
add.ll [InstCombine] (X | Op01C) + Op1C --> X + (Op01C + Op1C) iff the or is actually an add 2021-04-11 18:08:08 +03:00
addnegneg.ll
AddOverFlow.ll
addrspacecast.ll
addsub-constant-folding.ll
adjust-for-minmax.ll
aggregate-reconstruction.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-in-non-alloca-as.ll [InstCombine] Gracefully handle an alloca outside the alloca-AS 2021-06-29 09:38:13 -05:00
alloca.ll Reapply "OpaquePtr: Turn inalloca into a type attribute" 2021-03-29 08:55:30 -04:00
allocsize-32.ll
allocsize.ll
and2.ll [InstCombine] Fully disable select to and/or i1 folding 2021-05-06 09:29:52 +09:00
and-compare.ll
and-fcmp.ll [InstCombine] Fully disable select to and/or i1 folding 2021-05-06 09:29:52 +09:00
and-narrow.ll [InstSimplify] Add more poison folding optimizations 2021-06-23 20:25:24 +09:00
and-or-and.ll
and-or-icmp-min-max.ll [InstCombine] Fully disable select to and/or i1 folding 2021-05-06 09:29:52 +09:00
and-or-icmp-nullptr.ll [InstCombine] Fully disable select to and/or i1 folding 2021-05-06 09:29:52 +09:00
and-or-icmps.ll [InstCombine] Fully disable select to and/or i1 folding 2021-05-06 09:29:52 +09:00
and-or-not.ll
and-or.ll
and-xor-merge.ll
and-xor-or.ll
and.ll [InstCombine] Fully disable select to and/or i1 folding 2021-05-06 09:29:52 +09:00
annotation-intrinsic.ll
annotations.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 [NFC][InstCombine] Autogenerate some checklines being affected by upcoming change 2021-03-23 00:51:18 +03:00
apint-cast-and-cast.ll
apint-cast-cast-to-and.ll
apint-cast.ll
apint-div1.ll
apint-div2.ll
apint-mul1.ll
apint-mul2.ll
apint-not.ll
apint-or.ll
apint-rem1.ll
apint-rem2.ll
apint-select.ll
apint-shift-simplify.ll
apint-shift.ll Reapply [ConstantFold] Fold more operations to poison 2021-05-13 16:04:12 +02:00
apint-shl-trunc.ll
apint-sub.ll
apint-xor1.ll
apint-xor2.ll
ashr-lshr.ll
ashr-or-mul-abs.ll
assoc-cast-assoc.ll
assume2.ll
assume_inevitable.ll
assume-align.ll [NewPM] Consistently use 'simplifycfg' rather than 'simplify-cfg' 2021-07-09 09:47:03 +02:00
assume-icmp-null-select.ll [InstCombine] Fold icmp (select c,const,arg), null if icmp arg, null can be simplified 2021-06-21 17:39:05 +09:00
assume-inseltpoison.ll
assume-loop-align.ll
assume-redundant.ll
assume.ll [InstCombine] Fully disable select to and/or i1 folding 2021-05-06 09:29:52 +09:00
atomic.ll [InstCombine] Use poison constant to represent the result of unreachable instrs 2021-06-21 09:58:44 +09:00
atomicrmw.ll
badmalloc.ll
bcmp-1.ll
bcopy.ll
binop-cast.ll
bit-checks.ll [InstCombine] Fully disable select to and/or i1 folding 2021-05-06 09:29:52 +09:00
bitcast-bigendian.ll
bitcast-bitcast.ll
bitcast-function.ll
bitcast-inseltpoison.ll
bitcast-phi-uselistorder.ll
bitcast-sext-vector.ll
bitcast-store.ll
bitcast-vec-canon-inseltpoison.ll [InsCombine] Fix a few remaining vec transforms to use poison instead of undef 2021-05-31 18:47:09 +09:00
bitcast-vec-canon.ll [InsCombine] Fix a few remaining vec transforms to use poison instead of undef 2021-05-31 18:47:09 +09:00
bitcast.ll Reapply [InstCombine] Extract bitcast -> gep transform 2021-06-21 22:03:15 +02:00
bitreverse-hang.ll Revert "[NFC] remove explicit default value for strboolattr attribute in tests" 2021-05-24 19:43:40 +02:00
bitreverse-known-bits.ll
bitreverse.ll [InstCombine] InstCombinerImpl::visitOr - enable bitreverse matching 2021-05-15 13:39:09 +01:00
bittest.ll
branch.ll
broadcast-inseltpoison.ll [InsCombine] Fix a few remaining vec transforms to use poison instead of undef 2021-05-31 18:47:09 +09:00
broadcast.ll [InsCombine] Fix a few remaining vec transforms to use poison instead of undef 2021-05-31 18:47:09 +09:00
bswap-fold.ll
bswap-inseltpoison.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] Use poison constant to represent the result of unreachable instrs 2021-06-21 09:58:44 +09:00
byval.ll
cabs-array.ll
cabs-discrete.ll
call2.ll
call_nonnull_arg.ll
call-callconv-mismatch.ll Reland "Revert "[InstCombine] when calling conventions are compatible, don't convert the call to undef idiom"" 2021-04-12 14:50:54 -07:00
call-callconv.ll
call-cast-attrs.ll
call-cast-target-inalloca.ll Reapply "OpaquePtr: Turn inalloca into a type attribute" 2021-03-29 08:55:30 -04:00
call-cast-target-preallocated.ll
call-cast-target.ll
call-guard.ll [tests] Stablize tests for possible change in deref semantics 2021-07-14 13:05:43 -07:00
call-intrinsics.ll
call-returned.ll
call.ll
calloc-mismatch.ll [Analysis] improve function signature checking for calloc 2021-06-27 08:19:00 -04:00
callsite_nonnull_args_through_casts.ll
canonicalize_branch.ll
canonicalize-ashr-shl-to-masking.ll Reapply [ConstantFold] Fold more operations to poison 2021-05-13 16:04:12 +02:00
canonicalize-clamp-like-pattern-between-negative-and-positive-thresholds.ll
canonicalize-clamp-like-pattern-between-zero-and-positive-threshold.ll
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
canonicalize-constant-low-bit-mask-and-icmp-sge-to-icmp-sle.ll
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
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
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 Reapply [ConstantFold] Fold more operations to poison 2021-05-13 16:04:12 +02:00
canonicalize-selects-icmp-condition-bittest.ll
canonicalize-shl-lshr-to-masking.ll Reapply [ConstantFold] Fold more operations to poison 2021-05-13 16:04:12 +02:00
canonicalize-signed-truncation-check.ll
canonicalize-vector-extract.ll [Verifier] Fail on overrunning and invalid indices for {insert,extract} vector intrinsics 2021-06-23 10:33:22 +00:00
canonicalize-vector-insert.ll [Verifier] Fail on overrunning and invalid indices for {insert,extract} vector intrinsics 2021-06-23 10:33:22 +00:00
cast_phi.ll
cast_ptr.ll [NFC][InstCombine] Autogenerate some checklines being affected by upcoming change 2021-03-23 00:51:18 +03:00
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
catchswitch-phi.ll [InstCombine] Don't combine PHI before catchswitch 2021-07-02 12:10:24 -07:00
ceil.ll
clamp-to-minmax.ll
cmp-intrinsic.ll
cmp-x-vs-neg-x.ll
commutative-intrinsics.ll
compare-3way.ll
compare-alloca.ll
compare-signs.ll [InstCombine] fold shift+trunc signbit check 2021-04-12 16:19:43 -04:00
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
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-cttz.ll [InstCombine] C - ctpop(a) - > ctpop(~a)) if C is bitwidth (PR50104) 2021-04-26 15:40:54 +02:00
ctpop.ll [InstCombine] ctpop(X) ^ ctpop(Y) & 1 --> ctpop(X^Y) & 1 (PR50094) 2021-05-04 13:16:18 +02:00
cttz-abs.ll
cttz-negative.ll
cttz.ll [InstCombine] cttz(sext(x)) -> cttz(zext(x)) 2021-05-03 23:59:30 +02:00
dce-iterate.ll
deadcode.ll
debug-line.ll Revert "[BuildLibCalls/SimplifyLibCalls] Fix attributes on created CallInst instructions." 2021-06-24 19:24:34 -07:00
debuginfo_add.ll
debuginfo-dce2.ll
debuginfo-dce.ll
debuginfo-scalable-typesize.ll [SVE] Remove checks for warnings in scalable-vector tests. 2021-04-07 15:59:32 +01:00
debuginfo-sink.ll Partial Reapply "[DebugInfo] Use variadic debug values to salvage BinOps and GEP instrs with non-const operands" 2021-06-24 09:46:38 +01:00
debuginfo-skip.ll
debuginfo-variables.ll
debuginfo.ll
default-alignment.ll
demand_shrink_nsw.ll
demorgan-sink-not-into-xor.ll
demorgan.ll [InstCombine] Fully disable select to and/or i1 folding 2021-05-06 09:29:52 +09:00
deref-alloc-fns.ll [InstCombine] Fixed crash when setting align attr for memalign 2021-04-23 14:04:08 +02:00
disable-builtin.ll
disable-simplify-libcalls.ll
distribute.ll
div-by-0-guard-before-smul_ov-not.ll [InstCombine] Fully disable select to and/or i1 folding 2021-05-06 09:29:52 +09:00
div-by-0-guard-before-smul_ov.ll [InstCombine] Fully disable select to and/or i1 folding 2021-05-06 09:29:52 +09:00
div-by-0-guard-before-umul_ov-not.ll [InstCombine] Fully disable select to and/or i1 folding 2021-05-06 09:29:52 +09:00
div-by-0-guard-before-umul_ov.ll [InstCombine] Fully disable select to and/or i1 folding 2021-05-06 09:29:52 +09:00
div-shift-crash.ll Revert "[NFC] remove explicit default value for strboolattr attribute in tests" 2021-05-24 19:43:40 +02:00
div-shift.ll
div.ll [Constants] Extend support for scalable-vector splats 2021-06-07 14:37:56 +01:00
do-not-clone-dbg-declare.ll
dont-distribute-phi.ll [InstCombine] Fully disable select to and/or i1 folding 2021-05-06 09:29:52 +09:00
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
eq-of-parts.ll [InstCombine] Fold comparison of integers by parts 2021-05-10 22:22:39 +02:00
erase-dbg-values-at-dead-alloc-site.ll
err-rep-cold.ll
exact.ll
exp2-1.ll Revert "[BuildLibCalls/SimplifyLibCalls] Fix attributes on created CallInst instructions." 2021-06-24 19:24:34 -07:00
exp2-2.ll
ExtractCast.ll
extractelement-inseltpoison.ll [InsCombine] Fix a few remaining vec transforms to use poison instead of undef 2021-05-31 18:47:09 +09:00
extractelement.ll [InsCombine] Fix a few remaining vec transforms to use poison instead of undef 2021-05-31 18:47:09 +09:00
extractinsert-tbaa.ll
extractvalue.ll
fabs-copysign.ll
fabs-libcall.ll
fabs.ll [InstCombine] Fix PR47960 - Incorrect transformation of fabs with nnan flag 2021-07-25 10:43:33 -04:00
fadd-fsub-factor.ll
fadd.ll [InstCombine] fold reassociative FP add into start value of fadd reduction 2021-07-18 06:26:20 -04:00
fast-math.ll
fcmp-select.ll
fcmp-special.ll
fcmp.ll
fdiv-cos-sin.ll Revert "[BuildLibCalls/SimplifyLibCalls] Fix attributes on created CallInst instructions." 2021-06-24 19:24:34 -07:00
fdiv-sin-cos.ll Revert "[BuildLibCalls/SimplifyLibCalls] Fix attributes on created CallInst instructions." 2021-06-24 19:24:34 -07:00
fdiv.ll Update @llvm.powi to handle different int sizes for the exponent 2021-06-17 09:38:28 +02:00
ffs-1.ll
float-shrink-compare.ll Revert "[BuildLibCalls/SimplifyLibCalls] Fix attributes on created CallInst instructions." 2021-06-24 19:24:34 -07:00
fls.ll
fma.ll
fmul-exp2.ll [InstCombine] Relax constraints of uses for exp(X) * exp(Y) -> exp(X + Y) 2021-06-01 08:33:23 -04:00
fmul-exp.ll [InstCombine] Relax constraints of uses for exp(X) * exp(Y) -> exp(X + Y) 2021-06-01 08:33:23 -04:00
fmul-inseltpoison.ll
fmul-pow.ll [InstCombine] Missed optimization for pow(x, y) * pow(x, z) with fast-math 2021-06-07 08:08:05 -04:00
fmul-sqrt.ll
fmul.ll [Constants] Extend support for scalable-vector splats 2021-06-07 14:37:56 +01:00
fneg.ll [InstCombine] fix nsz (fast-math) propagation from fneg-of-select 2021-06-08 17:04:30 -04: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-inseltpoison.ll
fold-vector-zero.ll
fortify-folding.ll Revert "[BuildLibCalls/SimplifyLibCalls] Fix attributes on created CallInst instructions." 2021-06-24 19:24:34 -07:00
fp-ret-bitcast.ll
fpcast.ll
fpextend_x86.ll
fpextend.ll
fprintf-1.ll Revert "[BuildLibCalls/SimplifyLibCalls] Fix attributes on created CallInst instructions." 2021-06-24 19:24:34 -07:00
fptrunc.ll
fputs-1.ll Revert "[BuildLibCalls/SimplifyLibCalls] Fix attributes on created CallInst instructions." 2021-06-24 19:24:34 -07:00
fputs-opt-size.ll Revert "[BuildLibCalls/SimplifyLibCalls] Fix attributes on created CallInst instructions." 2021-06-24 19:24:34 -07:00
freeze-phi.ll
freeze.ll [InstCombine] Add freezeAllUsesOfArgument to visitFreeze 2021-07-24 18:08:58 +09:00
fsh.ll
fsub.ll
funnel.ll [InstCombine] restrict funnel shift match to avoid miscompile 2021-05-18 13:32:07 -04:00
fwrite-1.ll Revert "[BuildLibCalls/SimplifyLibCalls] Fix attributes on created CallInst instructions." 2021-06-24 19:24:34 -07:00
gc.relocate.ll
gep-addrspace.ll
gep-alias.ll
gep-can-replace-gep-idx-with-zero-typesize.ll [SVE] Remove checks for warnings in scalable-vector tests. 2021-04-07 15:59:32 +01:00
gep-combine-loop-invariant.ll [InstCombine] Fold (gep (oneuse(gep Ptr, Idx0)), Idx1) -> (gep Ptr, (add Idx0, Idx1)) (PR51069) 2021-07-22 10:58:51 +01:00
gep-custom-dl.ll [InstCombine] Fold (gep (oneuse(gep Ptr, Idx0)), Idx1) -> (gep Ptr, (add Idx0, Idx1)) (PR51069) 2021-07-22 10:58:51 +01:00
gep-inbounds-null.ll
gep-sext.ll
gep-vector-indices.ll [InstSimplify] Add constant fold for extractelement + splat for scalable vectors 2021-06-10 12:41:40 +01:00
gep-vector.ll
gepgep.ll
gepphigep.ll
get-lowbitmask-upto-and-including-bit.ll [InstCombine] Improve "get low bit mask upto and including bit X" pattern 2021-04-11 18:08:08 +03:00
getelementptr-folding.ll
getelementptr.ll [InstCombine] Fold (gep (oneuse(gep Ptr, Idx0)), Idx1) -> (gep Ptr, (add Idx0, Idx1)) (PR51069) 2021-07-22 10:58:51 +01:00
high-bit-signmask-with-trunc.ll
high-bit-signmask.ll
hoist_instr.ll
hoist-negation-out-of-bias-calculation-with-constant.ll
hoist-negation-out-of-bias-calculation.ll
hoist-not-from-ashr-operand.ll
hoist-xor-by-constant-from-xor-by-value.ll
icmp_sdiv_with_and_without_range.ll Reapply [InstCombine] Fold multiuse shr eq zero 2021-05-22 14:46:50 +02:00
icmp-add.ll [InstCombine] reorder icmp with offset folds for better results 2021-07-14 12:12:05 -04:00
icmp-bc-vec-inseltpoison.ll
icmp-bc-vec.ll
icmp-bitcast-glob.ll
icmp-constant-phi.ll
icmp-custom-dl.ll
icmp-div-constant.ll
icmp-dom.ll [InstCombine] avoid infinite loops with select/icmp transforms 2021-05-04 11:54:06 -04:00
icmp-logical.ll
icmp-mul-zext.ll
icmp-mul.ll
icmp-or.ll
icmp-range.ll
icmp-shl-nsw.ll
icmp-shl-nuw.ll
icmp-shr-lt-gt.ll
icmp-shr.ll Reapply [InstCombine] Fold multiuse shr eq zero 2021-05-22 14:46:50 +02:00
icmp-sub.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
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-inseltpoison.ll
icmp-vec.ll [Constants] Extend support for scalable-vector splats 2021-06-07 14:37:56 +01:00
icmp-xor-signbit.ll
icmp.ll [InstCombine] reduce signbit test of logic ops to cmp with zero 2021-07-12 09:01:26 -04:00
idioms.ll
indexed-gep-compares.ll [InstCombine] don't try to fold a constant expression that can trap (PR50906) 2021-06-28 17:00:21 -04:00
infinite-loop-postdom.ll
inline-intrinsic-assert.ll
inselt-binop-inseltpoison.ll
inselt-binop.ll
insert-const-shuf.ll
insert-extract-shuffle-inseltpoison.ll [InsCombine] Fix a few remaining vec transforms to use poison instead of undef 2021-05-31 18:47:09 +09:00
insert-extract-shuffle.ll [InsCombine] Fix a few remaining vec transforms to use poison instead of undef 2021-05-31 18:47:09 +09:00
insert-val-extract-elem.ll
insertelement-bitcast.ll
int_sideeffect.ll
intersect-accessgroup.ll
intptr1.ll [NFC][InstCombine] Autogenerate some checklines being affected by upcoming change 2021-03-23 00:51:18 +03:00
intptr2.ll
intptr3.ll [NFC][InstCombine] Autogenerate some checklines being affected by upcoming change 2021-03-23 00:51:18 +03:00
intptr4.ll
intptr5.ll
intptr6.ll
intptr7.ll [NFC][InstCombine] Autogenerate some checklines being affected by upcoming change 2021-03-23 00:51:18 +03:00
intptr8.ll
IntPtrCast.ll
intrinsic-select.ll [InstCombine] fold ctlz/cttz-of-select with 1 or more constant arms 2021-06-21 11:04:12 -04:00
intrinsics.ll Update @llvm.powi to handle different int sizes for the exponent 2021-06-17 09:38:28 +02: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
ispow2.ll [ValueTracking] ctpop propagates poison 2021-05-02 13:04:37 +09:00
JavaCompare.ll
known_align.ll
known-bits.ll
known-never-nan.ll
known-non-zero.ll
known-signbit-shift.ll
LandingPadClauses.ll
lifetime-no-null-opt.ll
lifetime-sanitizer.ll
lifetime.ll
load3.ll
load_combine_aa.ll
load-bitcast32.ll
load-bitcast64.ll
load-bitcast-select.ll
load-bitcast-vec.ll
load-cmp.ll [InstCombine] Fix miscompile on GEP+load to icmp fold (PR45210) 2021-06-17 19:46:17 +09:00
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-no-aliasing.ll Make FindAvailableLoadedValue TBAA aware 2021-03-24 17:20:26 +00:00
load-select.ll
load-store-forward.ll [InstCombine] Add load/store forwarding test with odd size (NFC) 2021-04-03 15:29:22 +02:00
load.ll [InstCombine] Use poison constant to represent the result of unreachable instrs 2021-06-21 09:58:44 +09:00
loadstore-alignment.ll
loadstore-metadata.ll
log-pow-nofastmath.ll
log-pow.ll
logical-select-inseltpoison.ll [InstCombine] Fully disable select to and/or i1 folding 2021-05-06 09:29:52 +09:00
logical-select.ll [InstCombine] Fully disable select to and/or i1 folding 2021-05-06 09:29:52 +09:00
lower-dbg-declare.ll
lshr-and-negC-icmpeq-zero.ll
lshr-and-signbit-icmpeq-zero.ll
lshr-phi.ll
lshr-trunc-sext-to-ashr-sext.ll [InstCombine] add/adjust test comments; NFC 2021-06-04 09:04:53 -04:00
lshr.ll [InstCombine] fold shift-of-srem-by-2 to mask+shift 2021-04-20 17:10:16 -04:00
malloc_free_delete_nvptx.ll
malloc-free-delete-dbginvar.ll
malloc-free-delete.ll [InstCombine] Look through invariant group intrinsics when removing malloc 2021-07-15 09:02:40 -07:00
masked_intrinsics_keep_metadata.ll Attach metadata to simplified masked loads and stores 2021-05-05 18:01:49 -05:00
masked_intrinsics-inseltpoison.ll [tests] Stablize tests for possible change in deref semantics 2021-07-14 13:05:43 -07:00
masked_intrinsics.ll [tests] Stablize tests for possible change in deref semantics 2021-07-14 13:05:43 -07: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
maximum.ll [InstCombine] convert FP min/max with negated op to fabs 2021-06-23 10:41:39 -04:00
maxnum.ll [InstCombine] convert FP min/max with negated op to fabs 2021-06-23 10:41:39 -04:00
mem-deref-bytes-addrspaces.ll
mem-deref-bytes.ll
mem-gep-zidx.ll
mem-par-metadata-memcpy.ll Revert "[NFC] remove explicit default value for strboolattr attribute in tests" 2021-05-24 19:43:40 +02:00
memccpy.ll
memchr.ll [SimplifyLibCalls] Fix memchr opt to use CreateLogicalAnd 2021-06-26 05:59:35 +09:00
memcmp-1.ll Revert "[BuildLibCalls/SimplifyLibCalls] Fix attributes on created CallInst instructions." 2021-06-24 19:24:34 -07:00
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 Fixing an infinite loop problem in InstCombine 2021-08-04 16:51:40 -07:00
memcpy-to-load.ll
memcpy.ll
memmove_chk-1.ll
memmove_chk-2.ll
memmove-1.ll
memmove-2.ll
memmove.ll
mempcpy.ll Revert "[BuildLibCalls/SimplifyLibCalls] Fix attributes on created CallInst instructions." 2021-06-24 19:24:34 -07:00
memrchr.ll
memset2.ll
memset_chk-1.ll Revert "[BuildLibCalls/SimplifyLibCalls] Fix attributes on created CallInst instructions." 2021-06-24 19:24:34 -07:00
memset_chk-2.ll
memset-1.ll Revert "[BuildLibCalls/SimplifyLibCalls] Fix attributes on created CallInst instructions." 2021-06-24 19:24:34 -07:00
memset-2.ll
memset.ll
merge-icmp.ll
merging-multiple-stores-into-successor.ll
min-positive.ll
minimum.ll [InstCombine] convert FP min/max with negated op to fabs 2021-06-23 10:41:39 -04:00
minmax-demandbits.ll
minmax-fold.ll
minmax-fp.ll
minmax-intrinsics.ll [instcombine] Precommit tests for umin(a,b) ne/eq 0 fold 2021-06-30 10:29:19 -07:00
minmax-of-minmax.ll
minnum.ll [InstCombine] convert FP min/max with negated op to fabs 2021-06-23 10:41:39 -04:00
misc-2002.ll
mul-inseltpoison.ll
mul-masked-bits.ll
mul.ll [InstCombine] Fold (sext bool X) * (sext bool X) to zext (and X, X) 2021-06-18 16:28:06 +07:00
multi-size-address-space-pointer.ll [NFC][InstCombine] Autogenerate some checklines being affected by upcoming change 2021-03-23 00:51:18 +03:00
multi-use-load-casts.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
no-unwind-inline-asm.ll Support unwinding from inline assembly 2021-05-13 19:13:03 +01:00
noalias-scope-decl.ll
non-integral-pointers.ll
nonnull-attribute.ll
nonnull-select.ll
not-add.ll [InstCombine] isFreeToInvert(): constant expressions aren't free to invert (PR50370) 2021-05-17 14:58:05 +03:00
not.ll [InstCombine] add tests for logical and/or with not ops; NFC 2021-06-14 12:54:35 -04:00
nothrow.ll
nsw-inseltpoison.ll
nsw.ll
obfuscated_splat-inseltpoison.ll
obfuscated_splat.ll
object-size-opaque.ll
objsize-64.ll
objsize-address-space.ll
objsize-noverify.ll
objsize.ll Revert "[BuildLibCalls/SimplifyLibCalls] Fix attributes on created CallInst instructions." 2021-06-24 19:24:34 -07:00
odr-linkage.ll
omit-urem-of-power-of-two-or-zero-when-comparing-with-zero.ll
onehot_merge.ll [InstCombine] Support one-hot merge for logical and/or 2021-05-12 21:01:18 +02:00
opaque-ptr.ll [InstCombine] Make varargs cast transform compatible with opaque ptrs 2021-06-24 21:57:05 +02:00
opaque.ll
operand-complexity.ll
or-concat.ll
or-fcmp.ll [InstCombine] Fully disable select to and/or i1 folding 2021-05-06 09:29:52 +09:00
or-shifted-masks.ll
or-xor.ll
or.ll [InstCombine] Fully disable select to and/or i1 folding 2021-05-06 09:29:52 +09:00
oss_fuzz_32759.ll [InstCombine] Fix out-of-bounds ashr(shl) optimization 2021-04-02 13:45:11 +02: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 Reapply [ConstantFold] Fold more operations to poison 2021-05-13 16:04:12 +02:00
partally-redundant-left-shift-input-masking-after-truncation-variant-b.ll Reapply [ConstantFold] Fold more operations to poison 2021-05-13 16:04:12 +02:00
partally-redundant-left-shift-input-masking-after-truncation-variant-c.ll Reapply [ConstantFold] Fold more operations to poison 2021-05-13 16:04:12 +02:00
partally-redundant-left-shift-input-masking-after-truncation-variant-d.ll Reapply [ConstantFold] Fold more operations to poison 2021-05-13 16:04:12 +02:00
partally-redundant-left-shift-input-masking-after-truncation-variant-e.ll Reapply [ConstantFold] Fold more operations to poison 2021-05-13 16:04:12 +02:00
partally-redundant-left-shift-input-masking-variant-a.ll Reapply [ConstantFold] Fold more operations to poison 2021-05-13 16:04:12 +02:00
partally-redundant-left-shift-input-masking-variant-b.ll Reapply [ConstantFold] Fold more operations to poison 2021-05-13 16:04:12 +02:00
partally-redundant-left-shift-input-masking-variant-c.ll Reapply [ConstantFold] Fold more operations to poison 2021-05-13 16:04:12 +02:00
partally-redundant-left-shift-input-masking-variant-d.ll Reapply [ConstantFold] Fold more operations to poison 2021-05-13 16:04:12 +02:00
partally-redundant-left-shift-input-masking-variant-e.ll Reapply [ConstantFold] Fold more operations to poison 2021-05-13 16:04:12 +02:00
phi-aware-aggregate-reconstruction.ll
phi-cse.ll
phi-equal-incoming-pointers.ll
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-of-extractvalues.ll
phi-of-insertvalues.ll
phi-pointercasts.ll
phi-preserve-ir-flags.ll
phi-select-constant.ll
phi-shifts.ll
phi-timeout.ll
phi.ll
pow_fp_int16.ll Revert "[BuildLibCalls/SimplifyLibCalls] Fix attributes on created CallInst instructions." 2021-06-24 19:24:34 -07:00
pow_fp_int.ll Revert "[BuildLibCalls/SimplifyLibCalls] Fix attributes on created CallInst instructions." 2021-06-24 19:24:34 -07:00
pow-0.ll
pow-1.ll
pow-2.ll
pow-3.ll
pow-4.ll Update @llvm.powi to handle different int sizes for the exponent 2021-06-17 09:38:28 +02:00
pow-cbrt.ll
pow-exp-nofastmath.ll
pow-exp.ll
pow-sqrt.ll
pr2645-0-inseltpoison.ll
pr2645-0.ll
pr2996.ll
pr12251.ll
pr12338.ll
pr14365.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
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
pr38984-inseltpoison.ll
pr38984.ll
pr39177.ll
pr39908.ll
pr41164.ll
pr43081.ll
pr43376-getFlippedStrictnessPredicateAndConstant-assert.ll
pr43893.ll
pr44242.ll
pr44245.ll [InstCombine] Use poison constant to represent the result of unreachable instrs 2021-06-21 09:58:44 +09:00
pr44541.ll
pr44552.ll
pr44835.ll
pr46680.ll
pr49688.ll [InstCombine] Conditionally fold select i1 into and/or 2021-04-04 14:11:28 +09:00
PR30597.ll [NFC][InstCombine] Autogenerate some checklines being affected by upcoming change 2021-03-23 00:51:18 +03:00
PR37526.ll
prefetch-load.ll
preserve-sminmax.ll
preserved-analyses.ll
prevent-cmp-merge.ll [InstCombine] Fully disable select to and/or i1 folding 2021-05-06 09:29:52 +09:00
printf-1.ll Revert "[BuildLibCalls/SimplifyLibCalls] Fix attributes on created CallInst instructions." 2021-06-24 19:24:34 -07:00
printf-2.ll Revert "[BuildLibCalls/SimplifyLibCalls] Fix attributes on created CallInst instructions." 2021-06-24 19:24:34 -07:00
printf-3.ll Revert "[BuildLibCalls/SimplifyLibCalls] Fix attributes on created CallInst instructions." 2021-06-24 19:24:34 -07:00
ptr-int-cast.ll
ptr-int-ptr-icmp.ll [InstCombine] Fold IntToPtr/PtrToInt to bitcast 2021-07-18 23:13:25 +02:00
pull-binop-through-shift.ll
pull-conditional-binop-through-shift.ll
puts-1.ll Revert "[BuildLibCalls/SimplifyLibCalls] Fix attributes on created CallInst instructions." 2021-06-24 19:24:34 -07:00
range-check.ll [InstCombine] Fully disable select to and/or i1 folding 2021-05-06 09:29:52 +09:00
README.txt
readnone-maythrow.ll
realloc.ll Revert "[BuildLibCalls/SimplifyLibCalls] Fix attributes on created CallInst instructions." 2021-06-24 19:24:34 -07:00
reassociate-nuw.ll
recurrence.ll
reduction-add-sext-zext-i1.ll [Instcombine]Transform reduction+(sext/zext(<n x i1>) to <n x im>) to [-]zext/trunc(ctpop(bitcast <n x i1> to in)) to im. 2021-07-08 07:56:41 -07:00
reduction-shufflevector.ll [INSTCOMBINE] Transform reduction(shuffle V, poison, unique_mask) to reduction(V). 2021-06-29 10:02:38 -07:00
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-pr49778.ll [InstCombine] dropRedundantMaskingOfLeftShiftInput(): check that adding shift amounts doesn't overflow (PR49778) 2021-04-04 23:26:41 +03:00
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 [InstCombine] add tests for srem-by-2; NFC 2021-04-20 17:10:16 -04:00
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 [InstCombine] restrict funnel shift match to avoid miscompile 2021-05-18 13:32:07 -04:00
sadd_sat.ll
sadd-with-overflow.ll
saddo.ll [instcombine] Fold overflow check using overflow intrinsic to comparison 2021-07-01 09:41:55 -07:00
salvage-dbg-declare.ll
saturating-add-sub.ll [InstCombine] X - usub.sat(X, Y) => umin(X, Y) 2021-04-23 21:13:07 +02:00
scalable-bitcast-inseltpoison.ll [InstCombine]Generalise regression tests for sve 2021-03-26 12:04:50 +00:00
scalable-bitcast.ll [InstCombine]Generalise regression tests for sve 2021-03-26 12:04:50 +00:00
scalable-cast-of-alloc.ll [SVE] Remove checks for warnings in scalable-vector tests. 2021-04-07 15:59:32 +01:00
scalable-const-fp-splat.ll [SVE] Remove checks for warnings in scalable-vector tests. 2021-04-07 15:59:32 +01:00
scalable-select.ll [Constant] Allow ConstantAggregateZero a scalable element count 2021-05-10 13:51:53 +01:00
scalable-trunc.ll [SVE] Remove checks for warnings in scalable-vector tests. 2021-04-07 15:59:32 +01:00
scalarization-inseltpoison.ll
scalarization.ll
sdiv-1.ll
sdiv-2.ll
sdiv-canonicalize.ll
sdiv-exact-by-negative-power-of-two.ll
sdiv-exact-by-power-of-two.ll
sdiv-guard.ll
sdiv-of-non-negative-by-negative-power-of-two.ll
select_arithmetic.ll
select_meta.ll
select-2.ll
select-and-or.ll [InstCombine] avoid infinite loops with select folds of constant expressions 2021-06-20 09:46:25 -04:00
select-binop-cmp.ll [InstSimplify] Add more poison folding optimizations 2021-06-23 20:25:24 +09:00
select-bitext-bitwise-ops.ll
select-bitext.ll [InstCombine] Fully disable select to and/or i1 folding 2021-05-06 09:29:52 +09:00
select-cmp-br.ll [InstCombine] Fully disable select to and/or i1 folding 2021-05-06 09:29:52 +09:00
select-cmp-cttz-ctlz.ll
select-cmpxchg.ll
select-crash-noverify.ll
select-crash.ll
select-ctlz-to-cttz.ll [InstCombine] Regenerate select-ctlz-to-cttz.ll tests 2021-04-12 16:05:34 +01:00
select-extractelement-inseltpoison.ll Revert "[NFC] remove explicit default value for strboolattr attribute in tests" 2021-05-24 19:43:40 +02:00
select-extractelement.ll Revert "[NFC] remove explicit default value for strboolattr attribute in tests" 2021-05-24 19:43:40 +02:00
select-gep.ll [InstCombine] Fold (gep (oneuse(gep Ptr, Idx0)), Idx1) -> (gep Ptr, (add Idx0, Idx1)) (PR51069) 2021-07-22 10:58:51 +01:00
select-icmp-and.ll
select-imm-canon.ll
select-load-call.ll
select-masked_load.ll [InstCombine] Fixed select + masked load fold failure 2021-08-06 12:41:06 -07:00
select-min-max.ll [InstCombine] avoid infinite loops from min/max canonicalization 2021-08-16 11:35:38 -07:00
select-obo-peo-ops.ll
select-of-bittest.ll Reapply [ConstantFold] Fold more operations to poison 2021-05-13 16:04:12 +02:00
select-pr39595.ll
select-safe-bool-transforms.ll [InstCombine] fix miscompile from vector select substitution 2021-05-30 07:11:58 -04:00
select-safe-impliedcond-transforms.ll [InstCombine] Fully disable select to and/or i1 folding 2021-05-06 09:29:52 +09:00
select-safe-transforms.ll [InstCombine] Fully disable select to and/or i1 folding 2021-05-06 09:29:52 +09:00
select-select.ll
select-with-bitwise-ops.ll
select.ll [tests] Stablize tests for possible change in deref semantics 2021-07-14 13:05:43 -07:00
set-lowbits-mask-canonicalize.ll
set.ll
setcc-strength-reduce.ll
sext-of-trunc-nsw.ll [InstCombine] eliminate sext and/or trunc if value has enough signbits 2021-06-03 13:58:19 -04:00
sext.ll
shift-add-inseltpoison.ll Reapply [ConstantFold] Fold more operations to poison 2021-05-13 16:04:12 +02:00
shift-add.ll Reapply [ConstantFold] Fold more operations to poison 2021-05-13 16:04:12 +02: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 [InstCombine] Fold (gep (oneuse(gep Ptr, Idx0)), Idx1) -> (gep Ptr, (add Idx0, Idx1)) (PR51069) 2021-07-22 10:58:51 +01:00
shl-and-negC-icmpeq-zero.ll
shl-and-signbit-icmpeq-zero.ll
shl-demand.ll [InstCombine] drop poison flags when simplifying 'shl' based on demanded bits 2021-05-14 13:54:13 -04:00
shl-factor.ll
shl-sub.ll
shl-unsigned-cmp-const.ll
should-change-type.ll
shuffle_select-inseltpoison.ll
shuffle_select.ll
shuffle-cast-dist.ll [InstCombine] canonicalize cast before unary shuffle 2021-05-25 08:43:09 -04:00
shuffle-cast-inseltpoison.ll
shuffle-cast.ll
shuffle-select-narrow-inseltpoison.ll
shuffle-select-narrow.ll
shufflevec-bitcast-inseltpoison.ll [InstCombine] canonicalize cast before unary shuffle 2021-05-25 08:43:09 -04:00
shufflevec-bitcast.ll [InstCombine] canonicalize cast before unary shuffle 2021-05-25 08:43:09 -04:00
shufflevec-constant-inseltpoison.ll
shufflevec-constant.ll
shufflevector-div-rem-inseltpoison.ll
shufflevector-div-rem.ll
sign-bit-test-via-right-shifting-all-other-bits.ll
sign-test-and-or.ll [InstCombine] Fully disable select to and/or i1 folding 2021-05-06 09:29:52 +09:00
signbit-lshr-and-icmpeq-zero.ll
signbit-shl-and-icmpeq-zero.ll
signed-comparison.ll
signed-mul-lack-of-overflow-check-via-mul-sdiv.ll Revert "[InstCombine] Recognize ((x * y) s/ x) !=/== y as an signed multiplication overflow check (PR48769)" 2021-04-20 15:53:34 -07:00
signed-mul-overflow-check-via-mul-sdiv.ll Revert "[InstCombine] Recognize ((x * y) s/ x) !=/== y as an signed multiplication overflow check (PR48769)" 2021-04-20 15:53:34 -07:00
signed-truncation-check.ll [InstCombine] Fully disable select to and/or i1 folding 2021-05-06 09:29:52 +09:00
signext.ll
signmask-of-sext-vs-of-shl-of-zext.ll
simple_phi_condition.ll
simplify-demanded-bits-pointer.ll
simplify-libcalls-erased.ll
simplify-libcalls.ll [Analysis] improve function signature checking for snprintf 2021-08-02 22:58:39 -07:00
sincospi.ll
sink_instruction.ll
sink_to_unreachable.ll
sink-alloca.ll
sink-into-catchswitch.ll
sink-not-into-another-hand-of-and.ll
sink-not-into-another-hand-of-or.ll
sitofp.ll
smax-icmp.ll
smin-icmp.ll
smulo.ll [instcombine] Fold overflow check using overflow intrinsic to comparison 2021-07-01 09:41:55 -07:00
snprintf.ll
sprintf-1.ll Revert "[BuildLibCalls/SimplifyLibCalls] Fix attributes on created CallInst instructions." 2021-06-24 19:24:34 -07:00
sprintf-void.ll
sqrt-nofast.ll
sqrt.ll Revert "[BuildLibCalls/SimplifyLibCalls] Fix attributes on created CallInst instructions." 2021-06-24 19:24:34 -07:00
srem1.ll
srem-canonicalize.ll
srem-simplify-bug.ll
srem-via-sdiv-mul-sub.ll
ssub-with-overflow.ll
ssubo.ll [instcombine] Fold overflow check using overflow intrinsic to comparison 2021-07-01 09:41:55 -07:00
stack-overalign.ll
stacksave-debuginfo.ll
stacksaverestore.ll Reapply "OpaquePtr: Turn inalloca into a type attribute" 2021-03-29 08:55:30 -04:00
statepoint-cleanup.ll
statepoint-iter.ll
statepoint.ll
stdio-custom-dl.ll
store-load-unaliased-gep.ll
store.ll [InstCombine] Use poison constant to represent the result of unreachable instrs 2021-06-21 09:58:44 +09:00
storemerge-dbg.ll
stpcpy_chk-1.ll Revert "[BuildLibCalls/SimplifyLibCalls] Fix attributes on created CallInst instructions." 2021-06-24 19:24:34 -07:00
stpcpy_chk-2.ll
stpcpy-1.ll [SimplifyLibCalls] avoid crash on pointer math 2021-07-26 11:08:45 -04:00
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 opt to use CreateLogicalAnd 2021-06-26 05:59:35 +09:00
strchr-2.ll
strcmp-1.ll Revert "[BuildLibCalls/SimplifyLibCalls] Fix attributes on created CallInst instructions." 2021-06-24 19:24:34 -07:00
strcmp-2.ll
strcmp-memcmp.ll [tests] Stablize tests for possible change in deref semantics 2021-07-14 13:05:43 -07:00
strcpy_chk-1.ll Revert "[BuildLibCalls/SimplifyLibCalls] Fix attributes on created CallInst instructions." 2021-06-24 19:24:34 -07:00
strcpy_chk-2.ll
strcpy_chk-64.ll
strcpy-1.ll Revert "[BuildLibCalls/SimplifyLibCalls] Fix attributes on created CallInst instructions." 2021-06-24 19:24:34 -07:00
strcpy-2.ll
strcpy-nonzero-as.ll
strcspn-1.ll Revert "[BuildLibCalls/SimplifyLibCalls] Fix attributes on created CallInst instructions." 2021-06-24 19:24:34 -07:00
strcspn-2.ll
strict-sub-underflow-check-to-comparison-of-sub-operands.ll
strlen_chk.ll
strlen-1.ll
strlen-2.ll
strncat-1.ll
strncat-2.ll Revert "[BuildLibCalls/SimplifyLibCalls] Fix attributes on created CallInst instructions." 2021-06-24 19:24:34 -07:00
strncat-3.ll
strncmp-1.ll
strncmp-2.ll
strncmp-wrong-datalayout.ll
strncpy_chk-1.ll Revert "[BuildLibCalls/SimplifyLibCalls] Fix attributes on created CallInst instructions." 2021-06-24 19:24:34 -07:00
strncpy_chk-2.ll
strncpy-1.ll Revert "[BuildLibCalls/SimplifyLibCalls] Fix attributes on created CallInst instructions." 2021-06-24 19:24:34 -07:00
strncpy-2.ll
strncpy-3.ll
strndup.ll Revert "[BuildLibCalls/SimplifyLibCalls] Fix attributes on created CallInst instructions." 2021-06-24 19:24:34 -07:00
strpbrk-1.ll
strpbrk-2.ll
strrchr-1.ll
strrchr-2.ll
strspn-1.ll
strstr-1.ll Revert "[BuildLibCalls/SimplifyLibCalls] Fix attributes on created CallInst instructions." 2021-06-24 19:24:34 -07:00
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
sub-ashr-or-to-icmp-select.ll [InstCombine] Fold lshr/ashr(or(neg(x),x),bw-1) --> zext/sext(icmp_ne(x,0)) (PR50816) 2021-07-13 14:44:54 +01:00
sub-from-sub.ll [InstCombine] foldAddWithConstant(): don't deal with non-immediate constants 2021-04-07 19:50:19 +03:00
sub-gep.ll
sub-lshr-or-to-icmp-select.ll [InstCombine] Fold lshr/ashr(or(neg(x),x),bw-1) --> zext/sext(icmp_ne(x,0)) (PR50816) 2021-07-13 14:44:54 +01:00
sub-minmax.ll [InstCombine] add tests for sub of umin; NFC 2021-03-24 10:54:03 -04:00
sub-not.ll
sub-of-negatible-inseltpoison.ll
sub-of-negatible.ll
sub-or-and-xor.ll
sub-xor-or-neg-and.ll
sub-xor.ll
sub.ll [InstCombine] Support negation of scalable-vector splats 2021-06-07 15:14:00 +01:00
subtract-from-one-hand-of-select.ll
subtract-of-one-hand-of-select.ll
swifterror-argument-bitcast-fold.ll
switch-constant-expr.ll
switch-truncate-crash.ll
tan-nofastmath.ll
tan.ll
tbaa-store-to-load.ll
tmp-alloca-bypass.ll [Instcombine] Disable memcpy of alloca bypass for instruction sources 2021-04-14 16:52:09 +02:00
toascii-1.ll
token.ll
trunc-binop-ext.ll
trunc-extractelement-inseltpoison.ll
trunc-extractelement.ll
trunc-inseltpoison.ll
trunc-load.ll
trunc-shift-trunc.ll
trunc.ll
type_pun-inseltpoison.ll
type_pun.ll
uadd-with-overflow.ll
uaddo2.ll [test] Add coverage for existing overflow rule with uadd.with.overflow 2021-06-25 10:45:00 -07:00
uaddo.ll
udiv_select_to_select_shift.ll
udiv-pow2-vscale-inseltpoison.ll
udiv-pow2-vscale.ll
udiv-simplify.ll [InstSimplify] icmp poison, X -> poison 2021-06-20 15:39:07 +09:00
udivrem-change-width.ll
umax-icmp.ll
umin-icmp.ll
umul-sign-check.ll [InstCombine] Fully disable select to and/or i1 folding 2021-05-06 09:29:52 +09:00
umulo.ll [instcombine] Fold overflow check using umulo to comparison 2021-06-25 10:25:45 -07:00
unavailable-debug.ll
unfold-masked-merge-with-const-mask-scalar.ll
unfold-masked-merge-with-const-mask-vector.ll
unordered-fcmp-select.ll
unpack-fca.ll
unreachable-dbg-info-modified.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 [Attributes] Remove nonnull from UB-implying attributes 2021-07-25 18:07:31 +02:00
unwind-inline-asm.ll Support unwinding from inline assembly 2021-05-13 19:13:03 +01:00
urem-simplify-bug.ll
urem-via-udiv-mul-sub.ll
usub-overflow-known-by-implied-cond.ll [InstCombine] Fully disable select to and/or i1 folding 2021-05-06 09:29:52 +09:00
usubo.ll [instcombine] Fold overflow check using overflow intrinsic to comparison 2021-07-01 09:41:55 -07:00
vararg.ll
variable-signext-of-variable-high-bit-extraction.ll
vec_demanded_elts-inseltpoison.ll [InstCombine] Fold extractelement + vector GEP with one use 2021-05-26 09:54:26 +01:00
vec_demanded_elts.ll [InstCombine] Fold extractelement + vector GEP with one use 2021-05-26 09:54:26 +01:00
vec_extract_2elts.ll
vec_extract_var_elt-inseltpoison.ll
vec_extract_var_elt.ll
vec_gep_scalar_arg-inseltpoison.ll [InstCombine] Fold extractelement + vector GEP with one use 2021-05-26 09:54:26 +01:00
vec_gep_scalar_arg.ll [InstCombine] Fold extractelement + vector GEP with one use 2021-05-26 09:54:26 +01:00
vec_phi_extract-inseltpoison.ll
vec_phi_extract.ll
vec_sext.ll
vec_shuffle-inseltpoison.ll Update InstCombine to use undef matcher instead 2021-04-18 11:05:36 +09:00
vec_shuffle.ll
vec_udiv_to_shift.ll
vec-binop-select-inseltpoison.ll
vec-binop-select.ll
vector_gep1-inseltpoison.ll
vector_gep1.ll
vector_gep2.ll
vector_insertelt_shuffle-inseltpoison.ll
vector_insertelt_shuffle.ll
vector-casts-inseltpoison.ll
vector-casts.ll [InstCombine] canonicalize cast before unary shuffle 2021-05-25 08:43:09 -04:00
vector-concat-binop-inseltpoison.ll
vector-concat-binop.ll
vector-logical-reductions.ll
vector-mul.ll
vector-reductions.ll
vector-type.ll
vector-udiv.ll
vector-urem.ll
vector-xor.ll
volatile_load_cast.ll
volatile_store.ll Revert "Revert "Temporarily do not drop volatile stores before unreachable"" 2021-07-09 11:44:34 -04:00
vscale_alloca.ll
vscale_cmp.ll
vscale_extractelement-inseltpoison.ll [InstSimplify][test] move tests that don't require InstCombine; NFC 2021-06-24 13:13:34 -04:00
vscale_extractelement.ll [InstSimplify][test] move tests that don't require InstCombine; NFC 2021-06-24 13:13:34 -04:00
vscale_gep.ll
vscale_insertelement-inseltpoison.ll
vscale_insertelement.ll
wcslen-1.ll
wcslen-2.ll
wcslen-3.ll
wcslen-4.ll
weak-symbols.ll
widenable-conditions.ll [InstCombine] Fully disable select to and/or i1 folding 2021-05-06 09:29:52 +09:00
win-math.ll
with_overflow.ll
xor2.ll
xor-icmps.ll
xor-of-icmps-with-extra-uses.ll
xor-undef.ll
xor.ll
zero-point-zero-add.ll
zeroext-and-reduce.ll
zext-bool-add-sub.ll
zext-ctlz-trunc-to-ctlz-add.ll [InstCombine] Eliminate casts to optimize ctlz operation 2021-06-23 11:19:12 -04:00
zext-fold.ll
zext-or-icmp.ll [InstCombine] Fully disable select to and/or i1 folding 2021-05-06 09:29:52 +09:00
zext-phi.ll
zext.ll [InstCombine] Don't transform code if DoTransform is false 2021-06-18 18:01:34 -07: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.