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.
