-
- Downloads
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.
Showing
- gcc/config/aarch64/aarch64.h 1 addition, 1 deletiongcc/config/aarch64/aarch64.h
- gcc/config/aarch64/arm_acle.h 1 addition, 1 deletiongcc/config/aarch64/arm_acle.h
- gcc/config/aarch64/arm_fp16.h 1 addition, 1 deletiongcc/config/aarch64/arm_fp16.h
- gcc/config/aarch64/arm_neon.h 7 additions, 7 deletionsgcc/config/aarch64/arm_neon.h
- gcc/testsuite/gcc.target/aarch64/feature-bf16-backport.c 10 additions, 0 deletionsgcc/testsuite/gcc.target/aarch64/feature-bf16-backport.c
- gcc/testsuite/gcc.target/aarch64/feature-dotprod-backport.c 10 additions, 0 deletionsgcc/testsuite/gcc.target/aarch64/feature-dotprod-backport.c
- gcc/testsuite/gcc.target/aarch64/feature-fp16-backport.c 10 additions, 0 deletionsgcc/testsuite/gcc.target/aarch64/feature-fp16-backport.c
- gcc/testsuite/gcc.target/aarch64/feature-fp16-scalar-backport.c 10 additions, 0 deletions...stsuite/gcc.target/aarch64/feature-fp16-scalar-backport.c
- gcc/testsuite/gcc.target/aarch64/feature-fp16fml-backport.c 10 additions, 0 deletionsgcc/testsuite/gcc.target/aarch64/feature-fp16fml-backport.c
- gcc/testsuite/gcc.target/aarch64/feature-i8mm-backport.c 10 additions, 0 deletionsgcc/testsuite/gcc.target/aarch64/feature-i8mm-backport.c
- gcc/testsuite/gcc.target/aarch64/feature-memtag-backport.c 10 additions, 0 deletionsgcc/testsuite/gcc.target/aarch64/feature-memtag-backport.c
- gcc/testsuite/gcc.target/aarch64/feature-sha3-backport.c 10 additions, 0 deletionsgcc/testsuite/gcc.target/aarch64/feature-sha3-backport.c
- gcc/testsuite/gcc.target/aarch64/feature-sm4-backport.c 10 additions, 0 deletionsgcc/testsuite/gcc.target/aarch64/feature-sm4-backport.c
Loading
Please register or sign in to comment