Я только начал пытаться оптимизировать код Android с помощью NEON.У меня есть несколько проблем, однако.Основная проблема заключается в том, что я действительно не могу понять, как выполнить быстрое преобразование 16-разрядных в плавающие.
Я вижу возможность конвертировать несколько 32-разрядных целочисленных значений в плавающие в одной SIMD-инструкции, используя vcvt.s32.f32.Однако, как мне преобразовать набор из 4 S16 в 4 S32?Я предполагаю, что это как-то связано с инструкцией VUZP, но я не могу понять, как ...
Точно так же я вижу, что возможно использовать VCVT.s16.f32 для преобразования 1 16-битного в число с плавающей точкой привремя, но хотя это полезно, кажется очень расточительным не иметь возможности сделать это с помощью SIMD.
Я писал ассемблер на многих разных платформах на протяжении многих лет, но я нахожу документацию ARM совершенно непостижимой по некоторым причинам.
Как таковая, любая помощь будет по достоинству оценена.
Также есть ли способ получить показатели пропускной способности и задержки для устройства NEON?
Заранее спасибо!