[gcc(refs/users/meissner/heads/work223-test)] Fix __bfloat16 signalling NaN support on PowerPC.
Michael Meissner
meissner@gcc.gnu.org
Sat Nov 1 08:33:17 GMT 2025
https://gcc.gnu.org/g:20214a9bc29fa7fbe0cdefd93a626167ff97f7ee
commit 20214a9bc29fa7fbe0cdefd93a626167ff97f7ee
Author: Michael Meissner <meissner@linux.ibm.com>
Date: Sat Nov 1 04:31:46 2025 -0400
Fix __bfloat16 signalling NaN support on PowerPC.
2025-10-31 Michael Meissner <meissner@linux.ibm.com>
libstdc++-v3/
* include/limits (__bfloat16 signaling_NaN): Use __builtin_nansf and
convert it to __bfloat16 instead of using __builtin_nansf16b.
Diff:
---
libstdc++-v3/include/std/limits | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/libstdc++-v3/include/std/limits b/libstdc++-v3/include/std/limits
index 49ce7c935e9d..24fb375c9cb0 100644
--- a/libstdc++-v3/include/std/limits
+++ b/libstdc++-v3/include/std/limits
@@ -2067,9 +2067,16 @@ __glibcxx_float_n(128)
quiet_NaN() _GLIBCXX_USE_NOEXCEPT
{ return __gnu_cxx::__bfloat16_t(__builtin_nanf("")); }
+#ifdef _ARCH_PPC
+ static _GLIBCXX_CONSTEXPR __gnu_cxx::__bfloat16_t
+ signaling_NaN() _GLIBCXX_USE_NOEXCEPT
+ { return __gnu_cxx::__bfloat16_t(__builtin_nansf("")); }
+
+#else
static _GLIBCXX_CONSTEXPR __gnu_cxx::__bfloat16_t
signaling_NaN() _GLIBCXX_USE_NOEXCEPT
{ return __builtin_nansf16b(""); }
+#endif
static _GLIBCXX_CONSTEXPR __gnu_cxx::__bfloat16_t
denorm_min() _GLIBCXX_USE_NOEXCEPT
More information about the Libstdc++-cvs
mailing list