AVXメモ

 256bit, 3operands

レジスタ

YMM0 XMM0
: :
YMM15 XMM15
XMMx −−−−■■■■
YMMx ■■■■■■■■

※■=32bits

vaddps xmm1, xmm2, xmm3

  • __m128 _mm_add_ps(__m128 v2, __m128 v3);
  • AVX 128bit版
v1[0] = v2[0] + v3[0];
v1[1] = v2[1] + v3[1];
v1[2] = v2[2] + v3[2];
v1[3] = v2[3] + v3[3];
v1[4] = 0;
v1[5] = 0;
v1[6] = 0;
v1[7] = 0;

vaddps ymm1, ymm2, ymm3

  • __m256 _mm256_add_ps(__m256 v2, __m256 v3);
  • AVX 256bit版
v1[0] = v2[0] + v3[0];
v1[1] = v2[1] + v3[1];
v1[2] = v2[2] + v3[2];
v1[3] = v2[3] + v3[3];
v1[4] = v2[4] + v3[4];
v1[5] = v2[5] + v3[5];
v1[6] = v2[6] + v3[6];
v1[7] = v2[7] + v3[7];

addps xmm1, xmm2

  • __m128 _mm_add_ps(__m128 v1, __m128 v2);
  • SSE (128bit : 参考)
v1[0] += v2[0];
v1[1] += v2[1];
v1[2] += v2[2];
v1[3] += v2[3];
//v1[4]〜v1[7]はそのまま