diff options
author | bstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-10-10 06:10:28 +0000 |
---|---|---|
committer | bstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-10-10 06:10:28 +0000 |
commit | 25524fa163374223fba10886994be16859209590 (patch) | |
tree | a2ea2f2478904badddf849a74af13183554de44b /gcc/tree-vect-stmts.c | |
parent | 2269ca4e4e02754a2d686c6b7b027f1f3918b3c5 (diff) | |
download | gcc-25524fa163374223fba10886994be16859209590.tar.gz |
2011-10-10 Basile Starynkevitch <basile@starynkevitch.net>
MELT branch merged with trunk rev 179735 using svnmerge.
gcc/
2011-10-10 Basile Starynkevitch <basile@starynkevitch.net>
* melt-runtime.h (meltppbuffer, meltppbufsiz): Declare as extern
variables.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/melt-branch@179736 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/tree-vect-stmts.c')
-rw-r--r-- | gcc/tree-vect-stmts.c | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/gcc/tree-vect-stmts.c b/gcc/tree-vect-stmts.c index 8c2edadba13..f2ac8c7a616 100644 --- a/gcc/tree-vect-stmts.c +++ b/gcc/tree-vect-stmts.c @@ -652,9 +652,25 @@ vect_mark_stmts_to_be_vectorized (loop_vec_info loop_vinfo) have to scan the RHS or function arguments instead. */ if (is_gimple_assign (stmt)) { - for (i = 1; i < gimple_num_ops (stmt); i++) + enum tree_code rhs_code = gimple_assign_rhs_code (stmt); + tree op = gimple_assign_rhs1 (stmt); + + i = 1; + if (rhs_code == COND_EXPR && COMPARISON_CLASS_P (op)) + { + if (!process_use (stmt, TREE_OPERAND (op, 0), loop_vinfo, + live_p, relevant, &worklist) + || !process_use (stmt, TREE_OPERAND (op, 1), loop_vinfo, + live_p, relevant, &worklist)) + { + VEC_free (gimple, heap, worklist); + return false; + } + i = 2; + } + for (; i < gimple_num_ops (stmt); i++) { - tree op = gimple_op (stmt, i); + op = gimple_op (stmt, i); if (!process_use (stmt, op, loop_vinfo, live_p, relevant, &worklist)) { |