kparzysz-quic opened a new pull request, #12877:
URL: https://github.com/apache/tvm/pull/12877

   For conversions between `_Float16` and `float`, LLVM uses runtime functions 
`__extendhfsf2` and `__truncsfhf2`.  On X86 up until version 14, LLVM used 
`uint16_t` for representing `_Float16`. Starting with LLVM 15, half- precision 
values can be passed in XMM registers (i.e. as floating-point). This happens 
when the compilation target has SSE2 enabled (either directly, or by enabling a 
feature that implies SSE2).
   Because the names of the conversion functions remain unchanged, it is 
impossible for TVM to provide them in the runtime, and have them work in both 
cases. To solve this issue, emit these functions directly into the target 
module after detecting whether or not to use floating-point ABI. To allow the 
linker to remove potential duplicates (or if they are unused), they are weak 
and reside in a separate section.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscr...@tvm.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to