Рассмотрим память, расположенную так, что восемь последовательных 4-байтовых блоков читаются как [abcdefgh]
. Я загружаю их в два регистра v0.4s
и v1.4s
, поэтому я получаю v0.4s = [abcd]
и v1.4s = [efgh]
, где каждый символ представляет собой 32-битный блок. Я хочу переупорядочить их, чтобы получить [abef]
и [cdgh]
в двух (возможно, разных) регистрах.
Мой подход на данный момент состоял бы в том, чтобы сначала перевернуть 64-битные половины [efgh]
, чтобы получить [ghef]
. Затем я могу использовать экстракт, чтобы получить [abef]
и [ghcd]
. Затем я снова могу, наконец, перевернуть 64-битные половины [ghcd]
, чтобы получить [cdgh]
.
Может ли кто-нибудь сказать лучший подход?
zip
,uzp
илиtrn
? - person EOF   schedule 21.08.2017