Если вы имеете дело с большими блоками последовательных данных, NEON определенно вам подойдет.
Float или исправлено, это хороший вопрос. NEON несколько быстрее справляется с фиксированным, но я бы сохранил исходный формат ввода, поскольку преобразования требуют времени и, в конечном итоге, дополнительной памяти.
Даже если библиотека предлагает в качестве опции другой формат вывода, это почти всегда означает преобразования внутри библиотеки. Так что я думаю, что float является родным в этом случае. Придерживайтесь этого.
Никто не мешает вам оптимизировать микро-алгоритмы лучше. И, как правило, чем лучше алгоритм, тем больше выигрыша в производительности можно достичь с помощью микрооптимизации из-за конвейерной обработки на современных машинах.
Хотя я бы держался подальше от внутреннего. В сети так много постов, жалующихся на то, что внутренности делают что-то сумасшедшее, особенно когда имеешь дело с непосредственными ценностями.
Это может и будет очень хлопотно, и вы вряд ли сможете что-либо оптимизировать с помощью встроенных функций.