OSDN Git Service

* tree-vectorizer.h (vectorizable_condition): Add parameters.
authorirar <irar@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 20 Jul 2009 11:59:10 +0000 (11:59 +0000)
committerirar <irar@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 20 Jul 2009 11:59:10 +0000 (11:59 +0000)
commit0df23b96b4542b1d28ebb6eb669b0de339989e44
treeb5c54f986ec049e40252b92d71e7729a749daaa7
parent8097362b548d69058a302d6d1ad2f5aac4fb624a
* tree-vectorizer.h (vectorizable_condition): Add parameters.
* tree-vect-loop.c (vect_is_simple_reduction): Support COND_EXPR.
(get_initial_def_for_reduction): Likewise.
(vectorizable_reduction): Skip the check of first operand in case
of COND_EXPR. Add check that it is outer loop vectorization if
nested cycle was detected. Call vectorizable_condition() for
COND_EXPR. If reduction epilogue cannot be created do not fail for
nested cycles (if it is not double reduction). Assert that there
is only one type in the loop in case of COND_EXPR. Call
vectorizable_condition() to vectorize COND_EXPR.
* tree-vect-stmts.c (vectorizable_condition): Update comment.
Add parameters. Allow nested cycles if called from
vectorizable_reduction(). Use reduction vector variable if provided.
(vect_analyze_stmt): Call vectorizable_reduction() before
vectorizable_condition().
(vect_transform_stmt): Update call to vectorizable_condition().

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@149806 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/vect/vect-cond-1.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/vect/vect-cond-2.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/vect/vect-cond-3.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/vect/vect-cond-4.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/vect/vect-cond-5.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/vect/vect-cond-6.c [new file with mode: 0644]
gcc/tree-vect-loop.c
gcc/tree-vect-stmts.c
gcc/tree-vectorizer.h