aboutsummaryrefslogtreecommitdiff
path: root/libcpp
diff options
context:
space:
mode:
authorAndrew Carlotti <andrew.carlotti@arm.com>2023-03-07 14:37:00 +0000
committerAndrew Carlotti <andrew.carlotti@arm.com>2023-07-19 17:35:24 +0100
commit73d3bc348190b538675c9f5e88b5d8da8b63991c (patch)
tree95dc00539fabe2d6ef2618c440097b8f8f3e634d /libcpp
parent8c79b49cd4fa742f7be739dd21fd2aa040cc1ba3 (diff)
downloadgcc-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