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

Reply via email to