Hi gcc-patches mailing list,
ricbal02 via Sourceware Forge <[email protected]> 
has requested that the following forgejo pull request
be published on the mailing list.

Created on: 2026-05-31 11:13:03+00:00
Latest update: 2026-05-31 11:16:07+00:00
Changes: 32 changed files, 1111 additions, 6 deletions
Head revision: ricbal02/gcc-TEST ref sve2p3-conversions commit 
3ec880aa37706cc0f116f6e320842263b21b72f8
Base revision: gcc/gcc-TEST ref trunk commit 
fd6d39208ba4edd9527171cc0f5426a48e63a6a2 r17-1049-gfd6d39208ba4ed
Merge base: fd6d39208ba4edd9527171cc0f5426a48e63a6a2
Full diff url: https://forge.sourceware.org/gcc/gcc-TEST/pulls/165.diff
Discussion:  https://forge.sourceware.org/gcc/gcc-TEST/pulls/165
Requested Reviewers:

This patch adds support for new intrinsics which make use of
the conversion instructions introduced in SVE2p3/SME2p3.

Include in the patch series is a required dependency patch which has also been 
sent in a separate email.

gcc/ChangeLog:

        * config/aarch64/aarch64-sve-builtins-sve2.cc
        (class svcvtt_impl): New function impl.
        (class svcvtb_impl): Likewise.
        (FUNCTION): Likewise.
        * config/aarch64/aarch64-sve-builtins-sve2.def
        (REQUIRED_EXTENSIONS): List new functions.
        (svdot): Moved to correct location.
        (svdot_lane): Likewise.
        (svcvtn): New function.
        (svcvtt): Likewise.
        (svcvtb): Likewise.
        * config/aarch64/aarch64-sve-builtins-sve2.h: Likewise.
        * config/aarch64/aarch64-sve-builtins.cc
        (TYPES_cvtzn): New function types.
        (TYPES_cvttb): Likewise.
        (cvtzn): Likewise.
        (cvttb): Likewise.
        * config/aarch64/aarch64-sve2.md
        (@aarch64_sve2_scvtfb<mode>): New pattern.
        (@aarch64_sve2_scvtflt<mode>): Likewise.
        (@aarch64_sve2_ucvtfb<mode>): Likewise.
        (@aarch64_sve2_ucvtflt<mode>): Likewise.
        (@aarch64_sve2_fcvtzsn<mode>): Likewise.
        (@aarch64_sve2_fcvtzun<mode>): Likewise.
        * config/aarch64/iterators.md
        (b): Ventype changes.
        (VNx16HF): Likewise.
        (VNx16QI): Likewise.

gcc/testsuite/ChangeLog:

        * gcc.target/aarch64/sme2/acle-asm/cvtb_f16_s8.c: New test.
        * gcc.target/aarch64/sme2/acle-asm/cvtb_f16_u8.c: New test.
        * gcc.target/aarch64/sme2/acle-asm/cvtb_f32_s16.c: New test.
        * gcc.target/aarch64/sme2/acle-asm/cvtb_f32_u16.c: New test.
        * gcc.target/aarch64/sme2/acle-asm/cvtb_f64_s32.c: New test.
        * gcc.target/aarch64/sme2/acle-asm/cvtb_f64_u32.c: New test.
        * gcc.target/aarch64/sme2/acle-asm/cvtn_s16_f32_x2.c: New test.
        * gcc.target/aarch64/sme2/acle-asm/cvtn_s32_f64_x2.c: New test.
        * gcc.target/aarch64/sme2/acle-asm/cvtn_s8_f16_x2.c: New test.
        * gcc.target/aarch64/sme2/acle-asm/cvtn_u16_f32_x2.c: New test.
        * gcc.target/aarch64/sme2/acle-asm/cvtn_u32_f64_x2.c: New test.
        * gcc.target/aarch64/sme2/acle-asm/cvtn_u8_f16_x2.c: New test.
        * gcc.target/aarch64/sme2/acle-asm/cvtt_f16_s8.c: New test.
        * gcc.target/aarch64/sme2/acle-asm/cvtt_f16_u8.c: New test.
        * gcc.target/aarch64/sme2/acle-asm/cvtt_f32_s16.c: New test.
        * gcc.target/aarch64/sme2/acle-asm/cvtt_f32_u16.c: New test.
        * gcc.target/aarch64/sme2/acle-asm/cvtt_f64_s32.c: New test.
        * gcc.target/aarch64/sme2/acle-asm/cvtt_f64_u32.c: New test.


Changed files:
- A: gcc/testsuite/gcc.target/aarch64/dotproduct_intrinsicless.c
- A: gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/cvtb_f16_s8.c
- A: gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/cvtb_f16_u8.c
- A: gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/cvtb_f32_s16.c
- A: gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/cvtb_f32_u16.c
- A: gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/cvtb_f64_s32.c
- A: gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/cvtb_f64_u32.c
- A: gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/cvtn_s16_f32_x2.c
- A: gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/cvtn_s32_f64_x2.c
- A: gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/cvtn_s8_f16_x2.c
- A: gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/cvtn_u16_f32_x2.c
- A: gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/cvtn_u32_f64_x2.c
- A: gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/cvtn_u8_f16_x2.c
- A: gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/cvtt_f16_s8.c
- A: gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/cvtt_f16_u8.c
- A: gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/cvtt_f32_s16.c
- A: gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/cvtt_f32_u16.c
- A: gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/cvtt_f64_s32.c
- A: gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/cvtt_f64_u32.c
- A: gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/dot_lane_s16.c
- A: gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/dot_lane_u16.c
- A: gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/dot_s16.c
- A: gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/dot_u16.c
- M: gcc/config/aarch64/aarch64-sve-builtins-base.cc
- M: gcc/config/aarch64/aarch64-sve-builtins-sve2.cc
- M: gcc/config/aarch64/aarch64-sve-builtins-sve2.def
- M: gcc/config/aarch64/aarch64-sve-builtins-sve2.h
- M: gcc/config/aarch64/aarch64-sve-builtins.cc
- M: gcc/config/aarch64/aarch64-sve2.md
- M: gcc/config/aarch64/aarch64.h
- M: gcc/config/aarch64/iterators.md
- M: gcc/doc/invoke.texi


