У меня вопрос относительно различных арифметических операций для встроенных функций Intel SSE. в чем разница между _mm_add_ps Vs. _mm_add_epi8 / 16/32? Я хочу быть уверенным, что мои данные всегда выровнены.
В образце кода, когда я это делаю:
__m128 u1 = _mm_load_ps(&V[(i-1)]);
Я получаю ошибку сегментации. Но когда я это сделаю:
__m128 u1 = _mm_loadu_ps(&V[(i-1)]);
Работает нормально.
Поскольку я хочу, чтобы мои данные были выровнены, я объявил массив следующим образом:
posix_memalign((void**)&V, 16, dx*sizeof(float));
Может кто-нибудь помочь объяснить это.