NEON vs Intel SSE - эквивалентность определенных операций

У меня проблемы с определением NEON-эквивалента пары операций Intel SSE. Кажется, что NEON не может обрабатывать сразу весь регистр Q (тип данных со 128-битным значением). Я не нашел ничего в заголовке arm_neon.h или в справочнике встроенных функций NEON .

Я хочу сделать следующее:

// Intel SSE
// shift the entire 128 bit value with 2 bytes to the right; this is done 
// without sign extension by shifting in zeros
__m128i val = _mm_srli_si128(vector_of_8_s16, 2);
// insert the least significant 16 bits of "some_16_bit_val"
// the whole thing in this case, into the selected 16 bit 
// integer of vector "val"(the 16 bit element with index 7 in this case)
val = _mm_insert_epi16(val, some_16_bit_val, 7);

Я просмотрел операции переключения, предоставляемые NEON, но я не смог найти эквивалентный способ сделать это (у меня нет большого опыта работы с NEON). Возможно ли это сделать (наверное, я просто не знаю как)? Приветствуются любые указатели.

12
задан celavek 26 August 2011 в 10:15
поделиться