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.

Reply via email to