https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120895

--- Comment #33 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
If you want a type that will be always 64-byte aligned, it can be easily
defined, e.g. by
typedef float m512 __attribute__ ((__vector_size__ (64), __may_alias__,
__aligned__ (64)));
and you can then use it instead of m512.  Changing __m512 is an ABI change, it
has been working like that for many years, has been intentional and is not
going to change, no matter what you think is right.
The __m512 type is really meant to be only used in AVX512F and later code, like
__m256 is meant to be only used in AVX and later code and __m128 in SSE and
later code, if you use it for something else, it behaves as a standard GNU
vector_size attribute extension.

Reply via email to