最終更新:2012-03-02 (金) 11:30:34 (2698d)  

xmmintrin.h はてなブックマークを見る
Top / xmmintrin.h

SSE/初代ヘッダファイル

Principal header file for Streaming SIMD Extensions intrinsics

命令数は70。

関数

FP, arithmetic

FP, logical

  • __m128 _mm_and_ps?(__m128 _A, __m128 _B);
  • __m128 _mm_andnot_ps?(__m128 _A, __m128 _B);
  • __m128 _mm_or_ps?(__m128 _A, __m128 _B);
  • __m128 _mm_xor_ps?(__m128 _A, __m128 _B);

FP, comparison

  • __m128 _mm_cmpeq_ss?(__m128 _A, __m128 _B);
  • __m128 _mm_cmpeq_ps?(__m128 _A, __m128 _B);
  • __m128 _mm_cmplt_ss?(__m128 _A, __m128 _B);
  • __m128 _mm_cmplt_ps?(__m128 _A, __m128 _B);
  • __m128 _mm_cmple_ss?(__m128 _A, __m128 _B);
  • __m128 _mm_cmple_ps?(__m128 _A, __m128 _B);
  • __m128 _mm_cmpgt_ss?(__m128 _A, __m128 _B);
  • __m128 _mm_cmpgt_ps?(__m128 _A, __m128 _B);
  • __m128 _mm_cmpge_ss?(__m128 _A, __m128 _B);
  • __m128 _mm_cmpge_ps?(__m128 _A, __m128 _B);
  • __m128 _mm_cmpneq_ss?(__m128 _A, __m128 _B);
  • __m128 _mm_cmpneq_ps?(__m128 _A, __m128 _B);
  • __m128 _mm_cmpnlt_ss?(__m128 _A, __m128 _B);
  • __m128 _mm_cmpnlt_ps?(__m128 _A, __m128 _B);
  • __m128 _mm_cmpnle_ss?(__m128 _A, __m128 _B);
  • __m128 _mm_cmpnle_ps?(__m128 _A, __m128 _B);
  • __m128 _mm_cmpngt_ss?(__m128 _A, __m128 _B);
  • __m128 _mm_cmpngt_ps?(__m128 _A, __m128 _B);
  • __m128 _mm_cmpnge_ss?(__m128 _A, __m128 _B);
  • __m128 _mm_cmpnge_ps?(__m128 _A, __m128 _B);
  • __m128 _mm_cmpord_ss?(__m128 _A, __m128 _B);
  • __m128 _mm_cmpord_ps?(__m128 _A, __m128 _B);
  • __m128 _mm_cmpunord_ss?(__m128 _A, __m128 _B);
  • __m128 _mm_cmpunord_ps?(__m128 _A, __m128 _B);
  • int _mm_comieq_ss?(__m128 _A, __m128 _B);
  • int _mm_comilt_ss?(__m128 _A, __m128 _B);
  • int _mm_comile_ss?(__m128 _A, __m128 _B);
  • int _mm_comigt_ss?(__m128 _A, __m128 _B);
  • int _mm_comige_ss?(__m128 _A, __m128 _B);
  • int _mm_comineq_ss?(__m128 _A, __m128 _B);
  • int _mm_ucomieq_ss?(__m128 _A, __m128 _B);
  • int _mm_ucomilt_ss?(__m128 _A, __m128 _B);
  • int _mm_ucomile_ss?(__m128 _A, __m128 _B);
  • int _mm_ucomigt_ss?(__m128 _A, __m128 _B);
  • int _mm_ucomige_ss?(__m128 _A, __m128 _B);
  • int _mm_ucomineq_ss?(__m128 _A, __m128 _B);

FP, conversions

  • int _mm_cvt_ss2si?(__m128 _A);
  • __m64 _mm_cvt_ps2pi?(__m128 _A);
  • int _mm_cvtt_ss2si?(__m128 _A);
  • __m64 _mm_cvtt_ps2pi?(__m128 _A);
  • __m128 _mm_cvt_si2ss?(__m128, int);
  • __m128 _mm_cvt_pi2ps?(__m128, __m64); extern float _mm_cvtss_f32]](__m128 _A);

Support for 64-bit extension intrinsics

  • __int64? _mm_cvtss_si64?(__m128 _A);
  • __int64? _mm_cvttss_si64?(__m128 _A);
  • __m128 _mm_cvtsi64_ss?(__m128 _A, __int64 _B);

