0

_mm_store_ps、 などの__ 関数を克服するための単純な同等の C コードは何ですか_mm_add_ps。同等の C コードを使用して、例を使用して関数を指定してください。

なぜこれらの関数が使用されるのですか?

4

2 に答える 2

5

以前の同様の質問に基づいて、間違った問題を解決しようとしているようです。16 バイトの整列データを必要とする SSE ルーチンに整列されていないデータを渡すため、クラッシュする顔検出用の既存の SSE コードがいくつかあります。以前の質問で、このミスアライメントを修正する方法 (Windows では _mm_malloc を使用するか、Linux では memalign/posix_memalign を使用) を教えてくれましたが、あなたはこのアドバイスを無視しているようで、代わりにすべての SSE コードを書き直す必要があると誤って想定しています。 . SSE とは何か、SSE コードがどのように機能するか、16 バイトのアライメントが必要な理由、およびこれを達成する方法を理解するために少し時間をかけてください。既存の SSE コードは、データの不整合の問題を修正する限り、Windows または Linux で正常に動作するはずです。これは、自分が何をしているのかを理解すれば比較的簡単な作業です。

于 2010-12-29T08:19:54.613 に答える
0

MSDN は、最初の関数の疑似コードを示しています。

void _mm_store_ps(float *p, __m128 a );

戻り値:

p[0] := a0
p[1] := a1
p[2] := a2
p[3] := a3

http://msdn.microsoft.com/en-us/library/s3h4ay6y(v=vs.80).aspx

于 2010-12-29T07:55:17.247 に答える