On Thu, 24 Jun 2021 at 15:02, Matthias Kretz wrote: > > For -ffast-math there was a missing using namespace __proposed left. The > attached patch resolves the issue.
OK for trunk, please push (after adding yourself to the "Write After Approval" section of MAINTAINERS as per https://gcc.gnu.org/gitwrite.html as your first commit). Thanks! > From: Matthias Kretz <m.kr...@gsi.de> > > The __bit_cast function was a hack to achieve what __builtin_bit_cast > can do, therefore use __builtin_bit_cast if possible. However, > __builtin_bit_cast cannot be used to cast from/to fixed_size_simd, since > it isn't trivially copyable (in the language sense — in principle it > is). Therefore add __proposed::simd_bit_cast to enable the use case > required in the test framework. > > Signed-off-by: Matthias Kretz <m.kr...@gsi.de> > > libstdc++-v3/ChangeLog: > > * include/experimental/bits/simd.h (__bit_cast): Implement via > __builtin_bit_cast #if available. > (__proposed::simd_bit_cast): Add overloads for simd and > simd_mask, which use __builtin_bit_cast (or __bit_cast #if not > available), which return an object of the requested type with > the same bits as the argument. > * include/experimental/bits/simd_math.h: Use simd_bit_cast > instead of __bit_cast to allow casts to fixed_size_simd. > (copysign): Remove branch that was only required if __bit_cast > cannot be constexpr. > * testsuite/experimental/simd/tests/bits/test_values.h: Switch > from __bit_cast to __proposed::simd_bit_cast since the former > will not cast fixed_size objects anymore. > --- > libstdc++-v3/include/experimental/bits/simd.h | 57 ++++++++++++++++++- > .../include/experimental/bits/simd_math.h | 37 ++++++------ > .../simd/tests/bits/test_values.h | 8 +-- > 3 files changed, 76 insertions(+), 26 deletions(-) > > > -- > ────────────────────────────────────────────────────────────────────────── > Dr. Matthias Kretz https://mattkretz.github.io > GSI Helmholtz Centre for Heavy Ion Research https://gsi.de > std::experimental::simd https://github.com/VcDevel/std-simd > ──────────────────────────────────────────────────────────────────────────