This patch adds support for intrinsics implementing FEAT_SME_TMOP from armv9.6-a. All of these require the +sme-tmop arch option.
Regression tested on aarch64-unknown-linux-gnu. OK to merge once stage 1 reopens? Cheers, Claudio Claudio Bantaloukas (1): aarch64: Add SME2.1 structured sparsity outer product intrinsics gcc/config/aarch64/aarch64-c.cc | 2 + gcc/config/aarch64/aarch64-sme.md | 102 ++++++++++++++++++ .../aarch64/aarch64-sve-builtins-shapes.cc | 39 +++++++ .../aarch64/aarch64-sve-builtins-shapes.h | 1 + .../aarch64/aarch64-sve-builtins-sme.cc | 34 ++++++ .../aarch64/aarch64-sve-builtins-sme.def | 24 +++++ gcc/config/aarch64/aarch64-sve-builtins-sme.h | 1 + gcc/config/aarch64/aarch64-sve-builtins.cc | 32 +++++- gcc/config/aarch64/aarch64.h | 3 + gcc/config/aarch64/constraints.md | 4 + gcc/config/aarch64/iterators.md | 26 +++++ .../gcc.target/aarch64/pragma_cpp_predefs_4.c | 16 +++ .../aarch64/sme2/acle-asm/test_sme2_acle.h | 22 ++++ .../sme2/acle-asm/tmopa_lane_za16_bf16_bf16.c | 76 +++++++++++++ .../sme2/acle-asm/tmopa_lane_za16_f16_f16.c | 76 +++++++++++++ .../sme2/acle-asm/tmopa_lane_za16_mf8_mf8.c | 83 ++++++++++++++ .../sme2/acle-asm/tmopa_lane_za32_bf16_bf16.c | 76 +++++++++++++ .../sme2/acle-asm/tmopa_lane_za32_f16_f16.c | 76 +++++++++++++ .../sme2/acle-asm/tmopa_lane_za32_f32_f32.c | 76 +++++++++++++ .../sme2/acle-asm/tmopa_lane_za32_mf8_mf8.c | 83 ++++++++++++++ .../sme2/acle-asm/tmopa_lane_za32_s16_s16.c | 76 +++++++++++++ .../sme2/acle-asm/tmopa_lane_za32_s8_s8.c | 76 +++++++++++++ .../sme2/acle-asm/tmopa_lane_za32_s8_u8.c | 76 +++++++++++++ .../sme2/acle-asm/tmopa_lane_za32_u16_u16.c | 76 +++++++++++++ .../sme2/acle-asm/tmopa_lane_za32_u8_s8.c | 76 +++++++++++++ .../sme2/acle-asm/tmopa_lane_za32_u8_u8.c | 76 +++++++++++++ .../general-c/ternary_za_uint_dual_single_1.c | 87 +++++++++++++++ gcc/testsuite/lib/target-supports.exp | 1 + 28 files changed, 1395 insertions(+), 1 deletion(-) create mode 100644 gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/tmopa_lane_za16_bf16_bf16.c create mode 100644 gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/tmopa_lane_za16_f16_f16.c create mode 100644 gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/tmopa_lane_za16_mf8_mf8.c create mode 100644 gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/tmopa_lane_za32_bf16_bf16.c create mode 100644 gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/tmopa_lane_za32_f16_f16.c create mode 100644 gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/tmopa_lane_za32_f32_f32.c create mode 100644 gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/tmopa_lane_za32_mf8_mf8.c create mode 100644 gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/tmopa_lane_za32_s16_s16.c create mode 100644 gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/tmopa_lane_za32_s8_s8.c create mode 100644 gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/tmopa_lane_za32_s8_u8.c create mode 100644 gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/tmopa_lane_za32_u16_u16.c create mode 100644 gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/tmopa_lane_za32_u8_s8.c create mode 100644 gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/tmopa_lane_za32_u8_u8.c create mode 100644 gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/ternary_za_uint_dual_single_1.c -- 2.51.0
