Check TYPE_OVERFLOW_WRAPS for parloops reductions
authorTom de Vries <tom@codesourcery.com>
Thu, 23 Jul 2015 12:17:52 +0000 (12:17 +0000)
committerTom de Vries <vries@gcc.gnu.org>
Thu, 23 Jul 2015 12:17:52 +0000 (12:17 +0000)
commitbcdaf3708453cc9f0ad23598f682e17ffd1e5afc
tree708b5d6ba2ce760f9aa54afab19127e158723c24
parentf45dacba22647dcee6d6b60751bca39940bbaaf2
Check TYPE_OVERFLOW_WRAPS for parloops reductions

2015-07-23  Tom de Vries  <tom@codesourcery.com>

* tree-parloops.c (gather_scalar_reductions): Add arg to call to
vect_force_simple_reduction.
* tree-vect-loop.c (vect_analyze_scalar_cycles_1): Same.
(vect_is_simple_reduction_1): Add and handle
need_wrapping_integral_overflow parameter.
(vect_is_simple_reduction, vect_force_simple_reduction): Add and pass
need_wrapping_integral_overflow parameter.
(vectorizable_reduction): Add arg to call to vect_is_simple_reduction.
* tree-vectorizer.h (vect_force_simple_reduction): Add parameter to decl.

* gcc.dg/autopar/outer-4.c: Add xfail.
* gcc.dg/autopar/outer-5.c: Same.
* gcc.dg/autopar/outer-6.c: Same.
* gcc.dg/autopar/reduc-2.c: Same.
* gcc.dg/autopar/reduc-2char.c: Same.
* gcc.dg/autopar/reduc-2short.c: Same.
* gcc.dg/autopar/reduc-8.c: Same.
* gcc.dg/autopar/uns-outer-4.c: New test.
* gcc.dg/autopar/uns-outer-5.c: New test.
* gcc.dg/autopar/uns-outer-6.c: New test.

From-SVN: r226107
15 files changed:
gcc/ChangeLog
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/autopar/outer-4.c
gcc/testsuite/gcc.dg/autopar/outer-5.c
gcc/testsuite/gcc.dg/autopar/outer-6.c
gcc/testsuite/gcc.dg/autopar/reduc-2.c
gcc/testsuite/gcc.dg/autopar/reduc-2char.c
gcc/testsuite/gcc.dg/autopar/reduc-2short.c
gcc/testsuite/gcc.dg/autopar/reduc-8.c
gcc/testsuite/gcc.dg/autopar/uns-outer-4.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/autopar/uns-outer-5.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/autopar/uns-outer-6.c [new file with mode: 0644]
gcc/tree-parloops.c
gcc/tree-vect-loop.c
gcc/tree-vectorizer.h