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.
Regtested on aarch64-linux-gnu. gcc/ChangeLog: * config/aarch64/aarch64-option-extensions.def: Fix 'lrcpc3' entry. gcc/testsuite/ChangeLog: * testsuite/gcc.target/aarch64/cpunative/info_24: New. * testsuite/gcc.target/aarch64/cpunative/native_cpu_24.c: Likewise. --- gcc/config/aarch64/aarch64-option-extensions.def | 2 +- gcc/testsuite/gcc.target/aarch64/cpunative/info_24 | 8 ++++++++ .../gcc.target/aarch64/cpunative/native_cpu_24.c | 11 +++++++++++ 3 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 gcc/testsuite/gcc.target/aarch64/cpunative/info_24 create mode 100644 gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_24.c diff --git a/gcc/config/aarch64/aarch64-option-extensions.def b/gcc/config/aarch64/aarch64-option-extensions.def index 1a3b91c68cf..975e7b84cec 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. */ -- 2.34.1