Используйте встроенную в код функцию разделения X86
Привет.
Меня просят использовать следующие четыре встроенные функции X86 для кодирования функции разделения.
__m128i _mm_blendv_epi8 (__m128i a, __m128i b, __m128i маска)
__m128i _mm_shuffle_epi8 (__m128i а __m128i б)
__m128i _mm_load_si128 (__m128i const* mem_addr)
void _mm_store_si128 (__m128i* mem_addr, __m128i a)
Данный массив Arr[] = {1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3}.
Мне нужно разделить этот массив на три массива.
a[] = {1,1,1,1,1,1,1,1}
b[] = {2,2,2,2,2,2,2,2}
c[] = {3,3,3,3,3,3,3,3}
У меня нет никакого опыта работы с Intel SSE intrinsics..У меня есть только опыт программирования на языке Си..
Пожалуйста, помогите мне решить эту проблему.
Спасибо.
Что я уже пробовал:
В C я бы сделал вот так...
for(int i = 0; i <size ; i++) { a[i] = arr[i*3+0]; b[i] = arr[i*3+1]; c[i] = arr[i*3+2]; }