> -----Original Message----- > From: Claudio Bantaloukas <[email protected]> > Sent: 24 November 2025 18:01 > To: Gcc Patches ML <[email protected]> > Cc: Alex Coplan <[email protected]>; Alice Carlotti > <[email protected]>; Andrew Pinski > <[email protected]>; Kyrylo Tkachov > <[email protected]>; Richard Earnshaw <[email protected]>; > Tamar Christina <[email protected]>; Wilco Dijkstra > <[email protected]>; Claudio Bantaloukas > <[email protected]> > Subject: [PATCH v3 3/9] aarch64: add widening sme2 fp8 conversions > > > This patch adds the following intrinsics (all __arm_streaming only) along with > asm tests for them under the +sme2+fp8 flags: > - svfloat16x2_t svcvt1_f16[_mf8]_x2_fpm(svmfloat8_t zn, fpm_t fpm) > - svfloat16x2_t svcvt2_f16[_mf8]_x2_fpm(svmfloat8_t zn, fpm_t fpm) > - svfloat16x2_t svcvt1_bf16[_mf8]_x2_fpm(svmfloat8_t zn, fpm_t fpm) > - svfloat16x2_t svcvt2_bf16[_mf8]_x2_fpm(svmfloat8_t zn, fpm_t fpm) > - svfloat16x2_t svcvtl1_f16[_mf8]_x2_fpm(svmfloat8_t zn, fpm_t fpm) > - svfloat16x2_t svcvtl2_f16[_mf8]_x2_fpm(svmfloat8_t zn, fpm_t fpm) > - svfloat16x2_t svcvtl1_bf16[_mf8]_x2_fpm(svmfloat8_t zn, fpm_t fpm) > - svfloat16x2_t svcvtl2_bf16[_mf8]_x2_fpm(svmfloat8_t zn, fpm_t fpm) >
OK. Thanks, Tamar > gcc/ > * config/aarch64/aarch64-sve-builtins-sve2.cc (svcvtl1, svcvtl2): > Added > new FUNTIONs. > * config/aarch64/aarch64-sve-builtins-sve2.def > (svcvt1, svcvt2, svcvtl1, svcvtl2): Added new > DEF_SVE_FUNCTION_GS_FPM. > * config/aarch64/aarch64-sve-builtins-sve2.h (svcvtl1, svcvtl2): > Added > new function_base. > * config/aarch64/aarch64-sve-builtins.cc > (function_resolver::resolve_unary): use group_suffix_id when > resolving > C overloads. > * config/aarch64/aarch64-sve2.md > (@aarch64_sve2_fp8_cvt_<fp8_cvt_uns_op><mode>): Added new > define_insn. > * config/aarch64/aarch64.h (TARGET_SSME2_FP8): Added new > define. > * config/aarch64/iterators.md > (UNSPEC_F1CVTL. UNSPEC_F2CVTL): Added new unspecs. > (FP8CVT_UNS): Extended int_iterator. > (fp8_cvt_uns_op): Likewise. > > gcc/testsuite/ > * g++.target/aarch64/sme2/aarch64-sme2-acle-asm.exp: Use tuning > flag > to reduce churn in testsuites. > * gcc.target/aarch64/sme2/aarch64-sme2-acle-asm.exp: Likewise. > * gcc.target/aarch64/sme2/acle-asm/cvt_mf8.c: Added test file. > * gcc.target/aarch64/sme2/acle-asm/cvtl_mf8.c: Likewise. > * gcc.target/aarch64/sve/acle/asm/test_sve_acle.h (TEST_X2_WIDE): > Added > fpm0 argument for intrinsics. > --- > .../aarch64/aarch64-sve-builtins-sve2.cc | 2 + > .../aarch64/aarch64-sve-builtins-sve2.def | 8 ++++ > .../aarch64/aarch64-sve-builtins-sve2.h | 2 + > gcc/config/aarch64/aarch64-sve-builtins.cc | 3 +- > gcc/config/aarch64/aarch64-sve2.md | 10 ++++ > gcc/config/aarch64/aarch64.h | 2 + > gcc/config/aarch64/iterators.md | 6 +++ > .../aarch64/sme2/aarch64-sme2-acle-asm.exp | 5 +- > .../aarch64/sme2/aarch64-sme2-acle-asm.exp | 5 +- > .../aarch64/sme2/acle-asm/cvt_mf8.c | 47 +++++++++++++++++++ > .../aarch64/sme2/acle-asm/cvtl_mf8.c | 47 +++++++++++++++++++ > .../aarch64/sve/acle/asm/test_sve_acle.h | 1 + > 12 files changed, 135 insertions(+), 3 deletions(-) > create mode 100644 gcc/testsuite/gcc.target/aarch64/sme2/acle- > asm/cvt_mf8.c > create mode 100644 gcc/testsuite/gcc.target/aarch64/sme2/acle- > asm/cvtl_mf8.c
