[llvm] RuntimeLibcalls: Stop opting out of exp10 (PR #148604)

Nikita Popov via llvm-commits llvm-commits at lists.llvm.org
Tue Jul 15 01:27:54 PDT 2025


nikic wrote:

> Actually, is there anything unique about `exp10` here? All `x86_fp80` intrinsics on Apple (as well as Windows) that get lowered to libm calls have the same problem.

Yeah, that's my understanding as well.

> > Except for target specific types (x86_fp80 and ppc_fp128) I think it is preferable if missing FP libcalls that cannot be legalized result in a linker error instead of a compiler error, which allows the user to provide them. At least when considering the world we live in _now_, rather than possible future designs.
> 
> In theory this could lower to the C23 `exp10f64x` symbol rather than having an error (supported by glibc but not much else, yet). The long-term correctness of this depends on an assumption that Windows and Apple will either never specify `_Float64x`, or if they do specify it, make it `x86_fp80` (cc #97335).
> 
> Edit: sorry, I see you aren't talking about x86_fp80 here.

Yes, what specifically concerns me is that change to fp128 behavior in this PR. I don't think that should ever result in a hard compiler error.

I wasn't aware that the f64x suffix is a thing. That does seem like a reasonable fallback for targets where long double is not x86_fp80. But I'm also not sure this is really worth bothering with. Is there any real interest in having fp80 work across all x86 targets?



https://github.com/llvm/llvm-project/pull/148604


More information about the llvm-commits mailing list