libstdc++: Fix incorrect function call in -ffast-math optimization

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.
This commit is contained in:
Matthias Kretz 2023-02-03 17:47:05 +01:00
parent 1fd3836463
commit a5de17d912

View 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