This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug tree-optimization/83965] [8 Regression] ICE in vectorize_fold_left_reduction, at tree-vect-loop.c:6154


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

--- Comment #6 from rsandifo at gcc dot gnu.org <rsandifo at gcc dot gnu.org> ---
Author: rsandifo
Date: Mon Feb 26 16:17:00 2018
New Revision: 257995

URL: https://gcc.gnu.org/viewcvs?rev=257995&root=gcc&view=rev
Log:
Make fix for PR 83965 handle SLP reduction chains

This patch prevents pattern-matching of fold-left SLP reduction chains,
which the previous patch for 83965 didn't handle properly.  It only
stops the last statement in the group from being matched, but that's
enough to cause the group to be dissolved later.

A better fix would be to put all the information about the reduction
on the the first statement in the reduction chain, so that every
statement in the group can tell what the group is doing.  That doesn't
seem like stage 4 material though.

2018-02-26  Richard Sandiford  <richard.sandiford@linaro.org>

gcc/
        PR tree-optimization/83965
        * tree-vect-patterns.c (vect_reassociating_reduction_p): Assume
        that grouped statements are part of a reduction chain.  Return
        true if the statement is not marked as a reduction itself but
        is part of a group.
        (vect_recog_dot_prod_pattern): Don't check whether the statement
        is part of a group here.
        (vect_recog_sad_pattern): Likewise.
        (vect_recog_widen_sum_pattern): Likewise.

gcc/testsuite/
        PR tree-optimization/83965
        * gcc.dg/vect/pr83965-2.c: New test.

Added:
    trunk/gcc/testsuite/gcc.dg/vect/pr83965-2.c
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/testsuite/ChangeLog
    trunk/gcc/tree-vect-patterns.c

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]