llvm-6502/test/Transforms/InstCombine
Philip Reames 456b7b602c Loading from null is valid outside of addrspace 0
This patches fixes a miscompile where we were assuming that loading from null is undefined and thus we could assume it doesn't happen.  This transform is perfectly legal in address space 0, but is not neccessarily legal in other address spaces.

We really should introduce a hook to control this property on a per target per address space basis.  We may be loosing valuable optimizations in some address spaces by being too conservative.

Original patch by Thomas P Raoux (submitted to llvm-commits), tests and formatting fixes by me.




git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@224961 91177308-0d34-0410-b5e6-96231b3b80d8
2014-12-29 22:46:21 +00:00
..
2002-03-11-InstCombineHang.ll
2002-05-14-SubFailure.ll
2002-08-02-CastTest.ll
2002-12-05-MissedConstProp.ll
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-06-16-SetCCOrSetCCMiscompile.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-14-FcmpSelf.ll
2007-01-18-VectorInfLoop.ll
2007-01-27-AndICmp.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 Use "weak alias" instead of "alias weak" 2014-07-30 22:51:54 +00:00
2007-09-17-AliasConstFold2.ll Use "weak alias" instead of "alias weak" 2014-07-30 22:51:54 +00:00
2007-10-10-EliminateMemCpy.ll Delete -std-compile-opts. 2014-10-16 20:00:02 +00:00
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-22-IcmpCrash.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-13-NoBitCastAttributes.ll
2008-01-14-VarArgTrampoline.ll
2008-01-21-MismatchedCastAndCompare.ll
2008-01-21-MulTrunc.ll
2008-01-27-FloatSelect.ll
2008-01-29-AddICmp.ll
2008-02-13-MulURem.ll
2008-02-16-SDivOverflow2.ll
2008-02-23-MulSub.ll
2008-02-28-OrFCmpCrash.ll
2008-03-13-IntToPtr.ll
2008-04-22-ByValBitcast.ll
2008-04-28-VolatileStore.ll
2008-04-29-VolatileLoadDontMerge.ll
2008-04-29-VolatileLoadMerge.ll
2008-05-08-LiveStoreDelete.ll
2008-05-08-StrLenSink.ll
2008-05-09-SinkOfInvoke.ll
2008-05-17-InfLoop.ll
2008-05-18-FoldIntToPtr.ll
2008-05-22-IDivVector.ll
2008-05-22-NegValVector.ll
2008-05-23-CompareFold.ll Convert test to FileCheck and use CHECK-LABEL 2014-11-24 23:03:17 +00:00
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-AndICmp.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-10-ICmpBinOp.ll
2008-07-11-RemAnd.ll
2008-07-13-DivZero.ll
2008-07-16-fsub.ll
2008-07-16-sse2_storel_dq.ll
2008-08-05-And.ll
2008-08-17-ICmpXorSignbit.ll
2008-09-02-VectorCrash.ll
2008-09-29-FoldingOr.ll
2008-10-11-DivCompareFold.ll
2008-10-23-ConstFoldWithoutMask.ll
2008-11-01-SRemDemandedBits.ll
2008-11-08-FCmp.ll Convert test to FileCheck and use CHECK-LABEL 2014-11-24 23:03:17 +00:00
2008-11-20-DivMulRem.ll
2008-11-27-IDivVector.ll
2008-11-27-MultiplyIntVec.ll
2008-11-27-UDivNegative.ll
2008-12-17-SRemNegConstVec.ll
2009-01-05-i128-crash.ll
2009-01-08-AlignAlloca.ll
2009-01-16-PointerAddrSpace.ll
2009-01-19-fmod-constant-float-specials.ll
2009-01-19-fmod-constant-float.ll
2009-01-24-EmptyStruct.ll
2009-01-31-InfIterate.ll
2009-01-31-Pressure.ll
2009-02-04-FPBitcast.ll
2009-02-11-NotInitialized.ll
2009-02-20-InstCombine-SROA.ll
2009-02-21-LoadCST.ll
2009-02-25-CrashZeroSizeArray.ll
2009-03-18-vector-ashr-crash.ll
2009-03-20-AShrOverShift.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 IR: Fold away compares between GV GEPs and GVs 2014-07-04 22:05:26 +00:00
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 [InstCombine] Change LLVM To canonicalize toward the value type being 2014-11-25 10:09:51 +00:00
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-23-Neon-Intrinsics.ll
2012-04-24-vselect.ll
2012-04-30-SRem.ll
2012-05-27-Negative-Shift-Crash.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-09-24-MemcpyFromGlobalCrash.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
add2.ll IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
add3.ll
add-shrink.ll
add-sitofp.ll
add.ll
addnegneg.ll Removed extra whitespace. (Testing commit access). NFC. 2014-12-01 09:27:46 +00:00
AddOverFlow.ll IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
addrspacecast.ll
adjust-for-sminmax.ll
alias-recursion.ll [ValueTracking] Move GlobalAlias handling to be after the max depth check in computeKnownBits() 2014-12-23 11:33:41 +00:00
align-2d-gep.ll Make instsimplify's analysis of icmp eq/ne use computeKnownBits to determine whether the icmp is always true or false. Patch by Suyog Sarda! 2014-06-19 03:35:49 +00:00
align-addr.ll
align-attr.ll Make use of the align parameter attribute for all pointer arguments 2014-07-22 16:58:55 +00:00
align-external.ll
alloca.ll
and2.ll InstCombine: Turn (x != 0 & x <u C) into the canonical range check form (x-1 <u C-1) 2014-10-12 14:02:34 +00:00
and-compare.ll Use FileCheck instead of grep. Change by Ankur Garg. 2014-11-27 11:22:49 +00:00
and-fcmp.ll
and-not-or.ll
and-or-and.ll
and-or-not.ll
and-or.ll
and-xor-merge.ll Use FileCheck instead of grep. Change by Ankur Garg. 2014-11-27 11:22:49 +00:00
and-xor-or.ll
and.ll
apint-add1.ll
apint-add2.ll
apint-and1.ll
apint-and2.ll
apint-and-compare.ll
apint-and-or-and.ll
apint-and-xor-merge.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-or1.ll
apint-or2.ll
apint-rem1.ll
apint-rem2.ll
apint-select.ll
apint-shift-simplify.ll
apint-shift.ll
apint-shl-trunc.ll
apint-sub.ll InstCombine: Fix miscompile in X % -Y -> X % Y transform 2014-10-13 22:37:51 +00:00
apint-xor1.ll
apint-xor2.ll
apint-zext1.ll
apint-zext2.ll
assume2.ll Add additional patterns for @llvm.assume in ValueTracking 2014-09-07 19:21:07 +00:00
assume-loop-align.ll Make use of @llvm.assume in ValueTracking (computeKnownBits, etc.) 2014-09-07 18:57:58 +00:00
assume-redundant.ll [InstCombine] Remove redundant @llvm.assume intrinsics 2014-10-04 21:27:06 +00:00
assume.ll Canonicalize an assume(load != null) into !nonnull metadata 2014-11-11 23:33:19 +00:00
atomic.ll [InstCombine] Do an about-face on how LLVM canonicalizes (cast (load 2014-10-18 06:36:22 +00:00
badmalloc.ll
binop-cast.ll
bit-checks.ll
bit-tracking.ll
bitcast-alias-function.ll [InstCombine] Change LLVM To canonicalize toward the value type being 2014-11-25 10:09:51 +00:00
bitcast-bigendian.ll
bitcast-sext-vector.ll
bitcast-store.ll IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
bitcast-vec-canon.ll
bitcast-vec-uniform.ll
bitcast-vector-fold.ll
bitcast.ll
bitcount.ll
bittest.ll
blend_x86.ll
bswap-fold.ll [InstCombine] Minor optimization for bswap with binary ops 2014-12-04 09:44:01 +00:00
bswap.ll
call2.ll
call-cast-target-inalloca.ll
call-cast-target.ll
call-intrinsics.ll
call.ll
canonicalize_branch.ll IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
cast_ptr.ll
cast-call-combine.ll
cast-mul-select.ll
cast-set.ll
cast.ll Add a test case for argument type coercion in an invoke of a vararg function 2014-12-04 19:13:45 +00:00
ceil.ll
compare-signs.ll
constant-expr-datalayout.ll
constant-fold-address-space-pointer.ll [InstCombine] Do an about-face on how LLVM canonicalizes (cast (load 2014-10-18 06:36:22 +00:00
constant-fold-alias.ll Move previously dead code to handle computing the known bits of an alias 2014-10-19 09:06:56 +00:00
constant-fold-compare.ll
constant-fold-gep.ll
constant-fold-math.ll Make the sqrt intrinsic return undef for a negative input. 2014-10-01 20:36:33 +00:00
copysign.ll
cos-1.ll
cos-2.ll
CPP_min_max.ll
crash.ll
dce-iterate.ll
deadcode.ll
debug-line.ll IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
debuginfo.ll IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
descale-zero.ll [InstCombine] Do an about-face on how LLVM canonicalizes (cast (load 2014-10-18 06:36:22 +00:00
disable-simplify-libcalls.ll
distribute.ll This patch removed duplicate code for matching patterns 2014-06-26 08:57:33 +00:00
div-shift-crash.ll
div-shift.ll
div.ll InstCombine: Propagate exact for (sdiv X, Pow2) -> (udiv X, Pow2) 2014-11-22 20:00:41 +00:00
double-float-shrink-1.ll Handle sqrt() shrinking in SimplifyLibCalls like any other call 2014-10-23 21:52:45 +00:00
double-float-shrink-2.ll
enforce-known-alignment.ll
err-rep-cold.ll
exact.ll
exp2-1.ll
exp2-2.ll
ExtractCast.ll
extractvalue.ll
fabs.ll Optimize away fabs() calls when input is squared (known positive). 2014-10-14 20:43:11 +00:00
fast-math.ll use -0.0 when creating an fneg instruction 2014-12-19 16:44:08 +00:00
fcmp-select.ll
fcmp-special.ll
fcmp.ll
fdiv.ll
ffs-1.ll
float-shrink-compare.ll [SimplifyLibCalls] Improve double->float shrinking to consider constants 2014-12-03 21:46:33 +00:00
fmul.ll Remove unused function attribute params. 2014-10-02 21:12:04 +00:00
fneg-ext.ll
fold-bin-operand.ll
fold-calls.ll
fold-fops-into-selects.ll
fold-phi.ll Minimize test case further 2014-11-04 05:17:58 +00:00
fold-sqrt-sqrtf.ll
fold-vector-select.ll
fold-vector-zero.ll
fp-ret-bitcast.ll
fpcast.ll Fix another infinite loop in InstCombine 2014-12-12 04:34:07 +00:00
fpextend_x86.ll
fpextend.ll
fprintf-1.ll
fputs-1.ll
fsub.ll
fwrite-1.ll
gep-addrspace.ll
gepgep.ll
gepphigep.ll
getelementptr.ll [InstCombine] Change LLVM To canonicalize toward the value type being 2014-11-25 10:09:51 +00:00
hoist_instr.ll
icmp-logical.ll InstCombine: Fold away tautological masked compares 2014-11-18 09:31:41 +00:00
icmp-range.ll IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
icmp-shr.ll InstCombine: Simplify FoldICmpCstShrCst 2014-10-21 19:51:55 +00:00
icmp.ll InstCombine: Rely on cmpxchg's return code when it's strong 2014-11-06 23:23:30 +00:00
idioms.ll
insert-extract-shuffle.ll
IntPtrCast.ll
intrinsics.ll InstCombine: Infer nuw for multiplies 2014-12-26 09:50:35 +00:00
invariant.ll
invoke.ll
isascii-1.ll
isdigit-1.ll
JavaCompare.ll
known_align.ll
LandingPadClauses.ll
load3.ll
load-cmp.ll
load-select.ll
load.ll Fix a miscompile introduced in r220178. 2014-10-20 10:03:01 +00:00
loadstore-alignment.ll Teach computeKnownBits to look through addrspacecast. 2014-07-15 01:55:03 +00:00
loadstore-metadata.ll IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
logical-select.ll
lshr-phi.ll
malloc-free-delete.ll PR21145: Teach LLVM about C++14 sized deallocation functions. 2014-10-03 20:17:06 +00:00
maxnum.ll Add minnum / maxnum intrinsics 2014-10-21 23:00:20 +00:00
memcmp-1.ll InstCombine: Annotate sub with nsw when we prove it's safe 2014-08-19 23:36:30 +00:00
memcmp-2.ll
memcpy_chk-1.ll
memcpy_chk-2.ll
memcpy-1.ll
memcpy-2.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
minnum.ll Add minnum / maxnum intrinsics 2014-10-21 23:00:20 +00:00
mul-masked-bits.ll
mul.ll InstCombine: Infer nuw for multiplies 2014-12-26 09:50:35 +00:00
multi-size-address-space-pointer.ll
multi-use-or.ll
narrow-switch.ll Reapply: [InstCombine] Fix visitSwitchInst to use right operand types for sub cstexpr 2014-12-19 17:12:35 +00:00
narrow.ll
neon-intrinsics.ll
no_cgscc_assert.ll CGSCC should not treat intrinsic calls like function calls (PR21403) 2014-11-12 18:25:47 +00:00
no-negzero.ll
not-fcmp.ll Use FileCheck instead of grep. Change by Sonam. 2014-11-27 10:57:24 +00:00
not.ll Use FileCheck instead of grep. Change by Sonam. 2014-11-27 10:57:24 +00:00
nothrow.ll
nsw.ll
obfuscated_splat.ll
objsize-64.ll
objsize-address-space.ll Use "weak alias" instead of "alias weak" 2014-07-30 22:51:54 +00:00
objsize.ll Use "weak alias" instead of "alias weak" 2014-07-30 22:51:54 +00:00
odr-linkage.ll
onehot_merge.ll
or-fcmp.ll
or-to-xor.ll
or-xor.ll Removal Of Duplicate Test Cases and Addition Of Missing Check Statements 2014-12-09 10:46:38 +00:00
or.ll InstCombine: FoldOrOfICmps harder 2014-11-28 19:58:29 +00:00
osx-names.ll
overflow-mul.ll InstCombine: Don't assume that m_ZExt matches an Instruction 2014-11-01 23:46:05 +00:00
overflow.ll
OverlappingInsertvalues.ll
phi-merge-gep.ll
phi-select-constexpr.ll
phi.ll
pow-1.ll
pow-2.ll
pow-3.ll
pr2645-0.ll
pr2645-1.ll
pr2996.ll
pr8547.ll
pr12251.ll IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
pr12338.ll [InstCombine] Re-commit of r218721 (Optimize icmp-select-icmp sequence) 2014-11-21 23:36:44 +00:00
pr17827.ll
pr19420.ll
pr20059.ll removed duplicate testcase 2014-07-09 17:49:58 +00:00
pr20079.ll IR: Fold away compares between GV GEPs and GVs 2014-07-04 22:05:26 +00:00
pr21199.ll [InstCombine] Re-commit of r218721 (Optimize icmp-select-icmp sequence) 2014-11-21 23:36:44 +00:00
pr21210.ll [InstCombine] Re-commit of r218721 (Optimize icmp-select-icmp sequence) 2014-11-21 23:36:44 +00:00
pr21651.ll InstCombine: Don't assume DataLayout is always available 2014-11-24 07:26:20 +00:00
pr21891.ll ValueTracking: Don't recurse too deeply in computeKnownBitsFromAssume 2014-12-12 23:59:29 +00:00
PR7357.ll
preserve-sminmax.ll
printf-1.ll
printf-2.ll
ptr-int-cast.ll
puts-1.ll
r600-intrinsics.ll R600/SI: Add intrinsics for various math instructions. 2014-06-19 01:19:19 +00:00
range-check.ll InstCombine: simplify signed range checks 2014-12-03 10:39:15 +00:00
README.txt
rem.ll
round.ll
sdiv-1.ll
sdiv-2.ll
select-2.ll
select-cmp-br.ll [InstCombine] Re-commit of r218721 (Optimize icmp-select-icmp sequence) 2014-11-21 23:36:44 +00:00
select-crash.ll
select-extractelement.ll
select-load-call.ll
select-select.ll
select.ll Loading from null is valid outside of addrspace 0 2014-12-29 22:46:21 +00:00
set.ll
setcc-strength-reduce.ll
sext.ll
shift-sra.ll
shift.ll ConstantFold, InstSimplify: undef >>a x can be either -1 or 0, choose 0 2014-12-10 21:58:15 +00:00
shufflemask-undef.ll
shufflevec-constant.ll
sign-test-and-or.ll
signed-comparison.ll
signext.ll [signext.ll] Removal Of Duplicate Test Cases 2014-12-02 05:29:47 +00:00
simplify-demanded-bits-pointer.ll
simplify-libcalls.ll
sincospi.ll
sink_instruction.ll
sitofp.ll
sprintf-1.ll
sqrt.ll
srem1.ll
srem-simplify-bug.ll
srem.ll
stack-overalign.ll
stacksaverestore.ll
store.ll IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
stpcpy_chk-1.ll
stpcpy_chk-2.ll
stpcpy-1.ll
stpcpy-2.ll
strcat-1.ll
strcat-2.ll
strcat-3.ll
strchr-1.ll
strchr-2.ll
strcmp-1.ll InstCombine: Annotate sub with nsw when we prove it's safe 2014-08-19 23:36:30 +00:00
strcmp-2.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
strlen-1.ll
strlen-2.ll
strncat-1.ll
strncat-2.ll
strncat-3.ll
strncmp-1.ll InstCombine: Annotate sub with nsw when we prove it's safe 2014-08-19 23:36:30 +00:00
strncmp-2.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.ll IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
sub-xor.ll InstCombine: Annotate sub with nsw when we prove it's safe 2014-08-19 23:36:30 +00:00
sub.ll InstCombine: Combine (X | Y) - X to (~X & Y) 2014-11-03 05:53:55 +00:00
toascii-1.ll
trunc.ll
udiv_select_to_select_shift.ll
udiv-simplify-bug-0.ll
udiv-simplify-bug-1.ll
udivrem-change-width.ll
unordered-fcmp-select.ll Bug 21610: Canonicalize min/max fcmp selects to use ordered comparisons 2014-11-24 23:15:18 +00:00
urem-simplify-bug.ll
urem.ll
vec_demanded_elts.ll [InstCombine][X86] Improved folding of calls to Intrinsic::x86_sse4a_insertqi. 2014-12-11 20:44:59 +00:00
vec_extract_2elts.ll
vec_extract_elt.ll
vec_extract_var_elt.ll
vec_insertelt.ll
vec_narrow.ll
vec_phi_extract.ll
vec_sext.ll
vec_shuffle.ll InstCombine: Don't try to reorder shuffles where the mask is a ConstantExpr. 2014-06-24 10:38:10 +00:00
vector_gep1.ll
vector_gep2.ll
vector-casts.ll
vector-mul.ll
vector-srem.ll
vector-type.ll
volatile_store.ll
vsx-unaligned.ll [PowerPC] Add vec_vsx_ld and vec_vsx_st intrinsics 2014-11-12 04:19:40 +00:00
weak-symbols.ll
win-math.ll
x86-crc32-demanded.ll
xor2.ll [InstCombine] Remove redundant test case. 2014-09-16 08:50:10 +00:00
xor-undef.ll
xor.ll Change the test case file to use FileCheck instead of grep. NFC. 2014-11-25 08:44:56 +00:00
zero-point-zero-add.ll
zeroext-and-reduce.ll
zext-bool-add-sub.ll
zext-fold.ll
zext-or-icmp.ll
zext.ll

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.