This patch adds support for the new SME LUTv2 architecture extension as
described in the ACLE.  It adds the `+sme-lutv2` target flag, the
`__ARM_FEATURE_SME_LUTv2` feature test macro and the `svluti4_zt`,
`svwrite_lane_zt` and `svwrite_zt` intrinsics.  Making use of the new
instructions without the intrinsics will be done in a follow up patch.

Testing done:
`make check-gcc` and `make check-target` pass.

ChangeLog:
* V1: Initial series.
* V2:
  * 0/2
    * "AArch64" => "aarch64" in commit titles.
    * Add "testing done" to cover letter.
  * 1/2
    * More informative commit message
    * Document the feature flag in `gcc/doc/invoke.texi`.
    * Fix comments in `aarch64-option-extensions.def`
  * 2/2
    * More informative commit message

 gcc/config/aarch64/aarch64-c.cc               |   1 +
 .../aarch64/aarch64-option-extensions.def     |   2 +
 gcc/config/aarch64/aarch64-sme.md             |  36 ++
 .../aarch64/aarch64-sve-builtins-shapes.cc    | 104 ++++-
 .../aarch64/aarch64-sve-builtins-shapes.h     |   3 +
 .../aarch64/aarch64-sve-builtins-sme.cc       |  68 +++
 .../aarch64/aarch64-sve-builtins-sme.def      |   3 +
 gcc/config/aarch64/aarch64-sve-builtins-sme.h |   3 +
 gcc/config/aarch64/aarch64-sve-builtins.h     |   7 +-
 gcc/config/aarch64/aarch64.h                  |   7 +-
 gcc/doc/invoke.texi                           |   2 +
 .../aarch64/sme2/acle-asm/svluti4_zt_1.c      |  30 ++
 .../aarch64/sme2/acle-asm/svwrite_lane_zt_1.c | 204 +++++++++
 .../aarch64/sme2/acle-asm/svwrite_zt_1.c      |  96 +++++
 .../aarch64/sve/acle/general-c/svluti4_zt_1.c |  77 ++++
 .../sve/acle/general-c/svwrite_lane_zt_1.c    | 397 ++++++++++++++++++
 .../aarch64/sve/acle/general-c/svwrite_zt_1.c | 342 +++++++++++++++
 17 files changed, 1377 insertions(+), 5 deletions(-)
 create mode 100644 
gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/svluti4_zt_1.c
 create mode 100644 
gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/svwrite_lane_zt_1.c
 create mode 100644 
gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/svwrite_zt_1.c
 create mode 100644 
gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/svluti4_zt_1.c
 create mode 100644 
gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/svwrite_lane_zt_1.c
 create mode 100644 
gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/svwrite_zt_1.c

--
2.43.0

Reply via email to