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

--- Comment #3 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Alex Coplan <acop...@gcc.gnu.org>:

https://gcc.gnu.org/g:9963029a24f2d2510b82e7106fae3f364da33c5d

commit r14-1617-g9963029a24f2d2510b82e7106fae3f364da33c5d
Author: Alex Coplan <alex.cop...@arm.com>
Date:   Tue Jun 6 15:19:03 2023 +0100

    aarch64: Allow compiler to define ls64 builtins [PR110132]

    This patch refactors the ls64 builtins to allow the compiler to define them
    directly instead of having wrapper functions in arm_acle.h. This should be
not
    only easier to maintain, but it makes two important correctness fixes:
     - It fixes PR110132, where the builtins ended up getting declared with
       invisible bindings in the C FE, so the FE ended up synthesizing
       incompatible implicit definitions for these builtins.
     - It allows the builtins to be used with LTO, which didn't work
previously.

    We also take the opportunity to add test coverage from C++ for these
    builtins.

    gcc/ChangeLog:

            PR target/110132
            * config/aarch64/aarch64-builtins.cc
(aarch64_general_simulate_builtin):
            New. Use it ...
            (aarch64_init_ls64_builtins): ... here. Switch to declaring public
ACLE
            names for builtins.
            (aarch64_general_init_builtins): Ensure we invoke the arm_acle.h
            setup if in_lto_p, just like we do for SVE.
            * config/aarch64/arm_acle.h: (__arm_ld64b): Delete.
            (__arm_st64b): Delete.
            (__arm_st64bv): Delete.
            (__arm_st64bv0): Delete.

    gcc/testsuite/ChangeLog:

            PR target/110132
            * lib/target-supports.exp
(check_effective_target_aarch64_asm_FUNC_ok):
            Extend to ls64.
            * g++.target/aarch64/acle/acle.exp: New.
            * g++.target/aarch64/acle/ls64.C: New test.
            * g++.target/aarch64/acle/ls64_lto.C: New test.
            * gcc.target/aarch64/acle/ls64_lto.c: New test.
            * gcc.target/aarch64/acle/pr110132.c: New test.

Reply via email to