llvm-project/llvm/test/Transforms/IndVarSimplify
Max Kazantsev b9edcbcb1d Re-enable "[IndVars] Canonicalize comparisons between non-negative values and indvars"
The patch was reverted due to a bug. The bug was that if the IV is the 2nd operand of the icmp
instruction, then the "Pred" variable gets swapped and differs from the instruction's predicate.
In this patch we use the original predicate to do the transformation.

Also added a test case that exercises this situation.

Differentian Revision: https://reviews.llvm.org/D35107

llvm-svn: 307477
2017-07-08 17:17:30 +00:00
..
AMDGPU AMDGPU: Mark all unspecified CC functions in tests as amdgpu_kernel 2017-03-21 21:39:51 +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 Move the personality function from LandingPadInst to Function 2015-06-17 20:52:32 +00:00
2004-04-07-ScalarEvolutionCrash.ll
2005-02-11-InvokeCrash.ll Move the personality function from LandingPadInst to Function 2015-06-17 20:52:32 +00:00
2005-02-17-TruncateExprCrash.ll Move the personality function from LandingPadInst to Function 2015-06-17 20:52:32 +00:00
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
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
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 Make ScalarEvolution::isKnownPredicate a little smarter 2015-08-19 01:51:51 +00:00
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 Fix PR25372 - teach replaceCongruentPHIs to handle cases where SE evaluates a PHI to a SCEVConstant 2015-11-03 16:27:04 +00:00
crash.ll Move the personality function from LandingPadInst to Function 2015-06-17 20:52:32 +00:00
dangling-use.ll
divide-pointer.ll
dont-recompute.ll
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
exit_value_test2.ll Add address space mangling to lifetime intrinsics 2017-04-10 20:18:21 +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
huge_muls.ll [SCEV] Make MulOpsInlineThreshold lower to avoid excessive compilation time 2017-06-21 07:28:13 +00:00
indirectbr.ll
interesting-invoke-use.ll Move the personality function from LandingPadInst to Function 2015-06-17 20:52:32 +00:00
iterationCount_zext_or_trunc.ll
iv-fold.ll
iv-sext.ll
iv-widen-elim-ext.ll [IndVars] Change the order to compute WidenAddRec in widenIVUse. 2016-11-15 17:34:52 +00:00
iv-widen.ll [IndVars] Change the order to compute WidenAddRec in widenIVUse. 2016-11-15 17:34:52 +00:00
iv-zext.ll
lcssa-preservation.ll
lftr-address-space-pointers.ll [SCEV] Try to reuse existing value during SCEV expansion 2016-02-04 01:27:38 +00:00
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
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 [IndVars] Make loop varying predicates loop invariant. 2015-07-27 21:42:49 +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 [IndVars] Un-grepify test; NFC 2016-08-03 20:53:23 +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 [IndVars] Try to use existing values in RewriteLoopExitValues. 2015-07-09 18:46:12 +00:00
masked-iv.ll [IndVars] Un-grepify test; NFC 2016-08-03 20:53:23 +00:00
no-iv-rewrite.ll
overflow-intrinsics.ll [IndVars] Eliminate op.with.overflow when possible (re-apply) 2016-05-29 00:36:25 +00:00
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 [IndVars] Fix PR24356. 2015-08-06 20:43:41 +00:00
pr24783.ll [SCEV] Try to reuse existing value during SCEV expansion 2016-02-04 01:27:38 +00:00
pr24804.ll [SCEVExpander] Have hoistIVInc preserve LCSSA 2015-12-08 00:13:17 +00:00
pr24952.ll [SCEV] identical instructions don't compute equal values 2015-09-27 21:09:48 +00:00
pr24956.ll [SCEV] Don't crash on pointer comparisons 2015-09-28 21:14:32 +00:00
pr25047.ll [IndVars] Preserve LCSSA in `eliminateIdentitySCEV` 2015-10-07 17:38:31 +00:00
pr25051.ll [IndVars] Don't break dominance in `eliminateIdentitySCEV` 2015-10-06 21:44:49 +00:00
pr25060.ll [SCEV] Pick backedge values for phi nodes correctly 2015-10-08 18:28:36 +00:00
pr25360.ll [SCEV] Don't create SCEV expressions that break LCSSA 2015-10-31 23:21:40 +00:00
pr25421.ll Re-apply r251050 with a for PR25421 2015-11-05 23:45:38 +00:00
pr25576.ll [IndVars] Fix PR25576 2016-01-17 18:12:52 +00:00
pr25578.ll [IndVars] Have getInsertPointForUses preserve LCSSA 2015-12-08 00:13:21 +00:00
pr26207.ll [SCEV] Fix PR26207 2016-01-19 20:53:51 +00:00
pr26973.ll [IndVars] Pass the right loop to isLoopInvariantPredicate 2016-03-18 20:37:07 +00:00
pr26974.ll [IndVars] Fix PR26974: make sure replaceCongruentIVs doesn't break LCSSA 2016-03-21 12:44:29 +00:00
pr27133.ll [IndVarSimplify] Don't insert after a catchswitch 2016-03-30 21:12:06 +00:00
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
preserve-signed-wrap.ll
promote-iv-to-eliminate-casts.ll [IndVars] Un-grepify test; NFC 2016-08-03 20:53:23 +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
rewrite-loop-exit-value.ll [IndVarSimplify] Rewrite loop exit values with their initial values from loop preheader 2016-01-27 07:40:41 +00:00
sharpen-range.ll [PM] Port IndVarSimplify to the new pass manager 2016-06-05 18:01:19 +00:00
shrunk-constant.ll [IndVars] Un-grepify test; NFC 2016-08-03 20:53:23 +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-trapping.ll [LLVM] Remove unwanted --check-prefix=CHECK from unit tests. NFC. 2016-04-19 23:51:52 +00:00
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 FileCheck'ify some wc/grep based tests; NFCI. 2015-07-28 03:50:09 +00:00
udiv-invariant-but-traps.ll
udiv.ll [SCEV] Try to reuse existing value during SCEV expansion 2016-02-04 01:27:38 +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 Re-enable "[IndVars] Canonicalize comparisons between non-negative values and indvars" 2017-07-08 17:17:30 +00:00
widen-nsw.ll
zext-nuw.ll ScalarEvolution: do not set nuw when creating exprs of form <expr> + <all-ones>. 2015-11-20 01:26:13 +00:00