最終更新:2012-03-02 (金) 11:17:29 (2732d)  

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

Core 2 Duo (Merom 65nm)

SSSE3のヘッダファイル。

関数

Add horizonally packed [saturated] words, double words,

  • __m128i _mm_hadd_epi16?(__m128i a, __m128i b);
  • __m128i _mm_hadd_epi32?(__m128i a, __m128i b);
  • __m128i _mm_hadds_epi16?(__m128i a, __m128i b);
  • __m64 _mm_hadd_pi16?(__m64 a, __m64 b);
  • __m64 _mm_hadd_pi32?(__m64 a, __m64 b);
  • __m64 _mm_hadds_pi16?(__m64 a, __m64 b);

Subtract horizonally packed [saturated] words, double words,

  • __m128i _mm_hsub_epi16?(__m128i a, __m128i b);
  • __m128i _mm_hsub_epi32?(__m128i a, __m128i b);
  • __m128i _mm_hsubs_epi16?(__m128i a, __m128i b);
  • __m64 _mm_hsub_pi16?(__m64 a, __m64 b);
  • __m64 _mm_hsub_pi32?(__m64 a, __m64 b);
  • __m64 _mm_hsubs_pi16?(__m64 a, __m64 b);

Multiply and add packed words,

  • __m128i _mm_maddubs_epi16?(__m128i a, __m128i b);
  • __m64 _mm_maddubs_pi16?(__m64 a, __m64 b);

Packed multiply high integers with round and scaling,

  • __m128i _mm_mulhrs_epi16?(__m128i a, __m128i b);
  • __m64 _mm_mulhrs_pi16?(__m64 a, __m64 b);

Packed shuffle bytes

Packed byte, word, double word sign,

  • __m128i _mm_sign_epi8?(__m128i a, __m128i b);
  • __m128i _mm_sign_epi16?(__m128i a, __m128i b);
  • __m128i _mm_sign_epi32?(__m128i a, __m128i b);
  • __m64 _mm_sign_pi8?(__m64 a, __m64 b);
  • __m64 _mm_sign_pi16?(__m64 a, __m64 b);
  • __m64 _mm_sign_pi32?(__m64 a, __m64 b);

Packed align and shift right by n*8 bits,

  • __m128i _mm_alignr_epi8?(__m128i a, __m128i b, int n);
  • __m64 _mm_alignr_pi8?(__m64 a, __m64 b, int n);

Packed byte, word, double word absolute value,