Check TYPE_OVERFLOW_WRAPS for parloops reductions
commitb826233f9033cabe0b617627c7d3d62b56757eda
authorvries <vries@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 23 Jul 2015 12:17:52 +0000 (23 12:17 +0000)
committervries <vries@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 23 Jul 2015 12:17:52 +0000 (23 12:17 +0000)
tree708b5d6ba2ce760f9aa54afab19127e158723c24
parent10adbe61291a0452434fe074c89047da0ab2ecd1
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226107 138bc75d-0d04-0410-961f-82ee72b054a4
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 [copied from gcc/testsuite/gcc.dg/autopar/outer-4.c with 61% similarity]
gcc/testsuite/gcc.dg/autopar/uns-outer-5.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/autopar/uns-outer-6.c [copied from gcc/testsuite/gcc.dg/autopar/outer-6.c with 57% similarity]
gcc/tree-parloops.c
gcc/tree-vect-loop.c
gcc/tree-vectorizer.h