https://gcc.gnu.org/bugzilla/show_bug.cgi?id=37021

--- Comment #18 from Richard Biener <rguenth at gcc dot gnu.org> ---
Author: rguenth
Date: Tue May 12 11:55:40 2015
New Revision: 223059

URL: https://gcc.gnu.org/viewcvs?rev=223059&root=gcc&view=rev
Log:
2015-05-12  Richard Biener  <rguent...@suse.de>

        PR tree-optimization/37021
        * tree-vectorizer.h (struct _slp_tree): Add two_operators flag.
        (SLP_TREE_TWO_OPERATORS): New define.
        * tree-vect-slp.c (vect_create_new_slp_node): Initialize
        SLP_TREE_TWO_OPERATORS.
        (vect_build_slp_tree_1): Allow two mixing plus/minus in an
        SLP node.
        (vect_build_slp_tree): Adjust.
        (vect_analyze_slp_cost_1): Likewise.
        (vect_schedule_slp_instance): Vectorize mixing plus/minus by
        emitting two vector stmts and mixing the results.

        * gcc.target/i386/vect-addsub.c: New testcase.

Added:
    trunk/gcc/testsuite/gcc.target/i386/vect-addsub.c
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/testsuite/ChangeLog
    trunk/gcc/tree-vect-slp.c
    trunk/gcc/tree-vectorizer.h

Reply via email to