[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