https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96895
--- Comment #4 from H.J. Lu <hjl.tools at gmail dot com> --- (In reply to Michael Matz from comment #2) > 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. It makes senses to me. It isn't the first time that GCC changes the ABI. This is why there is -Wabi is.