This is a summary of discussions relative to the merge request created by
Richard Ball (ricbal02) <[email protected]> titled
aarch64: Add support for sve2p3 and sme2p3 conversion intrinsics
since its creation.
Description: 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.
CC: [email protected], [email protected], [email protected],
[email protected], [email protected], [email protected]
The full and up to date discussion can be found at
https://forge.sourceware.org/gcc/gcc/pulls/165
The merge request has been closed without being merged directly on the forge
repository.
On 2026-06-01 10:40:24+00:00, Claudio Bantaloukas (rdfm) <[email protected]>
commented on the code:
LGTM (modulo s_narrow_fsu_sve2p3 being renamed to s_narrow_su). But I'm not a
maintainer.