https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115054

--- Comment #4 from Trevor Gross <tmgross at umich dot edu> ---
To my knowledge, MSVC does not support or specify an ABI for 16- or 128-bit
IEEE floating point types, so I do suppose that either GCC or Clang could be
considered correct here.

SysV doesn't say anything about f16 but does clarify that f128 should be SSE:

> Arguments of types __float128, _Decimal128 and __m128 are split
into two halves. The least significant ones belong to class SSE, the most
significant one to class SSEUP

Falling back to what SysV says seems reasonable to me since MSVC doesn't
provide any guidance, and passing via xmm is better register use anyway. Is
there any reason not to match SysV and Clang here? One side needs to change,
the mismatch is causing problems with rt math symbols.

Reply via email to