Атрибут __may_alias__
в __m128i
следует рассматривать как обходной путь, который позволяет писать код с точным сглаживанием, даже если Intel полностью испортил сигнатуры некоторых из СМОТРЕТЬ загрузку / хранение встроенных функций. (8-байтовая загрузка _mm_loadl_epi64(const __m128i*)
- самый веселый пример, но есть и другие). ARM правильно поняла свою сущность, поэтому __may_alias__
не требуется.
Просто используйте указатели на тип элемента и используйте явные загрузки и сохранения. По моему опыту, это приводит к созданию лучшего кода и, вероятно, также более переносимо. (Разрешает ли спецификация языка ARM C даже указатели на типы NEON? Я не удивлюсь, если они этого не сделают).