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

--- Comment #3 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Tamar Christina <tnfch...@gcc.gnu.org>:

https://gcc.gnu.org/g:ec3d3ea60a55f25a743a037adda7d10d03ca73b2

commit r15-4328-gec3d3ea60a55f25a743a037adda7d10d03ca73b2
Author: Tamar Christina <tamar.christ...@arm.com>
Date:   Mon Oct 14 14:01:24 2024 +0100

    middle-end: copy STMT_VINFO_STRIDED_P when DR is replaced [PR116956]

    When move_dr copies a DR from one statement to another, it seems we've
    forgotten to copy the STMT_VINFO_STRIDED_P flag.  This leaves the new DR in
a
    broken state where it has a non constant stride but isn't marked as
strided.

    This causes the ICE in the PR because dataref analysis fails during
epilogue
    vectorization because there is an assumption in place that while costing
may
    fail for epiloque vectorization, that DR analysis cannot if it succeeded
for
    the main loop.

    gcc/ChangeLog:

            PR tree-optimization/116956
            * tree-vectorizer.cc (vec_info::move_dr): Copy
STMT_VINFO_STRIDED_P.

    gcc/testsuite/ChangeLog:

            PR tree-optimization/116956
            * gfortran.dg/vect/pr116956.f90: New test.

Reply via email to