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

"mkretz 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 #7 from Matthias Kretz (Vir) <mkretz at gcc dot gnu.org> ---
This is the actual issue:

> arm-none-eabi defines int32_t as long int.

Simple test case:
  using V1 [[gnu::vector_size(8)]] = int;
  using V2 [[gnu::vector_size(8)]] = std::int32_t;
  static_assert(std::is_convertible_v<V1, V2>); // fails

  static_assert(std::is_convertible_v<int, std::int32_t>); // OK

The problem is not the conversion from generic vector to ARM vector. The 
problem is the mismatch of value-types.

I suspect a better solution is to consistently use intN_t instead of short/
int/long. First tests look promising on arm-none-eabi.
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.