This is a summary of discussions relative to the merge request created by 
Richard Ball (ricbal02) <[email protected]> titled
aarch64: Add Support for F16F32DOT
since its creation.

Description: This patch adds the following advsimd intrinsics:

        *vdot_f32_f16
        *vdotq_f32_f16
        *vdot_lane_f32_f16
        *vdot_laneq_f32_f16
        *vdotq_lane_f32_f16
        *vdotq_laneq_f32_f16

gcc/ChangeLog:

        * config/aarch64/aarch64-c.cc
        (aarch64_update_cpp_builtins): New target flag.
        * config/aarch64/aarch64-simd-builtins.def: New functions.
        * config/aarch64/aarch64-simd.md
        (aarch64_simdfdot<mode>): New pattern.
        (aarch64_simdfdot_lane<VF:isquadop><VDQSF:mode>): Likewise.
        * config/aarch64/aarch64.h
        (TARGET_F16F32DOT): New target flag.
        * config/aarch64/arm_neon.h
        (target): Add f16f32dot section
        (__attribute__): New builtin function calls.
        (vdot_f32_f16): Likewise.
        (vdotq_f32_f16): Likewise.
        (vdot_lane_f32_f16): Likewise.
        (vdot_laneq_f32_f16): Likewise.
        (vdotq_lane_f32_f16): Likewise.
        (vdotq_laneq_f32_f16): Likewise.
        * config/aarch64/iterators.md (q): New options for isquadop.
        * doc/invoke.texi: Add f16f32dot.

gcc/testsuite/ChangeLog:

        * lib/target-supports.exp: New check_effective_target.
        * gcc.target/aarch64/advsimd-intrinsics/fdot-1.c: New test.
        * gcc.target/aarch64/advsimd-intrinsics/fdot-2.c: New test.
        * gcc.target/aarch64/advsimd-intrinsics/fdot-3.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/166

The merge request has been closed without being merged directly on the forge 
repository.

On 2026-06-01 15:31:52+00:00, Karl Meakin (karmea01) <[email protected]> 
approved the changes:


> +++ gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/fdot-2.c
> @@ -0,0 +5,4 @@
> +/* { dg-additional-options "-mbig-endian --save-temps" } */
> +/* { dg-final { check-function-bodies "**" "" {-O[^0]} } } */
> +/* { dg-skip-if "" { *-*-* } { "-fno-fat-lto-objects" } } */
> +
This file is just a duplicate of `fdot-1.c`. What is it for?
> +++ gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/fdot-2.c
> @@ -0,0 +5,4 @@
> +/* { dg-additional-options "-mbig-endian --save-temps" } */
> +/* { dg-final { check-function-bodies "**" "" {-O[^0]} } } */
> +/* { dg-skip-if "" { *-*-* } { "-fno-fat-lto-objects" } } */
> +
This one tests for Big-endian

Reply via email to