myun2の???

Your awesome Tagline

0 notes

SSEを使って4つの浮動小数点掛け算を実行するサンプル

/*    SSEを使って4つの浮動小数点掛け算を実行するサンプル
(VC++2008でコンパイルを確認。多分.NET以降ならイケる・・・?VC++6.0は確実に駄目
*/

#include <stdio.h>

#define _ALIGN_16    __declspec(align(16))

void main()
{
_ALIGN_16 float f[4] = { 1, 2, 3, 4 };
_ALIGN_16 float f2[4] = { 1.5f, 1.5f, 1.5f, 1.5f };

printf(“%f, %f, %f, %f\n”, f[0], f[1], f[2], f[3] );
printf(“    *         *         *         *\n”);
printf(“%f, %f, %f, %f\n”, f2[0], f2[1], f2[2], f2[3] );
__asm
{
movaps xmm1, [f];
movaps xmm2, [f];
mulps xmm2, [f2];
movaps [f], xmm2;
}
printf(“    ||        ||        ||        ||\n”);
printf(“%f, %f, %f, %f\n”, f[0], f[1], f[2], f[3] );

}