A = 組み込み関数を使用しない同等のコードと比べて、パフォーマンスが大きく向上すると予想されるもの。
B = 組み込み関数を使用しないソースコードを使用したほうが良いもの。組み込み関数はネイティブ命令に直接に対応付けられますが、パフォーマンスはほとんど向上しません。
C = 特定のマイクロアーキテクチャーでは対応する命令が存在しないもの。組み込み関数を使用すると、パフォーマンスが大きく低下します。
組み込み関数名 |
MMX® テクノロジー、インテル® SSE、インテル® SSE2 |
IA-64 アーキテクチャー |
---|---|---|
_mm_empty |
A |
B |
_mm_cvtsi32_si64 |
A |
A |
_mm_cvtsi64_si32 |
A |
A |
_mm_packs_pi16 |
A |
A |
_mm_packs_pi32 |
A |
A |
_mm_packs_pu16 |
A |
A |
_mm_unpackhi_pi8 |
A |
A |
_mm_unpackhi_pi16 |
A |
A |
_mm_unpackhi_pi32 |
A |
A |
_mm_unpacklo_pi8 |
A |
A |
_mm_unpacklo_pi16 |
A |
A |
_mm_unpacklo_pi32 |
A |
A |
_mm_add_pi8 |
A |
A |
_mm_add_pi16 |
A |
A |
_mm_add_pi32 |
A |
A |
_mm_adds_pi8 |
A |
A |
_mm_adds_pi16 |
A |
A |
_mm_adds_pu8 |
A |
A |
_mm_adds_pu16 |
A |
A |
_mm_sub_pi8 |
A |
A |
_mm_sub_pi16 |
A |
A |
_mm_sub_pi32 |
A |
A |
_mm_subs_pi8 |
A |
A |
_mm_subs_pi16 |
A |
A |
_mm_subs_pu8 |
A |
A |
_mm_subs_pu16 |
A |
A |
_mm_madd_pi16 |
A |
C |
_mm_mulhi_pi16 |
A |
A |
_mm_mullo_pi16 |
A |
A |
_mm_sll_pi16 |
A |
A |
_mm_slli_pi16 |
A |
A |
_mm_sll_pi32 |
A |
A |
_mm_slli_pi32 |
A |
A |
_mm_sll_pi64 |
A |
A |
_mm_slli_pi64 |
A |
A |
_mm_sra_pi16 |
A |
A |
_mm_srai_pi16 |
A |
A |
_mm_sra_pi32 |
A |
A |
_mm_srai_pi32 |
A |
A |
_mm_srl_pi16 |
A |
A |
_mm_srli_pi16 |
A |
A |
_mm_srl_pi32 |
A |
A |
_mm_srli_pi32 |
A |
A |
_mm_srl_si64 |
A |
A |
_mm_srli_si64 |
A |
A |
_mm_and_si64 |
A |
A |
_mm_andnot_si64 |
A |
A |
_mm_or_si64 |
A |
A |
_mm_xor_si64 |
A |
A |
_mm_cmpeq_pi8 |
A |
A |
_mm_cmpeq_pi16 |
A |
A |
_mm_cmpeq_pi32 |
A |
A |
_mm_cmpgt_pi8 |
A |
A |
_mm_cmpgt_pi16 |
A |
A |
_mm_cmpgt_pi32 |
A |
A |
_mm_setzero_si64 |
A |
A |
_mm_set_pi32 |
A |
A |
_mm_set_pi16 |
A |
C |
_mm_set_pi8 |
A |
C |
_mm_set1_pi32 |
A |
A |
_mm_set1_pi16 |
A |
A |
_mm_set1_pi8 |
A |
A |
_mm_setr_pi32 |
A |
A |
_mm_setr_pi16 |
A |
C |
_mm_setr_pi8 |
A |
C |
_mm_empty は、IA-64 命令では、ソースの互換性のためにのみ NOP としてサポートされています。