]> gcc.gnu.org Git - gcc.git/commit
aarch64: Fix ls64 intrinsic availability
authorAndrew Carlotti <andrew.carlotti@arm.com>
Thu, 26 Oct 2023 14:45:15 +0000 (15:45 +0100)
committerAndrew Carlotti <andrew.carlotti@arm.com>
Mon, 19 Aug 2024 14:49:48 +0000 (15:49 +0100)
commitfceecc511d4918e2b27a0609f8885ec8aba8723d
tree71656b7cb371f336ee29d47ff510cb1bb13dfefb
parent4e1b617b35631df4dd6089d4044aa19d0c1adea7
aarch64: Fix ls64 intrinsic availability

The availability of ls64 intrinsics and data types were determined
solely by the globally specified architecture features, which did not
reflect any changes specified in target pragmas or attributes.

This patch removes the initialisation-time guards for the intrinsics,
and replaces them with checks at use time. We also get better error
messages when ls64 is not available (matching the existing error
messages for SVE intrinsics).

The data512_t type is made always available; this is consistent with the
present behaviour for Neon fp16/bf16 types.

gcc/ChangeLog:

PR target/112108
* config/aarch64/aarch64-builtins.cc (handle_arm_acle_h): Remove
feature check at initialisation.
(aarch64_general_check_builtin_call): Check ls64 intrinsics.
* config/aarch64/arm_acle.h: (data512_t) Make always available.

gcc/testsuite/ChangeLog:

PR target/112108
* gcc.target/aarch64/acle/ls64_guard-1.c: New test.
* gcc.target/aarch64/acle/ls64_guard-2.c: New test.
* gcc.target/aarch64/acle/ls64_guard-3.c: New test.
* gcc.target/aarch64/acle/ls64_guard-4.c: New test.
gcc/config/aarch64/aarch64-builtins.cc
gcc/config/aarch64/arm_acle.h
gcc/testsuite/gcc.target/aarch64/acle/ls64_guard-1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/acle/ls64_guard-2.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/acle/ls64_guard-3.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/acle/ls64_guard-4.c [new file with mode: 0644]
This page took 0.067741 seconds and 6 git commands to generate.