[clang] [clang][PowerPC] Enable IEEE-128 long double on FreeBSD/powerpc64le (PR #201298)
Piotr Kubaj via cfe-commits
cfe-commits at lists.llvm.org
Mon Jun 22 04:21:10 PDT 2026
================
@@ -234,7 +232,10 @@ llvm::Constant *CodeGenModule::getBuiltinLibFunction(const FunctionDecl *FD,
else {
// TODO: This mutation should also be applied to other targets other than
// PPC, after backend supports IEEE 128-bit style libcalls.
- if (getTriple().isPPC64() &&
+ // FreeBSD's powerpc64le has a single IEEE-128 long double format and uses
+ // the unsuffixed libm names, so skip the IEEE-128 libcall redirection
+ // there; other PPC64 IEEE-128 targets keep it.
----------------
pkubaj wrote:
The reason `*l` was chosen as opposed to `__*ieee128` was that (AFAIK) `__*ieee128` exists only to help with transition from IBM long double. FreeBSD never had it - even its powerpc64 port is on 64-bit long double and powerpc64le is transitioning from 64-bit long double. So since we don't have the legacy of IBM long double, we can just directly switch to `*l`. Moreover, all the other FreeBSD-supported architectures are already on `*l` and won't switch from that. It just seems much more complicated without any benefit.
https://github.com/llvm/llvm-project/pull/201298
More information about the cfe-commits
mailing list