Richard Ball (2):
  aarch64: Add Support for SVE2p3/SME2p3 dot product intrinsics
  aarch64: Add support for sve2p3 and sme2p3 conversion intrinsics

 .../aarch64/aarch64-sve-builtins-base.cc      |  29 ++++-
 .../aarch64/aarch64-sve-builtins-sve2.cc      |  38 +++++-
 .../aarch64/aarch64-sve-builtins-sve2.def     |   8 ++
 .../aarch64/aarch64-sve-builtins-sve2.h       |   2 +
 gcc/config/aarch64/aarch64-sve-builtins.cc    |  24 ++++
 gcc/config/aarch64/aarch64-sve2.md            | 110 ++++++++++++++++++
 gcc/config/aarch64/aarch64.h                  |   8 ++
 gcc/config/aarch64/iterators.md               |  16 ++-
 gcc/doc/invoke.texi                           |   4 +
 .../aarch64/dotproduct_intrinsicless.c        |  30 +++++
 .../aarch64/sme2/acle-asm/cvtb_f16_s8.c       |  22 ++++
 .../aarch64/sme2/acle-asm/cvtb_f16_u8.c       |  22 ++++
 .../aarch64/sme2/acle-asm/cvtb_f32_s16.c      |  22 ++++
 .../aarch64/sme2/acle-asm/cvtb_f32_u16.c      |  22 ++++
 .../aarch64/sme2/acle-asm/cvtb_f64_s32.c      |  22 ++++
 .../aarch64/sme2/acle-asm/cvtb_f64_u32.c      |  22 ++++
 .../aarch64/sme2/acle-asm/cvtn_s16_f32_x2.c   |  51 ++++++++
 .../aarch64/sme2/acle-asm/cvtn_s32_f64_x2.c   |  51 ++++++++
 .../aarch64/sme2/acle-asm/cvtn_s8_f16_x2.c    |  51 ++++++++
 .../aarch64/sme2/acle-asm/cvtn_u16_f32_x2.c   |  51 ++++++++
 .../aarch64/sme2/acle-asm/cvtn_u32_f64_x2.c   |  51 ++++++++
 .../aarch64/sme2/acle-asm/cvtn_u8_f16_x2.c    |  51 ++++++++
 .../aarch64/sme2/acle-asm/cvtt_f16_s8.c       |  22 ++++
 .../aarch64/sme2/acle-asm/cvtt_f16_u8.c       |  22 ++++
 .../aarch64/sme2/acle-asm/cvtt_f32_s16.c      |  22 ++++
 .../aarch64/sme2/acle-asm/cvtt_f32_u16.c      |  22 ++++
 .../aarch64/sme2/acle-asm/cvtt_f64_s32.c      |  22 ++++
 .../aarch64/sme2/acle-asm/cvtt_f64_u32.c      |  22 ++++
 .../aarch64/sme2/acle-asm/dot_lane_s16.c      |  94 +++++++++++++++
 .../aarch64/sme2/acle-asm/dot_lane_u16.c      |  94 +++++++++++++++
 .../aarch64/sme2/acle-asm/dot_s16.c           |  45 +++++++
 .../aarch64/sme2/acle-asm/dot_u16.c           |  45 +++++++
 32 files changed, 1111 insertions(+), 6 deletions(-)
 create mode 100644 gcc/testsuite/gcc.target/aarch64/dotproduct_intrinsicless.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/cvtb_f16_s8.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/cvtb_f16_u8.c
 create mode 100644 
gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/cvtb_f32_s16.c
 create mode 100644 
gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/cvtb_f32_u16.c
 create mode 100644 
gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/cvtb_f64_s32.c
 create mode 100644 
gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/cvtb_f64_u32.c
 create mode 100644 
gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/cvtn_s16_f32_x2.c
 create mode 100644 
gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/cvtn_s32_f64_x2.c
 create mode 100644 
gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/cvtn_s8_f16_x2.c
 create mode 100644 
gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/cvtn_u16_f32_x2.c
 create mode 100644 
gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/cvtn_u32_f64_x2.c
 create mode 100644 
gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/cvtn_u8_f16_x2.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/cvtt_f16_s8.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/cvtt_f16_u8.c
 create mode 100644 
gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/cvtt_f32_s16.c
 create mode 100644 
gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/cvtt_f32_u16.c
 create mode 100644 
gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/cvtt_f64_s32.c
 create mode 100644 
gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/cvtt_f64_u32.c
 create mode 100644 
gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/dot_lane_s16.c
 create mode 100644 
gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/dot_lane_u16.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/dot_s16.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/dot_u16.c

-- 
2.54.0

Reply via email to