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

--- Comment #8 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-10 branch has been updated by Jakub Jelinek
<ja...@gcc.gnu.org>:

https://gcc.gnu.org/g:06589d2232abc92ac9bcb43e4a4ec64ead627752

commit r10-9485-g06589d2232abc92ac9bcb43e4a4ec64ead627752
Author: Jakub Jelinek <ja...@redhat.com>
Date:   Tue Mar 16 10:34:44 2021 +0100

    aarch64: Fix up aarch64_simd_clone_compute_vecsize_and_simdlen [PR99542]

    As the patch shows, there are several bugs in
    aarch64_simd_clone_compute_vecsize_and_simdlen.
    One is that unlike for function declarations that aren't definitions
    it completely ignores argument types.  Such decls don't have
DECL_ARGUMENTS,
    but we can walk TYPE_ARG_TYPES instead, like the i386 backend does or like
    the simd cloning code in the middle end does too.

    Another problem is that it checks types of uniform arguments.  That is
    unnecessary, uniform arguments are passed the way it normally is, it is
    a scalar argument rather than vector, so there is no reason not to support
    uniform argument of different size, or long double, structure etc.

    2021-03-16  Jakub Jelinek  <ja...@redhat.com>

            PR target/99542
            * config/aarch64/aarch64.c
            (aarch64_simd_clone_compute_vecsize_and_simdlen): If not a function
            definition, walk TYPE_ARG_TYPES list if non-NULL for argument types
            instead of DECL_ARGUMENTS.  Ignore types for uniform arguments.

            * gcc.dg/gomp/pr99542.c: New test.
            * gcc.dg/gomp/pr59669-2.c (bar): Don't expect a warning on aarch64.
            * gcc.dg/gomp/simd-clones-2.c (setArray): Likewise.
            * g++.dg/vect/simd-clone-7.cc (bar): Likewise.
            * g++.dg/gomp/declare-simd-1.C (f37): Expect a different warning
            on aarch64.
            * gcc.dg/declare-simd.c (fn2): Expect a new warning on aarch64.

    (cherry picked from commit fcefc59befd396267b824c170b6a37acaf10874e)

Reply via email to