[Bug target/96895] ABI of returning V1DF differs between GCC and clang

hjl.tools at gmail dot com gcc-bugzilla@gcc.gnu.org
Wed Sep 2 12:18:26 GMT 2020


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.


More information about the Gcc-bugs mailing list