Neon - загрузить один элемент из массива с помощью vld1q_s32 - PullRequest
0 голосов
/ 21 июня 2020

Я хочу загрузить только один элемент из массива, используя vld1q_s32, используя Neon.

Чтобы указать c, если arr1 = [1, 2, 3, 4], я хочу загрузить каждый элемент в int32x4_t A0, в другом порядке.

Я хочу сделать A0 равным [1, 1, 3, 3]. Поэтому я использовал

int32x4_t A0;
A0 = vld1q_s32(arr1[0]);
A0+1 = vld1q_s32(arr1[0]);
A0+2 = vld1q_s32(arr1[2]);
A0+3 = vld1q_s32(arr1[2]);

, но это не сработало. Как я могу это исправить? Не использовать vld1q_s32 - это нормально

Спасибо.

1 Ответ

0 голосов
/ 21 июня 2020

Вы можете просто загрузить данные как есть, а затем транспонировать вектор с самим собой:

A0 = vld1q_s32(arr1);
A0 = vtrn1q_s32(A0, A0);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...