Я смотрел на встроенную для серии 600, и нет горизонтальной суммы, присущей hvx, подобной той, что была на x86. Я искал что-то, что позволило бы мне изменить содержимое регистра, чтобы я мог непрерывно добавлять реверс регистра к себе, пока не получу правильную сумму, которую я могу извлечь.
Чтобы уменьшить вектор в HVX, используйте log2 шаги valign / vror и вашего оператора (max / min / add / etc)
Вы можете использовать vdelta / vrdelta, чтобы изменить регистр, но я думаю, что вы хотите вместо этого повернуть.
Вот пример сокращения двух векторов слов (один частичный минимум и один частичный максимум), чтобы получить общее минимальное и максимальное:
https://source.codeaurora.org/quic/hexagon_nn/nnlib/tree/hexagon/asm_src/vrmaxmin_h.S
Других решений пока нет …