переупорядочение значений в 128-битном векторе в коде сборки arm neon

assembly arm neon

165 просмотра

1 ответ

В неоновом регистре есть четыре 32-битных элемента - скажем, Q0 - размером 128 бит.

1 2 3 4

Я хочу, чтобы окончательные данные были в порядке, как показано ниже: 4 3 2 1

Какая неоновая инструкция может достичь желаемого порядка данных?

Автор: ravi Источник Размещён: 15.10.2019 03:36

Ответы (1)


0 плюса

Я не думаю, что вы можете управлять 4 словами в одной инструкции, но это, безусловно, может быть сделано в двух:

vswp      d0, d1  ; exchange the two halves of q0, giving 3,4,1,2
vrev64.32 q0, q0  ; word-swap each doubleword of q0, giving 4,3,2,1

Обратите внимание, что конечный результат на самом деле не зависит от того, в каком порядке вы выполняете две операции.

Автор: Notlikethat Размещён: 22.01.2016 11:42
Вопросы из категории :
32x32