llvm-project/llvm/test/Transforms/IndVarSimplify
Max Kazantsev b2e51090a4 [IndVars] Drop "exact" flag from lshr and udiv when substituting their args
There is a transform that may replace `lshr (x+1), 1` with `lshr x, 1` in case
if it can prove that the result will be the same. However the initial instruction
might have an `exact` flag set, and it now should be dropped unless we prove
that it may hold. Incorrectly set `exact` attribute may then produce poison.

Differential Revision: https://reviews.llvm.org/D53061
Reviewed By: sanjoy

llvm-svn: 344223
2018-10-11 07:22:26 +00:00
..
AMDGPU AMDGPU: Fix some outdated datalayouts in tests 2018-09-13 11:56:28 +00:00
NVPTX
2002-09-09-PointerIndVar.ll
2003-04-16-ExprAnalysis.ll
2003-09-23-NotAtTop.ll
2003-12-10-RemoveInstrCrash.ll
2003-12-15-Crash.ll
2004-03-10-PHIInsertionBug.ll
2004-04-05-InvokeCastCrash.ll
2004-04-07-ScalarEvolutionCrash.ll
2005-02-11-InvokeCrash.ll
2005-02-17-TruncateExprCrash.ll
2005-02-26-ExitValueCompute.ll [IndVars] Un-grepify test; NFC 2016-08-03 20:53:23 +00:00
2005-06-15-InstMoveCrash.ll
2005-11-18-Crash.ll
2006-03-31-NegativeStride.ll [IndVars] Un-grepify test; NFC 2016-08-03 20:53:23 +00:00
2006-06-16-Indvar-LCSSA-Crash.ll
2006-09-20-LFTR-Crash.ll
2006-12-10-BitCast.ll
2007-01-06-TripCount.ll [IndVars] Un-grepify test; NFC 2016-08-03 20:53:23 +00:00
2007-06-06-DeleteDanglesPtr.ll
2007-11-23-BitcastCrash.ll
2008-06-15-SCEVExpanderBug.ll
2008-09-02-IVType.ll [IndVars] Un-grepify test; NFC 2016-08-03 20:53:23 +00:00
2008-10-03-CouldNotCompute.ll
2008-11-25-APFloatAssert.ll
2009-04-14-shorten_iv_vars.ll [IndVars] Un-grepify test; NFC 2016-08-03 20:53:23 +00:00
2009-04-15-shorten-iv-vars-2.ll [IndVars] Un-grepify test; NFC 2016-08-03 20:53:23 +00:00
2009-04-22-IndvarCrash.ll
2009-04-27-Floating.ll
2009-05-24-useafterfree.ll
2011-09-10-widen-nsw.ll Revert "[SCEV] Add nuw/nsw to mul ops in StrengthenNoWrapFlags" 2018-06-19 04:09:44 +00:00
2011-09-19-vectoriv.ll
2011-09-27-hoistsext.ll
2011-10-27-lftrnull.ll ConstantFold: Fold getelementptr (i32, i32* null, i64 undef) to null. 2017-05-08 17:37:29 +00:00
2011-11-01-lftrptr.ll opt: Rename -default-data-layout flag to -data-layout and make it always override the layout. 2017-02-17 17:36:52 +00:00
2011-11-15-multiexit.ll
2011-11-17-selfphi.ll
2012-07-17-lftr-undef.ll
2012-10-19-congruent-constant.ll
2014-06-21-congruent-constant.ll
ada-loops.ll [SimplifyIndVars] Eliminate redundant truncs 2018-06-19 04:48:34 +00:00
ashr-tripcount.ll [IndVars] Un-grepify test; NFC 2016-08-03 20:53:23 +00:00
avoid-i0.ll
backedge-on-min-max.ll [PM] Port IndVarSimplify to the new pass manager 2016-06-05 18:01:19 +00:00
bec-cmp.ll
canonicalize-cmp.ll Re-enable "[IndVars] Canonicalize comparisons between non-negative values and indvars" 2017-07-08 17:17:30 +00:00
casted-argument.ll
const_phi.ll
constant-fold.ll [SimplifyIndVar] Do not fail when we constant fold an IV user to ConstantPointerNull 2017-09-29 16:32:12 +00:00
crash.ll
dangling-use.ll [PPC] Remove Darwin support from POWER backend. 2018-08-28 01:18:29 +00:00
divide-pointer.ll
dont-recompute.ll [IndVars] Remove unreasonable checks in rewriteLoopExitValues 2018-09-18 04:57:18 +00:00
drop-exact.ll [IndVars] Drop "exact" flag from lshr and udiv when substituting their args 2018-10-11 07:22:26 +00:00
elim-extend.ll Extend trip count instead of truncating IV in LFTR, when legal 2016-08-11 21:31:40 +00:00
eliminate-comparison.ll Re-enable "[IndVars] Canonicalize comparisons between non-negative values and indvars" 2017-07-08 17:17:30 +00:00
eliminate-max.ll [IndVars] Un-grepify test; NFC 2016-08-03 20:53:23 +00:00
eliminate-rem.ll [SimplifyIndvar] Replace the srem used by IV if we can prove both of its operands are non-negative 2017-09-25 17:39:40 +00:00
eliminate-trunc.ll [SimplifyIndVar] Canonicalize comparisons to unsigned while eliminating truncs 2018-07-27 09:43:39 +00:00
exit_value_test2.ll [SCEV/IndVars] Always compute loop exiting values if the backedge count is 0 2017-08-01 22:37:58 +00:00
exit_value_test3.ll
exit_value_tests.ll [IndVars] Un-grepify test; NFC 2016-08-03 20:53:23 +00:00
floating-point-iv.ll
full_widening.ll [NFC] Add test on full IV widening 2018-09-05 10:10:59 +00:00
huge_muls.ll [SCEV] Make MulOpsInlineThreshold lower to avoid excessive compilation time 2017-06-21 07:28:13 +00:00
indirectbr.ll
inner-loop-by-latch-cond.ll [SCEV] Re-land: Fix isKnownPredicate 2018-03-19 06:35:30 +00:00
inner-loop.ll Re-apply [SCEV] Fix isLoopEntryGuardedByCond usage 2018-02-05 05:49:47 +00:00
interesting-invoke-use.ll
iterationCount_zext_or_trunc.ll
iv-fold.ll
iv-sext.ll
iv-widen-elim-ext.ll [SimplifyIndVar] Avoid generating truncate instructions with non-hoisted Laod operand. 2018-09-07 22:41:57 +00:00
iv-widen.ll [SimplifyIndVars] Ignore dead users 2018-06-13 02:25:32 +00:00
iv-zext.ll
lcssa-preservation.ll
lftr-address-space-pointers.ll
lftr-extend-const.ll
lftr-other-uses.ll
lftr-promote.ll [IndVars] Un-grepify test; NFC 2016-08-03 20:53:23 +00:00
lftr-reuse.ll [SimplifyIndVars] Ignore dead users 2018-06-13 02:25:32 +00:00
lftr-udiv-tripcount.ll
lftr-wide-trip-count.ll Extend trip count instead of truncating IV in LFTR, when legal 2016-08-11 21:31:40 +00:00
lftr-zext.ll
lftr_disabled.ll [IndVars] Add an option to be able to disable LFTR 2017-06-09 06:11:59 +00:00
lftr_simple.ll [IndVars] Un-grepify test; NFC 2016-08-03 20:53:23 +00:00
loop-invariant-conditions.ll [SimplifyIndVars] Ignore dead users 2018-06-13 02:25:32 +00:00
loop_evaluate7.ll
loop_evaluate8.ll [IndVars] Un-grepify test; NFC 2016-08-03 20:53:23 +00:00
loop_evaluate9.ll [IndVars] Un-grepify test; NFC 2016-08-03 20:53:23 +00:00
loop_evaluate10.ll [SCEV] Make exact taken count calculation more optimistic 2018-03-27 07:30:38 +00:00
loop_evaluate11.ll
loop_evaluate_1.ll
loop_evaluate_2.ll [IndVars] Un-grepify test; NFC 2016-08-03 20:53:23 +00:00
loop_evaluate_3.ll [IndVars] Un-grepify test; NFC 2016-08-03 20:53:23 +00:00
loop_evaluate_4.ll [IndVars] Un-grepify test; NFC 2016-08-03 20:53:23 +00:00
loop_evaluate_5.ll [IndVars] Un-grepify test; NFC 2016-08-03 20:53:23 +00:00
loop_evaluate_6.ll [IndVars] Un-grepify test; NFC 2016-08-03 20:53:23 +00:00
lrev-existing-umin.ll
masked-iv.ll [IndVars] Un-grepify test; NFC 2016-08-03 20:53:23 +00:00
no-iv-rewrite.ll [SimplifyIndVars] Ignore dead users 2018-06-13 02:25:32 +00:00
overflow-intrinsics.ll
phi-uses-value-multiple-times.ll
polynomial-expand.ll
post-inc-range.ll [IndVarSimplify] Teach calculatePostIncRange to take guards into account 2016-10-19 19:43:54 +00:00
pr18223.ll
pr20680.ll
pr22222.ll
pr24356.ll
pr24783.ll
pr24804.ll
pr24952.ll
pr24956.ll
pr25047.ll
pr25051.ll
pr25060.ll
pr25360.ll
pr25421.ll
pr25576.ll
pr25578.ll [SimplifyIndVars] Ignore dead users 2018-06-13 02:25:32 +00:00
pr26207.ll
pr26973.ll
pr26974.ll
pr27133.ll
pr28935.ll [IndVars] Ignore (s|z)exts that don't extend the induction variable 2016-08-13 00:58:31 +00:00
pr32045.ll [ValueTracking] Don't do an unchecked shift in ComputeNumSignBits 2017-02-25 20:30:45 +00:00
pr35406.ll [SCEV] Fix the movement of insertion point in expander. PR35406. 2017-12-15 05:24:42 +00:00
pr38674.ll [IndVars] Fix usage of SCEVExpander to not mess with SCEVConstant. PR38674 2018-09-04 05:01:35 +00:00
pr38855.ll [NFC] Specify test's option to reduce reliance on defaults 2018-09-11 06:34:43 +00:00
preserve-signed-wrap.ll
promote-iv-to-eliminate-casts.ll [SCEV] Prove implications for SCEVUnknown Phis 2018-04-04 05:46:47 +00:00
replace-iv-with-loop-invariant.ll [SimplifyIndVar] Replace IVUsers with loop invariant whenever possible 2017-10-12 02:54:11 +00:00
replace-sdiv-by-udiv.ll [SimplifyIndvar] Replace the sdiv used by IV if we can prove both of its operands are non-negative 2017-03-30 21:56:56 +00:00
replace-srem-by-urem.ll [SimplifyIndVar] Constant fold IV users 2017-09-27 03:11:46 +00:00
rewrite-loop-exit-value.ll
scev-phi-debug-info.ll [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00
scevexpander-phi-base-case.ll [ScalarEvolution] Fix base condition in isNormalAddRecPHI. 2017-12-14 14:47:52 +00:00
sharpen-range.ll [PM] Port IndVarSimplify to the new pass manager 2016-06-05 18:01:19 +00:00
shrunk-constant.ll [SCEV] Add [zs]ext{C,+,x} -> (D + [zs]ext{C-D,+,x})<nuw><nsw> transform 2018-07-25 18:01:41 +00:00
signed-trip-count.ll [IndVars] Un-grepify test; NFC 2016-08-03 20:53:23 +00:00
single-element-range.ll
sink-alloca.ll
sink-from-preheader.ll [IndVars] Set Changed if sinkUnusedInvariants changes IR. PR38863 2018-09-10 06:32:00 +00:00
sink-trapping.ll
strengthen-overflow.ll [IndVarSimplify] Add AShr exact flags using induction variables ranges. 2017-07-05 13:25:58 +00:00
tripcount_compute.ll
tripcount_infinite.ll
udiv-invariant-but-traps.ll
udiv.ll Revert rL316568 because of sudden performance drop on ARM 2017-10-27 04:17:44 +00:00
uglygep.ll [IndVars] Un-grepify test; NFC 2016-08-03 20:53:23 +00:00
ult-sub-to-eq.ll Extend trip count instead of truncating IV in LFTR, when legal 2016-08-11 21:31:40 +00:00
use-range-metadata.ll
variable-stride-ivs-0.ll
variable-stride-ivs-1.ll
verify-scev.ll
widen-loop-comp.ll [SimplifyIndVars] Eliminate redundant truncs 2018-06-19 04:48:34 +00:00
widen-nsw.ll
zext-nuw.ll