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.
Showing
- gcc/config/aarch64/aarch64-builtins.cc 8 additions, 2 deletionsgcc/config/aarch64/aarch64-builtins.cc
- gcc/config/aarch64/arm_acle.h 0 additions, 2 deletionsgcc/config/aarch64/arm_acle.h
- gcc/testsuite/gcc.target/aarch64/acle/ls64_guard-1.c 9 additions, 0 deletionsgcc/testsuite/gcc.target/aarch64/acle/ls64_guard-1.c
- gcc/testsuite/gcc.target/aarch64/acle/ls64_guard-2.c 10 additions, 0 deletionsgcc/testsuite/gcc.target/aarch64/acle/ls64_guard-2.c
- gcc/testsuite/gcc.target/aarch64/acle/ls64_guard-3.c 9 additions, 0 deletionsgcc/testsuite/gcc.target/aarch64/acle/ls64_guard-3.c
- gcc/testsuite/gcc.target/aarch64/acle/ls64_guard-4.c 10 additions, 0 deletionsgcc/testsuite/gcc.target/aarch64/acle/ls64_guard-4.c
Loading
Please register or sign in to comment