[committed] libstdc++: Fix experimental::__is_x86_pd() [PR124657]

Message ID 20260505193359.262418-1-jwakely@redhat.com
State New
Headers
Series [committed] libstdc++: Fix experimental::__is_x86_pd() [PR124657] |

Commit Message

Jonathan Wakely May 5, 2026, 7:32 p.m. UTC
  libstdc++-v3/ChangeLog:

	PR libstdc++/124657
	* include/experimental/bits/simd_x86.h (__is_x86_pd): Fix macro
	names and refactor to reduce instantiations.
---

Tested x86_64-linux. Pushed to trunk.

 libstdc++-v3/include/experimental/bits/simd_x86.h | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)
  

Patch

diff --git a/libstdc++-v3/include/experimental/bits/simd_x86.h b/libstdc++-v3/include/experimental/bits/simd_x86.h
index 5d4ed5ad58c8..b2d564676b0c 100644
--- a/libstdc++-v3/include/experimental/bits/simd_x86.h
+++ b/libstdc++-v3/include/experimental/bits/simd_x86.h
@@ -426,11 +426,14 @@  template <typename _Tp>
   constexpr bool
   __is_x86_pd()
   {
-#if __LDBL_MANT_DIG == __DBL_MANT_DIG
-    if constexpr (is_same_v<_Tp, long double>)
+    if constexpr (is_same_v<_Tp, double>)
+      return true;
+#if __LDBL_MANT_DIG__ == __DBL_MANT_DIG__
+    else if constexpr (is_same_v<_Tp, long double>)
       return true;
 #endif
-    return is_same_v<_Tp, double>;
+    else
+      return false;
   }
 
 template <typename _Tp, size_t _Np>