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