r1
、r3
およびr4
タイプがNEONuint32x4_t
レジスタにロードされているので、次のコードがあります。
r3 = veorq_u32(r0,r3);
r4 = r1;
r1 = vandq_u32(r1,r3);
r4 = veorq_u32(r4,r2);
r1 = veorq_u32(r1,r0);
そして、GCCが実際に命令に変換r4 = r1
されるかどうか疑問に思っていました。vmov
分解されたコードを見て、私はそれがそうではなかったことに驚かなかった。(さらに、生成されたアセンブリコードが実際に何をするのか理解できません)
ARMのNEON組み込み関数のリファレンスをざっと見てみると、単純なベクトル->ベクトル代入の組み込み関数が見つかりませんでした。
これを達成するための最も簡単な方法は何ですか?r1
どのレジスタがでr4
割り当てられているかわからないため、インライン化されたアセンブリコードがどのように表示されるかわかりませんvld1q_u32
。実際のスワップは必要ありません。割り当てだけです。