https://gcc.gnu.org/g:258defbdee985c8f27c33e9f533c19d059941972
commit r14-9685-g258defbdee985c8f27c33e9f533c19d059941972 Author: Victor Do Nascimento <victor.donascime...@arm.com> Date: Tue Mar 5 20:38:26 2024 +0000 aarch64: Align lrcpc3 FEAT_STRING with /proc/cpuinfo 'Features' entry Due to the Linux kernel exposing the lrcpc3 architectural feature as "lrcpc3", this patch corrects the relevant FEATURE_STRING entry in the "rcpc3" AARCH64_OPT_FMV_EXTENSION macro, such that the feature can be correctly detected when doing native compilation on rcpc3-enabled targets. gcc/ChangeLog: * config/aarch64/aarch64-option-extensions.def (rcpc3): Fix FEATURE_STRING field to "lrcpc3". gcc/testsuite/ChangeLog: * gcc.target/aarch64/cpunative/info_24: New. * gcc.target/aarch64/cpunative/native_cpu_24.c: Likewise. Diff: --- gcc/config/aarch64/aarch64-option-extensions.def | 2 +- gcc/testsuite/gcc.target/aarch64/cpunative/info_24 | 8 ++++++++ gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_24.c | 11 +++++++++++ 3 files changed, 20 insertions(+), 1 deletion(-) diff --git a/gcc/config/aarch64/aarch64-option-extensions.def b/gcc/config/aarch64/aarch64-option-extensions.def index ac54b899a06..061a145e9e7 100644 --- a/gcc/config/aarch64/aarch64-option-extensions.def +++ b/gcc/config/aarch64/aarch64-option-extensions.def @@ -174,7 +174,7 @@ AARCH64_OPT_FMV_EXTENSION("rcpc", RCPC, (), (), (), "lrcpc") AARCH64_FMV_FEATURE("rcpc2", RCPC2, (RCPC)) -AARCH64_OPT_FMV_EXTENSION("rcpc3", RCPC3, (), (), (), "rcpc3") +AARCH64_OPT_FMV_EXTENSION("rcpc3", RCPC3, (), (), (), "lrcpc3") AARCH64_FMV_FEATURE("frintts", FRINTTS, ()) diff --git a/gcc/testsuite/gcc.target/aarch64/cpunative/info_24 b/gcc/testsuite/gcc.target/aarch64/cpunative/info_24 new file mode 100644 index 00000000000..8d3c16a1091 --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/cpunative/info_24 @@ -0,0 +1,8 @@ +processor : 0 +BogoMIPS : 100.00 +Features : fp asimd evtstrm aes pmull sha1 sha2 crc32 asimddp lrcpc3 +CPU implementer : 0xfe +CPU architecture: 8 +CPU variant : 0x0 +CPU part : 0xd08 +CPU revision : 2 \ No newline at end of file diff --git a/gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_24.c b/gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_24.c new file mode 100644 index 00000000000..05dc870885f --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_24.c @@ -0,0 +1,11 @@ +/* { dg-do compile { target { { aarch64*-*-linux*} && native } } } */ +/* { dg-set-compiler-env-var GCC_CPUINFO "$srcdir/gcc.target/aarch64/cpunative/info_23" } */ +/* { dg-additional-options "-mcpu=native --save-temps " } */ + +int main() +{ + return 0; +} + +/* { dg-final { scan-assembler {\.arch armv8-a\+dotprod\+crc\+crypto\+rcpc3} } } */ +/* Test one where rcpc3 is available and so should be emitted. */