0

这个问题与 ARM NEON 内在函数有关。我正在使用 ARM neon 内在函数来实现 FIR。我想重新排序四字向量数据。例如,在 Neon 寄存器中有四个 32 位元素 - 例如 Q0 - 大小为 128 位。

A3 A2 A1 A0

我想将 Q0 重新排序为 A0 A1 A2 A3。

有什么选择吗?

4

1 回答 1

3

阅读http://gcc.gnu.org/onlinedocs/gcc/ARM-NEON-Intrinsics.html以及 ARM 信息中心,我认为以下内容可以满足您的要求:

    uint32x2_t dvec_h = vget_high_u32(qvec);
    uint32x2_t dvec_l = vget_low_u32(qvec);

    dvec_h = vrev64_u32(dvec_h);
    dvec_l = vrev64_u32(dvec_l);

    qvec = vcombine_u32(dvec_h, dvec_l);

在汇编中,这可以简单地写成:

    VSWP      d0, d1
    VREV64.32 q0, q0
于 2011-01-04T21:59:28.157 回答