SSE指令介绍及其C、C++应用(二)

2014-11-24 13:16:39 · 作者: · 浏览: 21
ray + i * 4 ) = _mm_mul_ps( *(__m128*)( pArray + i * 4 ), e_Scale );

}

}

void Scaleva lue2( float *pArray, DWORD dwCount, float fScale )

{

for ( DWORD i = 0; i < dwCount; i++ )

{

pArray[i] *= fScale;

}

}

#define ARRAYCOUNT 10000

int __cdecl main()

{

float __declspec(align(16)) Array[ARRAYCOUNT];

memset( Array, 0, sizeof(float) * ARRAYCOUNT );

CTimer t;

double dTime;

t.Reset();
for ( int i = 0; i < 100000; i++ )

{

Scaleva lue1( Array, ARRAYCOUNT, 1000.0f );

}

dTime = t.End();

cout << "Use SSE:" << dTime << "秒" << endl;

t.Reset();

for ( int i = 0; i < 100000; i++ )

{