2

大なり、小なり、および等号の命令がこれらの関数で呼び出されることがわかりました。

emmintrin

_mm_cmpeq_epi8 (__m128i __A, __m128i __B)
_mm_cmplt_epi8 (__m128i __A, __m128i __B)
_mm_cmpgt_epi8 (__m128i __A, __m128i __B)

mmintrin
_mm_cmpeq_pi8 (__m64 __m1, __m64 __m2)
_m_pcmpeqb (__m64 __m1, __m64 __m2)
_mm_cmpgt_pi8 (__m64 __m1, __m64 __m2)
_m_pcmpgtb (__m64 __m1, __m64 __m2)

しかし、これらはどうですか?それらはどこかの SSE 組み込みヘッダーにありますか、それともインライン アセンブラーを使用していますか。私はコンパイラとして GCC を使用しています。

pcmpxxb - 16 個の 8 ビット整数を比較します。

コードの比較 (上記の xx の部分):

le - Less than or equal to.

ne - Not equal.

nlt - Not less than.

nle - Not less than or equal to.
4

1 に答える 1

1

整数の場合、基本的な比較命令PCMPGTxとの 2 つだけPCMPEQxです。他の比較組み込み関数は、これらから派生します。たとえば、_mm_cmplt_epi8(v0, v1)is just -オペランドが入れ替わっ_mm_cmpgt_epi8(v1, v0)た同じ基になる命令 ( ) です。PCMPGTBこれらの命令から他のすべての比較組み込み関数を作成することができます。ほとんどのヘッダーは利便性ltだけでなく提供されますgtが、その他の条件は通常、コーディング時にプログラマーが処理する必要があります。

于 2013-07-06T10:42:16.167 に答える