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(-)

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>
-- 
2.54.0

Reply via email to