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

--- Comment #7 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Joel Hutton <jo...@gcc.gnu.org>:

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

commit r12-5889-ga5f65cf7ad640ae398eba7a45c712322ce841809
Author: Joel Hutton <joel.hut...@arm.com>
Date:   Fri Dec 10 10:26:42 2021 +0000

    pr103523: Check for PLUS/MINUS support

    Check for PLUS_EXPR/MINUS_EXPR support in vectorizable_induction.
    PR103523 is an ICE on valid code:

    void d(float *a, float b, int c) {
        float e;
        for (; c; c--, e += b)
          a[c] = e;
    }

    This is due to not checking for PLUS_EXPR support, which is missing in
    VNx2sf mode. This causes an ICE at expand time. This patch adds a check
    for support in vectorizable_induction.

    gcc/ChangeLog:

            PR tree-optimization/103523
            * tree-vect-loop.c (vectorizable_induction): Check for
            PLUS_EXPR/MINUS_EXPR support.

    gcc/testsuite/ChangeLog:

            * gcc.target/aarch64/pr103523.c: New test.

Reply via email to