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.

Reply via email to