https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117016
--- Comment #4 from Pieter P <pieter.p.dev at outlook dot com> --- Thank you, I appreciate for the quick responses. > The design goal of the fixed_size ABI was an ABI-stable "this is never going > to break on ABI boundaries" type. You're right, ABI stability is not something I considered. > Not really. Considering operator new gets passed the alignment since c++17. Indeed, but allocation is not the issue I was struggling with: I wanted to be able to have the simple requirement that "all array arguments should be aligned to the native SIMD size" for the user-facing APIs, and then decide on the optimal SIMD size in the underlying algorithm, as an implementation detail. The algorithm may encounter remainders that are not multiples of the native SIMD sizes, and I was using the fixed_size_simd type to handle those. As a work-around, I'll just have to implement the remainders manually using multiple smaller native SIMD types and/or masks, rather than using fixed_size_simd.