From a575c519169184bef374009c8ed6e805ebac609a Mon Sep 17 00:00:00 2001 From: Alexandre Oliva Date: Tue, 28 Apr 2026 22:31:27 -0300 Subject: [PATCH] libstdc++: simd: map 64-bit long double to double on sse [PR124657] When long double is as wide as double on x86 (-mlong-double-64), make the __intrinsic_type a vector of double. for libstdc++-v3/ChangeLog PR libstdc++/124657 * include/experimental/bits/simd.h (__intrinsic_type::type): Map long double to double. --- libstdc++-v3/include/experimental/bits/simd.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libstdc++-v3/include/experimental/bits/simd.h b/libstdc++-v3/include/experimental/bits/simd.h index b96818af6e6..8c30c8af268 100644 --- a/libstdc++-v3/include/experimental/bits/simd.h +++ b/libstdc++-v3/include/experimental/bits/simd.h @@ -2477,7 +2477,8 @@ template static constexpr size_t _S_VBytes = _Bytes <= 16 ? 16 : _Bytes <= 32 ? 32 : 64; using type [[__gnu__::__vector_size__(_S_VBytes)]] - = conditional_t, long long int, _Tp>; + = conditional_t, long long int, + conditional_t, double, _Tp> >; }; #endif // _GLIBCXX_SIMD_HAVE_SSE