libstdc++: Fix incorrect function call in -ffast-math optimization
authorMatthias Kretz <m.kretz@gsi.de>
Fri, 3 Feb 2023 16:47:05 +0000 (17:47 +0100)
committerMatthias Kretz <m.kretz@gsi.de>
Thu, 16 Feb 2023 14:58:34 +0000 (15:58 +0100)
Signed-off-by: Matthias Kretz <m.kretz@gsi.de>
libstdc++-v3/ChangeLog:

* include/experimental/bits/simd_math.h (__hypot): Bitcasting
between scalars requires the __bit_cast helper function instead
of simd_bit_cast.

libstdc++-v3/include/experimental/bits/simd_math.h

index c20315e..c91f05f 100644 (file)
@@ -1010,7 +1010,7 @@ template <typename _VV, typename = __detail::__odr_helper>
            using _IV = rebind_simd_t<_Ip, _V>;
            const auto __as_int = simd_bit_cast<_IV>(__hi_exp);
            const _V __scale
-             = simd_bit_cast<_V>(2 * simd_bit_cast<_Ip>(_Tp(1)) - __as_int);
+             = simd_bit_cast<_V>(2 * __bit_cast<_Ip>(_Tp(1)) - __as_int);
 #else
            const _V __scale = (__hi_exp ^ __inf) * _Tp(.5);
 #endif
@@ -1181,7 +1181,7 @@ _GLIBCXX_SIMD_CVTING2(hypot)
                using _IV = rebind_simd_t<_Ip, _V>;
                const auto __as_int = simd_bit_cast<_IV>(__hi_exp);
                const _V __scale
-                 = simd_bit_cast<_V>(2 * simd_bit_cast<_Ip>(_Tp(1)) - __as_int);
+                 = simd_bit_cast<_V>(2 * __bit_cast<_Ip>(_Tp(1)) - __as_int);
 #else
                const _V __scale = (__hi_exp ^ __inf) * _Tp(.5);
 #endif