By default, LLVM uses the "C" calling convention for all runtime library functions. The half-precision FP conversion functions use the soft-float calling convention, and are needed for some targets which use the hard-float convention by default, so must have their calling convention explicitly set.
Details
Details
Diff Detail
Diff Detail
Event Timeline
Comment Actions
The half-precision FP conversion functions use the soft-float calling convention,
Sometimes, I despair.
Tim.
Comment Actions
Thanks, committed revision 215348.
Sometimes, I despair.
So did I at first, but this actually makes sense. These functions are only used on targets which do not have native f16 instructions, so the conversion will have to be done by bit-twiddling, so the values will need to be moved to integer registers anyway, making a hard-float variant pointless.