arm neon - 将 32x4x2 分成两个 32x4

arm neon - divide 32x4x2 into two 32x4

我是 Arm 和 Neon 的新手。

我想把int32x4x2_tA分成两个int32x4_tB1,int32x4_tB2。

所以,如果 A = [1 2 3 4; 5 6 7 8],我想让 B1 变成 [1 2 3 4],B2 变成 [5 6 7 8]

我试过了

B1 = vld1q_s32(A);
B2 = vld1q_s32(A+4);

但是不行。

我该如何解决?

int32x4x2_t 实际上只是一个看起来像

的结构
typedef struct int32x4x2_t {
  int32x4_t val[2];
} int32x4x2_t;

所以你所要做的就是

B1 = A.val[0];
B2 = A.val[1];