diff options
author | Andrew Carlotti <andrew.carlotti@arm.com> | 2023-03-07 14:37:00 +0000 |
---|---|---|
committer | Andrew Carlotti <andrew.carlotti@arm.com> | 2023-07-19 17:35:24 +0100 |
commit | 73d3bc348190b538675c9f5e88b5d8da8b63991c (patch) | |
tree | 95dc00539fabe2d6ef2618c440097b8f8f3e634d /libcpp | |
parent | 8c79b49cd4fa742f7be739dd21fd2aa040cc1ba3 (diff) | |
download | gcc-73d3bc348190b538675c9f5e88b5d8da8b63991c.zip gcc-73d3bc348190b538675c9f5e88b5d8da8b63991c.tar.gz gcc-73d3bc348190b538675c9f5e88b5d8da8b63991c.tar.bz2 |
aarch64: Remove architecture dependencies from intrinsics
Many intrinsics currently depend on both an architecture version and a
feature, despite the corresponding instructions being available within
GCC at lower architecture versions.
LLVM has already removed these explicit architecture version
dependences; this patch does the same for GCC. Note that +fp16 does not
imply +simd, so we need to add an explicit +simd for the Neon fp16
intrinsics.
Binutils did not previously support all of these architecture+feature
combinations, but this problem is already reachable from GCC. For
example, compiling the test gcc.target/aarch64/usadv16qi-dotprod.c
with -O3 -march=armv8-a+dotprod has resulted in an assembler error since
GCC 10. This is fixed in Binutils 2.41.
This patch retains explicit architecture version dependencies for
features that do not currently have a separate feature flag.
gcc/ChangeLog:
* config/aarch64/aarch64.h (TARGET_MEMTAG): Remove armv8.5
dependency.
* config/aarch64/arm_acle.h: Remove unnecessary armv8.x
dependencies from target pragmas.
* config/aarch64/arm_fp16.h (target): Likewise.
* config/aarch64/arm_neon.h (target): Likewise.
gcc/testsuite/ChangeLog:
* gcc.target/aarch64/feature-bf16-backport.c: New test.
* gcc.target/aarch64/feature-dotprod-backport.c: New test.
* gcc.target/aarch64/feature-fp16-backport.c: New test.
* gcc.target/aarch64/feature-fp16-scalar-backport.c: New test.
* gcc.target/aarch64/feature-fp16fml-backport.c: New test.
* gcc.target/aarch64/feature-i8mm-backport.c: New test.
* gcc.target/aarch64/feature-memtag-backport.c: New test.
* gcc.target/aarch64/feature-sha3-backport.c: New test.
* gcc.target/aarch64/feature-sm4-backport.c: New test.
Diffstat (limited to 'libcpp')
0 files changed, 0 insertions, 0 deletions