[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

[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

[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

[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?