Допустим есть такой случай
uint8_t arr[33] __attribute__((aligned(64)));
....
__m256i v = _mm256_load_si256((__m256i*) arr);
...
v = _mm256_load_si256((__m256i*) arr+32);
Безопасен ли такой код? Насколько я понимаю память на x86 выделяется страницами с минимальным размером в 4кб. А то в свою очердь означает, что читая 32 байта (256 бит) по выравненому указателю (по 64 байта - 512бит) мы не можем залезть в память другого приложения (или ядра) и получить неприятные последствия от этого.
Разговор тут идет только о чтение, о записи само собой в этот «хвост» и речи быть не может.