Ping!!
________________________________
From: Srinath Parvathaneni <[email protected]>
Sent: 11 August 2026 17:13
To: [email protected] <[email protected]>
Cc: Alice Carlotti <[email protected]>; Alex Coplan <[email protected]>; 
[email protected] <[email protected]>; [email protected] 
<[email protected]>
Subject: Re: [PATCH v2][GCC] aarch64: Add support for ACLE hint intrinsics

Hi,

Changes v1 -> v2:

* Rebase the old v1 patch:
  https://gcc.gnu.org/legacy-ml/gcc-patches/2019-05/msg01925.html
* Add memory clobbers to the hint instruction patterns so that the
  builtins are treated as affecting memory.
* Update the tests to reflect the addition of the memory clobbers.
* Change the hint intrinsic definitions in arm_acle.h from inline
  functions to macro expansions.
-------------------------------------------------------------------

This patch adds support for ACLE system hint intrinsics
__yield(), __wfe(), __wfi(), __sev() and __sevl() and their
corresponding AArch64 builtins. The ACLE specification is
available at [1].

Regression tested on aarch64-none-linux-gnu with no regressions.

Ok for trunk?

Thanks,
Srinath

gcc/ChangeLog:

        * config/aarch64/aarch64-builtins.cc (enum aarch64_builtins): Add
        AARCH64_BUILTIN_YIELD, AARCH64_BUILTIN_WFE, AARCH64_BUILTIN_WFI,
        AARCH64_BUILTIN_SEV and AARCH64_BUILTIN_SEVL.
        (aarch64_init_syshintop_builtins): New function.
        (aarch64_general_init_builtins): Call aarch64_init_syshintop_builtins.
        (aarch64_general_expand_builtin): Expand the system hint builtins.
        * config/aarch64/aarch64.md (unspecv): Add UNSPECV_YIELD, UNSPECV_WFE,
        UNSPECV_WFI, UNSPECV_SEV and UNSPECV_SEVL.
        (yield): New insn pattern.
        (wfe): Likewise.
        (wfi): Likewise.
        (sev): Likewise.
        (sevl): Likewise.
        * config/aarch64/arm_acle.h (__yield): Define hint intrinsics.
        (__wfe): Likewise.
        (__wfi): Likewise.
        (__sev): Likewise.
        (__sevl): Likewise.

gcc/testsuite/ChangeLog:

        * gcc.target/aarch64/acle/hint-1.c: New test.
        * gcc.target/aarch64/acle/hint-2.c: Likewise.

[1] https://github.com/ARM-software/acle/blob/main/main/acle.md#hints
---
 gcc/config/aarch64/aarch64-builtins.cc        | 51 ++++++++++++
 gcc/config/aarch64/aarch64.md                 | 45 +++++++++++
 gcc/config/aarch64/arm_acle.h                 | 16 ++++
 .../gcc.target/aarch64/acle/hint-1.c          | 26 +++++++
 .../gcc.target/aarch64/acle/hint-2.c          | 77 +++++++++++++++++++
 5 files changed, 215 insertions(+)
 create mode 100644 gcc/testsuite/gcc.target/aarch64/acle/hint-1.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/acle/hint-2.c

Reply via email to