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

--- Comment #4 from Richard Biener <rguenth at gcc dot gnu.org> ---
Author: rguenth
Date: Wed Nov  7 15:01:09 2018
New Revision: 265876

URL: https://gcc.gnu.org/viewcvs?rev=265876&root=gcc&view=rev
Log:
2018-11-07  Richard Biener  <rguent...@suse.de>

        PR tree-optimization/87914
        * tree-vect-loop.c (vect_is_simple_reduction): Improve detection
        of nested cycles.
        (vectorizable_reduction): Handle shifts and rotates by dispatching
        to vectorizable_shift.
        * tree-vect-stmts.c (vect_get_vec_def_for_operand_1): Handle
        in-loop uses of vect_nested_cycle defs.  Merge cycle and internal
        def cases.
        (vectorizable_shift): Export and handle being called as
        vect_nested_cycle.
        (vect_analyze_stmt): Call vectorizable_shift after
        vectorizable_reduction.
        * tree-vectorizer.h (vectorizable_shift): Declare.

        * lib/target-supports.exp (check_effective_target_vect_var_shift): New.
        (check_avx2_available): Likewise.
        * g++.dg/vect/pr87914.cc: New testcase.

Added:
    trunk/gcc/testsuite/g++.dg/vect/pr87914.cc
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/testsuite/ChangeLog
    trunk/gcc/testsuite/lib/target-supports.exp
    trunk/gcc/tree-vect-loop.c
    trunk/gcc/tree-vect-stmts.c
    trunk/gcc/tree-vectorizer.h

Reply via email to