[Bug target/115054] __float128 and _Float16 use incorrect ABI on x86-64 MinGW

2024-11-05 Thread tmgross at umich dot edu via Gcc-bugs
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

[Bug target/115054] __float128 and _Float16 use incorrect ABI on x86-64 MinGW

2024-08-23 Thread tmgross at umich dot edu via Gcc-bugs
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 > > __

[Bug target/115054] __float128 and _Float16 use incorrect ABI on x86-64 MinGW

2024-08-23 Thread chorman64 at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115054 connor horman changed: What|Removed |Added CC||chorman64 at gmail dot com --- Comment

[Bug target/115054] __float128 and _Float16 use incorrect ABI on x86-64 MinGW

2024-05-12 Thread tmgross at umich dot edu via Gcc-bugs
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

[Bug target/115054] __float128 and _Float16 use incorrect ABI on x86-64 MinGW

2024-05-12 Thread tmgross at umich dot edu via Gcc-bugs
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

[Bug target/115054] __float128 and _Float16 use incorrect ABI on x86-64 MinGW

2024-05-12 Thread pinskia at gcc dot gnu.org via Gcc-bugs
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

[Bug target/115054] __float128 and _Float16 use incorrect ABI on x86-64 MinGW

2024-05-12 Thread pinskia at gcc dot gnu.org via Gcc-bugs
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.

[Bug target/115054] __float128 and _Float16 use incorrect ABI on x86-64 MinGW

2024-05-12 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115054 --- Comment #1 from Andrew Pinski --- What does msvc do?