https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120007
Bug ID: 120007 Summary: AArch64 incorrectly handles 16-bit HFAs Product: gcc Version: 16.0 Status: UNCONFIRMED Keywords: ABI, wrong-code Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: rsandifo at gcc dot gnu.org Target Milestone: --- Target: aarch64*-*-* AAPCS64 defined __fp16 and __bf16 to map to the same fundamental data type: a half-precision floating-point type. By the HFA rules, this means that: struct { __fp16 x; __bf16 y; }; should be treated as a "homogeneous" floating-point aggregate, even though the fields have different formats and different C types. See https://github.com/ARM-software/abi-aa/pull/314 for details.