Neon - 使用 vld1q_s32 从数组中加载一个元素
Neon - load one element from array using vld1q_s32
我只想使用 vld1q_s32 从数组中加载一个元素,使用 Neon。
具体来说,如果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 是 O.K.
您可以按原样加载数据,然后将向量自身转置:
A0 = vld1q_s32(arr1);
A0 = vtrn1q_s32(A0, A0);
我只想使用 vld1q_s32 从数组中加载一个元素,使用 Neon。
具体来说,如果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 是 O.K.
您可以按原样加载数据,然后将向量自身转置:
A0 = vld1q_s32(arr1);
A0 = vtrn1q_s32(A0, A0);