Reland "Reland "Reland "Reland "[X86][RFC] Enable `_Float16` type sup… · llvm/llvm-project@655ba9c · GitHub changed half floats from being passed in GPRs to XMM registers. This breaks compatibility with anything that passes half as uint16_t, including compiler-rt.
LLVM generates a call to __truncsfhf2
to cast float->half when the hardware doesn’t have an instruction for it. This now requires rebuilding compiler-rt with the new ABI by configuring it with COMPILER_RT_HAS_FLOAT16
but this is also impossible because _Float16
is only available in clang when avx512fp16 is enabled.
Are there any options for
- Building a compiler-rt that works at all?
- Building a compiler-rt that can support multiple ABIs?