[Vectorizer] Make REDUC_xxx_EXPR tree codes produce a scalar result
commit7ba68b188744b2128dd590e939a92cdfc592a178
authoralalaw01 <alalaw01@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 27 Oct 2014 14:04:43 +0000 (27 14:04 +0000)
committeralalaw01 <alalaw01@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 27 Oct 2014 14:04:43 +0000 (27 14:04 +0000)
treeb3fd50b4cacca8673a98acd16f6b70f7f379c0ac
parent94ea856876f6fe2524e543d8641f5c026c907031
[Vectorizer] Make REDUC_xxx_EXPR tree codes produce a scalar result

PR tree-optimization/61114
* expr.c (expand_expr_real_2): For REDUC_{MIN,MAX,PLUS}_EXPR, add
extract_bit_field around optab result.

* fold-const.c (fold_unary_loc): For REDUC_{MIN,MAX,PLUS}_EXPR, produce
scalar not vector.

* tree-cfg.c (verify_gimple_assign_unary): Check result vs operand type
for REDUC_{MIN,MAX,PLUS}_EXPR.

* tree-vect-loop.c (vect_analyze_loop): Update comment.
(vect_create_epilog_for_reduction): For direct vector reduction, use
result of tree code directly without extract_bit_field.

* tree.def (REDUC_MAX_EXPR, REDUC_MIN_EXPR, REDUC_PLUS_EXPR): Update
comment.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216736 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/expr.c
gcc/fold-const.c
gcc/tree-cfg.c
gcc/tree-vect-loop.c
gcc/tree.def