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

--- Comment #3 from rsandifo at gcc dot gnu.org <rsandifo at gcc dot gnu.org> 
---
Author: rsandifo
Date: Thu Feb  8 15:17:20 2018
New Revision: 257492

URL: https://gcc.gnu.org/viewcvs?rev=257492&root=gcc&view=rev
Log:
Another fix for single-element permutes (PR 84265)

PR83753 was about a case in which we ended up trying to "vectorise"
a group of loads ore stores using single-element vectors.  The problem
was that we were classifying the load or store as VMAT_CONTIGUOUS_PERMUTE
rather than VMAT_CONTIGUOUS, even though it doesn't make sense to permute
a single-element vector.

In that PR it was enough to change get_group_load_store_type,
because vectorisation ended up being unprofitable and so we didn't
take things further.  But when vectorisation is profitable, the same
fix is needed in vectorizable_load and vectorizable_store.

2018-02-08  Richard Sandiford  <richard.sandif...@linaro.org>

gcc/
        PR tree-optimization/84265
        * tree-vect-stmts.c (vectorizable_store): Don't treat
        VMAT_CONTIGUOUS accesses as grouped.
        (vectorizable_load): Likewise.

gcc/testsuite/
        PR tree-optimization/84265
        * gcc.dg/vect/pr84265.c: New test.

Added:
    trunk/gcc/testsuite/gcc.dg/vect/pr84265.c
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/testsuite/ChangeLog
    trunk/gcc/tree-vect-stmts.c

Reply via email to