llvm-6502/test/Transforms/InstCombine
Akira Hatanaka 5506e22865 [InstCombine] Do not insert a GEP instruction before a landingpad instruction.
InstCombiner::visitGetElementPtrInst was using getFirstNonPHI to compute the
insertion point, which caused the verifier to complain when a GEP was inserted
before a landingpad instruction. This commit fixes it to use getFirstInsertionPt
instead.

rdar://problem/19394964


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@229619 91177308-0d34-0410-b5e6-96231b3b80d8
2015-02-18 03:30:11 +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
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-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
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
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
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-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
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
align-addr.ll
align-attr.ll
align-external.ll
alloca.ll
and2.ll
and-compare.ll
and-fcmp.ll
and-not-or.ll
and-or-and.ll
and-or-not.ll
and-or.ll
and-xor-merge.ll
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 InstCombine: Bitcast call arguments from/to pointer/integer type 2015-01-06 08:41:31 +00: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-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
apint-xor1.ll
apint-xor2.ll
apint-zext1.ll
apint-zext2.ll
assume2.ll
assume-loop-align.ll
assume-redundant.ll
assume.ll Revert r228556: InstCombine: propagate nonNull through assume 2015-02-10 08:07:32 +00:00
atomic.ll
badmalloc.ll
binop-cast.ll
bit-checks.ll
bit-tracking.ll
bitcast-alias-function.ll
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
bswap.ll
call2.ll
call-cast-target-inalloca.ll
call-cast-target.ll InstCombine: Don't strip bitcasts off of callsites marked 'thunk' 2015-01-21 22:32:04 +00:00
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 [InstCombine] Fix a bug when combining icmp from ptrtoint 2015-02-13 04:51:26 +00:00
cast-call-combine.ll
cast-int-fcmp-eq-0.ll Convert fcmp with 0.0 from casted integers to icmp 2015-01-06 15:50:59 +00:00
cast-mul-select.ll
cast-set.ll
cast.ll
ceil.ll
compare-signs.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-math.ll
copysign.ll
cos-1.ll
cos-2.ll
CPP_min_max.ll
crash.ll
dce-iterate.ll
deadcode.ll
debug-line.ll IR: Move MDLocation into place 2015-01-14 22:27:36 +00:00
debuginfo.ll IR: Move MDLocation into place 2015-01-14 22:27:36 +00:00
descale-zero.ll
disable-simplify-libcalls.ll
distribute.ll
div-shift-crash.ll
div-shift.ll
div.ll
double-float-shrink-1.ll
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
fast-math.ll InstCombine: fsub nsz 0, X ==> fsub nsz -0.0, X 2014-12-31 22:14:05 +00:00
fcmp-select.ll
fcmp-special.ll
fcmp.ll Fix fcmp + fabs instcombines when using the intrinsic 2015-01-08 20:09:34 +00:00
fdiv.ll
ffs-1.ll
float-shrink-compare.ll
fmul.ll
fneg-ext.ll
fold-bin-operand.ll
fold-calls.ll
fold-fops-into-selects.ll
fold-phi.ll
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
gc.relocate.ll InstCombine: propagate deref via new addDereferenceableAttr 2015-02-14 19:37:54 +00:00
gep-addrspace.ll
gep-sext.ll [InstCombine] When canonicalizing gep indices, prefer zext when possible 2015-02-14 00:05:36 +00:00
gepgep.ll
gepphigep.ll [InstCombine] Do not insert a GEP instruction before a landingpad instruction. 2015-02-18 03:30:11 +00:00
getelementptr.ll
hoist_instr.ll
icmp-logical.ll
icmp-range.ll IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
icmp-shr.ll
icmp.ll InstCombine: Don't take A-B<0 into A<B if A-B has other uses 2015-01-14 19:26:56 +00:00
idioms.ll
insert-extract-shuffle.ll
IntPtrCast.ll
intrinsics.ll [InstCombine] Teach how to fold a select into a cttz/ctlz with the 'is_zero_undef' flag. 2015-01-27 15:58:14 +00:00
invariant.ll
invoke.ll
isascii-1.ll
isdigit-1.ll
JavaCompare.ll
known_align.ll
LandingPadClauses.ll Move EH personality type classification to Analysis/LibCallSemantics.h 2015-01-28 01:17:38 +00:00
load3.ll
load-cmp.ll
load-select.ll
load.ll [PM] Port instcombine to the new pass manager! 2015-01-24 04:19:17 +00:00
loadstore-alignment.ll
loadstore-metadata.ll [IC] Fix a bug with the instcombine canonicalizing of loads and 2015-02-13 02:30:01 +00:00
logical-select.ll
lshr-phi.ll
malloc-free-delete.ll For PR21145: recognise a builtin call to a known deallocation function even if 2015-01-15 01:00:33 +00:00
maxnum.ll
memcmp-1.ll
memcmp-2.ll
memcpy_chk-1.ll [SimplifyLibCalls] Don't confuse strcpy_chk for stpcpy_chk. 2015-01-27 21:52:16 +00:00
memcpy_chk-2.ll
memcpy-1.ll
memcpy-2.ll
memcpy-from-global.ll
memcpy-to-load.ll
memcpy.ll
memmove_chk-1.ll [SimplifyLibCalls] Don't confuse strcpy_chk for stpcpy_chk. 2015-01-27 21:52:16 +00:00
memmove_chk-2.ll
memmove-1.ll
memmove-2.ll
memmove.ll
memset2.ll
memset_chk-1.ll [SimplifyLibCalls] Don't confuse strcpy_chk for stpcpy_chk. 2015-01-27 21:52:16 +00:00
memset_chk-2.ll
memset-1.ll
memset-2.ll
memset.ll
merge-icmp.ll
minnum.ll Fix using wrong intrinsic in test 2015-01-06 23:00:33 +00:00
mul-masked-bits.ll
mul.ll InstCombine: match can find ConstantExprs, don't assume we have a Value 2015-01-04 07:36:02 +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
no-negzero.ll
not-fcmp.ll
not.ll InstCombine: Allow folding of xor into icmp by changing the predicate for vectors 2015-02-12 20:26:46 +00:00
nothrow.ll
nsw.ll
obfuscated_splat.ll
objsize-64.ll
objsize-address-space.ll
objsize.ll
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
osx-names.ll
overflow-mul.ll
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
pr17827.ll
pr19420.ll
pr20059.ll
pr20079.ll
pr21199.ll
pr21210.ll
pr21651.ll
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
range-check.ll
README.txt
rem.ll
round.ll
sdiv-1.ll
sdiv-2.ll
select-2.ll
select-cmp-br.ll
select-cmp-cttz-ctlz.ll [InstCombine] Fix regression introduced at r227197. 2015-02-13 16:33:34 +00:00
select-crash.ll
select-extractelement.ll
select-load-call.ll
select-select.ll
select.ll InstCombine: Combine select sequences into a single select 2015-02-06 17:49:36 +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
simplify-demanded-bits-pointer.ll
simplify-libcalls.ll
sincospi.ll
sink_instruction.ll
sitofp.ll InstCombine: fold more cases of (fp_to_u/sint (u/sint_to_fp val)) 2015-02-16 21:47:54 +00:00
sprintf-1.ll
sqrt.ll
srem1.ll
srem-simplify-bug.ll
srem.ll
stack-overalign.ll
stacksaverestore.ll
statepoint.ll Carry facts about nullness and undef across GC relocation 2014-12-29 23:27:30 +00:00
store.ll IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
stpcpy_chk-1.ll [SimplifyLibCalls] Don't confuse strcpy_chk for stpcpy_chk. 2015-01-27 21:52:16 +00:00
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
strcmp-2.ll
strcpy_chk-1.ll [SimplifyLibCalls] Don't confuse strcpy_chk for stpcpy_chk. 2015-01-27 21:52:16 +00:00
strcpy_chk-2.ll
strcpy_chk-64.ll
strcpy-1.ll
strcpy-2.ll
strcspn-1.ll
strcspn-2.ll
strlen-1.ll
strlen-2.ll
strncat-1.ll
strncat-2.ll
strncat-3.ll
strncmp-1.ll
strncmp-2.ll
strncpy_chk-1.ll [SimplifyLibCalls] Don't confuse strcpy_chk for stpcpy_chk. 2015-01-27 21:52:16 +00:00
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 [canonicalize] Teach InstCombine to canonicalize loads which are only 2015-01-22 05:08:12 +00:00
sub-xor.ll
sub.ll
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
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
vector_gep1.ll
vector_gep2.ll
vector-casts.ll
vector-mul.ll
vector-srem.ll
vector-type.ll
volatile_store.ll
vsx-unaligned.ll
weak-symbols.ll
win-math.ll
x86-crc32-demanded.ll
xor2.ll
xor-undef.ll
xor.ll
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.