0

質問はARM NEON組み込み関数に関連しています。FIR の実装に ARM ネオン組み込み関数を使用しています。クワッドワードのベクトル データを並べ替えたい。たとえば、Neon レジスタ (Q0 など) には 4 つの 32 ビット要素があり、サイズは 128 ビットです。

A3 A2 A1 A0

Q0 を A0 A1 A2 A3 に並べ替えます。

これを行うオプションはありますか?

4

1 に答える 1

3

http://gcc.gnu.org/onlinedocs/gcc/ARM-NEON-Intrinsics.htmlをARMinfocenterと一緒に読むと、次のことがあなたの求めることになると思います。

    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 に答える