https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96895
--- Comment #2 from Michael Matz <matz at gcc dot gnu.org> --- The psABI doesn't say anything about such types, no. Maybe it could in some additional info pages, but it's always a problem to codify behaviour retroactively in it, when conflicting implementations already exist. It is about extension types, though, so we might be fine. FWIW, even ignoring the obvious relation of v1Xf to Xf, GCC behaviour for float and clang behaviour for double is the most logical one: this extended type is most similar to a struct containing one float/double, and such are passed in XMM registers per psABI. As this is also consistent with how a single top-level float is passed, this choice is the most consistent one. This is also what the psABI _would_ say, if we had written it into it, so at least both compilers would need a change to implement it.