Мне нужно вычислить ту же операцию, что и SSE один:средняя операция ARM NEON
__m128i result1=_mm_avg_epu8 (upper, lower);
С NEON я следующее:
uint8x16_t result1=vhaddq_u8(upper, lower);
Результаты должны быть одинаковыми, но с SSE инструкция я получаю:
91cb c895 aaa3 b0d4 cfc0 c1b0 aac7 b9b9
в то время как с инструкцией NEON я получаю:
91ca c894 a9a2 b0d3 cec0 c1af aac7 b8b8
Я не понимаю, почему два результата различны. Вы можете мне помочь?
Хорошо, спасибо. Я решил использовать vrhadd, который делает то же самое, что и SSE Vr [i]: = (Va [i] + Vb [i] +1) >> 1. – user1926328