]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
aarch64: Align lrcpc3 FEAT_STRING with /proc/cpuinfo 'Features' entry
authorVictor Do Nascimento <victor.donascimento@arm.com>
Tue, 5 Mar 2024 20:38:26 +0000 (20:38 +0000)
committerVictor Do Nascimento <victor.donascimento@arm.com>
Wed, 27 Mar 2024 10:33:46 +0000 (10:33 +0000)
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.

gcc/config/aarch64/aarch64-option-extensions.def
gcc/testsuite/gcc.target/aarch64/cpunative/info_24 [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_24.c [new file with mode: 0644]

index ac54b899a06fbac08564aaf5da1edbc81cba90c8..061a145e9e797df6853722dac1582ab5314b6610 100644 (file)
@@ -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 (file)
index 0000000..8d3c16a
--- /dev/null
@@ -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 (file)
index 0000000..05dc870
--- /dev/null
@@ -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.  */