llvm/test/Transforms/LoopStrengthReduce
Dan Gohman 01ecca20bf Teach getZeroExtendExpr and getSignExtendExpr to use trip-count
information to simplify [sz]ext({a,+,b}) to {zext(a),+,[zs]ext(b)},
as appropriate.

These functions and the trip count code each call into the other, so
this requires careful handling to avoid infinite recursion. During
the initial trip count computation, conservative SCEVs are used,
which are subsequently discarded once the trip count is actually
known.

Among other benefits, this change lets LSR automatically eliminate
some unnecessary zext-inreg and sext-inreg operation where the
operand is an induction variable.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70241 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-27 20:16:15 +00:00
..
2005-08-15-AddRecIV.ll
2005-08-17-OutOfLoopVariant.ll
2005-09-12-UsesOutOutsideOfLoop.ll
2007-04-23-UseIterator.ll
2008-08-06-CmpStride.ll
2008-08-13-CmpStride.ll
2008-08-14-ShadowIV.ll
2008-09-09-Overflow.ll
2009-01-13-nonconstant-stride-outside-loop.ll
2009-02-09-ivs-different-sizes.ll
change-compare-stride-trickiness-0.ll
change-compare-stride-trickiness-1.ll Teach getZeroExtendExpr and getSignExtendExpr to use trip-count 2009-04-27 20:16:15 +00:00
dead-phi.ll
dg.exp
different-type-ivs.ll
dont_insert_redundant_ops.ll
dont_reduce_bytes.ll
dont-hoist-simple-loop-constants.ll
exit_compare_live_range.ll
invariant_value_first_arg.ll
invariant_value_first.ll
nested-reduce.ll
ops_after_indvar.ll
phi_node_update_multiple_preds.ll
pr2537.ll Testcase for PR2537. 2009-04-23 04:26:42 +00:00
pr2570.ll
pr3086.ll Add testcase from PR3086. 2009-04-23 04:14:03 +00:00
pr3399.ll Strengthen the "non-constant stride must dominate loop preheader" check. 2009-02-17 00:13:06 +00:00
pr3571.ll Fix pr3571: If stride is a value defined by an instruction, make sure it dominates the loop preheader. When IV users are strength reduced, the stride is inserted into the preheader. It could create a use before def situation. 2009-02-15 06:06:15 +00:00
related_indvars.ll
remove_indvar.ll
share_code_in_preheader.ll
share_ivs.ll
use_postinc_value_outside_loop.ll Implement "superhero" strength reduction, or full strength 2009-02-20 04:17:46 +00:00
var_stride_used_by_compare.ll
variable_stride.ll