[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.