https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115054
--- Comment #8 from Trevor Gross ---
After some more digging it sounds like passing _Float128 arguments indirectly
is the correct thing to do, which is GCC's current behavior. Excerpts from the
calling convention [1]:
> Integer arguments are pa
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115054
--- Comment #7 from Trevor Gross ---
(In reply to connor horman from comment #6)
> According to: https://cs61.seas.harvard.edu/site/pdf/x86-64-abi-20210928.pdf
>
> > Arguments of types _Float16, float, double, _Decimal32, _Decimal64 and
> > __
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115054
connor horman changed:
What|Removed |Added
CC||chorman64 at gmail dot com
--- Comment
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115054
--- Comment #5 from Trevor Gross ---
Looks like bugz cut off part of the sysv quote, here for reference:
> Arguments of types __float128, _Decimal128 and __m128 are split
> into two halves. The least significant ones belong to class SSE, the mo
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115054
--- Comment #4 from Trevor Gross ---
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 abo
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115054
--- Comment #3 from Andrew Pinski ---
https://learn.microsoft.com/en-us/cpp/build/x64-calling-convention?view=msvc-170#parameter-passing
So it uses floating point as the type. But then it is vague on those kind of
type. Gcc treats _Float16 simi
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115054
--- Comment #2 from Andrew Pinski ---
Does Microsoft's abi documents this case?
If not then gcc is as correct here as clang is.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115054
--- Comment #1 from Andrew Pinski ---
What does msvc do?