FP, misc

  • __m128 _mm_shuffle_ps?(__m128 _A, __m128 _B, unsigned int _Imm8);
  • __m128 _mm_unpackhi_ps?(__m128 _A, __m128 _B);
  • __m128 _mm_unpacklo_ps?(__m128 _A, __m128 _B);
  • __m128 _mm_loadh_pi?(__m128, __m64 const*);
  • __m128 _mm_movehl_ps?(__m128, __m128);
  • __m128 _mm_movelh_ps?(__m128, __m128);
  • void _mm_storeh_pi?(__m64 *, __m128);
  • __m128 _mm_loadl_pi?(__m128, __m64 const*);
  • void _mm_storel_pi?(__m64 *, __m128);
  • int _mm_movemask_ps?(__m128 _A);

Integer extensions

  • int _m_pextrw?(__m64, int);
  • __m64 _m_pinsrw?(__m64, int, int);
  • __m64 _m_pmaxsw?(__m64, __m64);
  • __m64 _m_pmaxub?(__m64, __m64);
  • __m64 _m_pminsw?(__m64, __m64);
  • __m64 _m_pminub?(__m64, __m64);
  • int _m_pmovmskb?(__m64);
  • __m64 _m_pmulhuw?(__m64, __m64);
  • __m64 _m_pshufw?(__m64, int);
  • void _m_maskmovq?(__m64, __m64, char *);
  • __m64 _m_pavgb?(__m64, __m64);
  • __m64 _m_pavgw?(__m64, __m64);
  • __m64 _m_psadbw?(__m64, __m64);

memory & initialization

  • __m128 _mm_set_ss?(float _A);
  • __m128 _mm_set_ps1?(float _A);
  • __m128 _mm_set_ps?(float _A, float _B, float _C, float _D);
  • __m128 _mm_setr_ps?(float _A, float _B, float _C, float _D);
  • __m128 _mm_setzero_ps?(void);
  • __m128 _mm_load_ss?(float const*_A);
  • __m128 _mm_load_ps1?(float const*_A);
  • __m128 _mm_load_ps(float const*_A);
  • __m128 _mm_loadr_ps?(float const*_A);
  • __m128 _mm_loadu_ps?(float const*_A);
  • void _mm_store_ss?(float *_V, __m128 _A);
  • void _mm_store_ps1?(float *_V, __m128 _A);
  • void _mm_store_ps?(float *_V, __m128 _A);
  • void _mm_storer_ps?(float *_V, __m128 _A);
  • void _mm_storeu_ps?(float *_V, __m128 _A);
  • void _mm_prefetch?(char const*_A, int _Sel);
  • void _mm_stream_pi?(__m64 *, __m64);
  • void _mm_stream_ps?(float *, __m128);
  • __m128 _mm_move_ss?(__m128 _A, __m128 _B);
  • void _mm_sfence?(void);
  • unsigned int? _mm_getcsr?(void);
  • void _mm_setcsr?(unsigned int);
  • void* _mm_malloc?(size_t _Siz, size_t _Al);
  • void _mm_free?(void *_P);

Alternate intrinsic names definition

  • _mm_cvtss_si32? _mm_cvt_ss2si?
  • _mm_cvtps_pi32? _mm_cvt_ps2pi?
  • _mm_cvttss_si32? _mm_cvtt_ss2si?
  • _mm_cvttps_pi32? _mm_cvtt_ps2pi?
  • _mm_cvtsi32_ss? _mm_cvt_si2ss?
  • _mm_cvtpi32_ps? _mm_cvt_pi2ps?
  • _mm_extract_pi16? _m_pextrw?
  • _mm_insert_pi16? _m_pinsrw?
  • _mm_max_pi16? _m_pmaxsw?
  • _mm_max_pu8? _m_pmaxub?
  • _mm_min_pi16? _m_pminsw?
  • _mm_min_pu8? _m_pminub?
  • _mm_movemask_pi8? _m_pmovmskb?
  • _mm_mulhi_pu16? _m_pmulhuw?
  • _mm_shuffle_pi16? _m_pshufw?
  • _mm_maskmove_si64? _m_maskmovq?
  • _mm_avg_pu8? _m_pavgb?
  • _mm_avg_pu16? _m_pavgw?
  • _mm_sad_pu8? _m_psadbw?
  • _mm_set1_ps _mm_set_ps1?
  • _mm_load1_ps? _mm_load_ps1?
  • _mm_store1_ps? _mm_store_ps1?

UTILITY INTRINSICS FUNCTION]