Hi Victor, > -----Original Message----- > From: Victor Do Nascimento <victor.donascime...@arm.com> > Sent: Monday, March 25, 2024 10:59 AM > To: gcc-patches@gcc.gnu.org > Cc: Kyrylo Tkachov <kyrylo.tkac...@arm.com>; Richard Sandiford > <richard.sandif...@arm.com>; Richard Earnshaw > <richard.earns...@arm.com>; Victor Do Nascimento > <victor.donascime...@arm.com> > Subject: [PATCH] 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. > > Regtested on aarch64-linux-gnu.
Ok but... > > gcc/ChangeLog: > > * config/aarch64/aarch64-option-extensions.def: Fix 'lrcpc3' > entry. This would usually be written as: * config/aarch64/aarch64-option-extensions.def (rcpc3): Fix FEATURE_STRING field to "lrcpc3". Thanks, Kyrill > > 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