Support for vectorizing conditional expressions
authoralahay01 <alahay01@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 23 Oct 2015 12:40:33 +0000 (12:40 +0000)
committeralahay01 <alahay01@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 23 Oct 2015 12:40:33 +0000 (12:40 +0000)
commitd09d8733585c184235fa47bdd5e607e2c40eeb21
treeec11a15022b2040f90b22b7cbb903f7113eb29ec
parentfc387d082ecab0a6c2dd73e471006756a430e14c
Support for vectorizing conditional expressions

2015-10-23  Alan Hayward <alan.hayward@arm.com>

gcc/
PR tree-optimization/65947
* tree-vect-loop.c
(vect_is_simple_reduction_1): Find condition reductions.
(vect_model_reduction_cost): Add condition reduction costs.
(get_initial_def_for_reduction): Add condition reduction initial var.
(vect_create_epilog_for_reduction): Add condition reduction epilog.
(vectorizable_reduction): Condition reduction support.
* tree-vect-stmts.c (vectorizable_condition): Add vect reduction arg
* doc/sourcebuild.texi (Vector-specific attributes): Document
vect_max_reduc

gcc/testsuite
PR tree-optimization/65947
* lib/target-supports.exp
(check_effective_target_vect_max_reduc): Add.
* gcc.dg/vect/pr65947-1.c: New test.
* gcc.dg/vect/pr65947-2.c: New test.
* gcc.dg/vect/pr65947-3.c: New test.
* gcc.dg/vect/pr65947-4.c: New test.
* gcc.dg/vect/pr65947-5.c: New test.
* gcc.dg/vect/pr65947-6.c: New test.
* gcc.dg/vect/pr65947-7.c: New test.
* gcc.dg/vect/pr65947-8.c: New test.
* gcc.dg/vect/pr65947-9.c: New test.
* gcc.dg/vect/pr65947-10.c: New test.
* gcc.dg/vect/pr65947-11.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@229245 138bc75d-0d04-0410-961f-82ee72b054a4
18 files changed:
gcc/ChangeLog
gcc/doc/sourcebuild.texi
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/vect/pr65947-1.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/vect/pr65947-10.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/vect/pr65947-11.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/vect/pr65947-2.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/vect/pr65947-3.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/vect/pr65947-4.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/vect/pr65947-5.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/vect/pr65947-6.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/vect/pr65947-7.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/vect/pr65947-8.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/vect/pr65947-9.c [new file with mode: 0644]
gcc/testsuite/lib/target-supports.exp
gcc/tree-vect-loop.c
gcc/tree-vect-stmts.c
gcc/tree-vectorizer.h