[Bug libstdc++/122981] pr109261_constexpr_simd.cc and pr115454_find_last_set.cc fail on arm-none-eabi

"azoff at gcc dot gnu.org via Gcc-bugs" <[email protected]>
Newsgroups gmane.comp.gcc.bugs
Message-ID <[email protected]/bugzilla/>
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=122981

--- Comment #11 from Torbjorn SVENSSON <azoff at gcc dot gnu.org> ---
(In reply to Matthias Kretz (Vir) from comment #10)
> azoff at gcc dot gnu.org [Tuesday, 18 August 2026, 06:51:36 CEST]:
> > I've added this on top of r17-2833-g32657f29f91871 and it fixes
> > experimental/simd/pr109261_constexpr_simd.cc and
> > experimental/simd/pr115454_find_last_set.cc tests on arm-none-eabi for me. I
> > see no regression with this change.
> 
> I also modified the patch some more to remove the now unused
> __int_for_sizeof 
> branches:
> 
> --- a/libstdc++-v3/include/experimental/bits/simd.h
> +++ b/libstdc++-v3/include/experimental/bits/simd.h
> @@ -608,16 +608,14 @@ struct __is_bitmask
>    __int_for_sizeof()
>    {
>      static_assert(_Bytes > 0);
> -    if constexpr (_Bytes == sizeof(int))
> -      return int();
> -    else if constexpr (_Bytes == sizeof(_SChar))
> -      return _SChar();
> -    else if constexpr (_Bytes == sizeof(short))
> -      return short();
> -    else if constexpr (_Bytes == sizeof(long))
> -      return long();
> -    else if constexpr (_Bytes == sizeof(_LLong))
> -      return _LLong();
> +    if constexpr (_Bytes == sizeof(int32_t))
> +      return int32_t();
> +    else if constexpr (_Bytes == sizeof(int8_t))
> +      return int8_t();
> +    else if constexpr (_Bytes == sizeof(int16_t))
> +      return int16_t();
> +    else if constexpr (_Bytes == sizeof(int64_t))
> +      return int64_t();
>    #ifdef __SIZEOF_INT128__
>      else if constexpr (_Bytes == sizeof(__int128))
>        return __int128();
> 
> I also saw no regressions on x86_64, aarch64, and arm-linux-gnueabi.
> 
> Do you want to post the new patch? Otherwise, I basically have it ready ...

No, it's your work. :)
I'm just happy to have 2 less failures in my logs.

> > Also, the test that I created in comment 2 works with this change, but is
> > the test worth keeping?
> 
> I'd not add a new test:
> 1. This is experimental and supposed to go away.
> 2. There's a very thorough 'make check-simd' target in the
> libstdc++/testsuite 
> directory, which already covers it. Probably nobody but me runs it, though :)

Ok!
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.