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