https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120895
--- Comment #32 from David C. Partridge <david.partridge at perdrix dot co.uk> --- I believe that you are choosing not to understand what I am saying here. It is totally WRONG to set different alignments for this data type depending on compiler options - the alignment requirement for __m512 is 64 bytes and always has been. Setting the alignment to anything else is just a plain old fashioned BUG. If you generate code to align this differently for cpp files compiled with different options, then when these files are linked they won't agree on the alignment. Other compilers manage to get this right. I think that you have boxed yourselves into a corner such that this is hard to do it in a way that just works. >can't be an ABI change any time a wider hardware vector type is added for the >former ISAs. Why would this require an ABI change - if you had set the alignment correctly in the first place adding a new type would be a non-event. If Intel were to introduce a new type called say __m1024 with a 128 byte alignment requirement there's no reason that it couldn't be used immediately with that alignment from any code regardless of what compiler options are set, all that would be needed would be to add the relevant lines to the header.