| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 
 |  
void testSSE2(float* v1, float* v2)
{
  __m128 v1m, v2m;
  memcpy(&v1m, v1, 4* sizeof(float));
  memcpy(&v2m, v2, 4* sizeof(float));
  v1m = _mm_add_ps(v1m, v2m);
  v1m = _mm_sub_ps(v1m, v2m);
  v1m = _mm_mul_ps(v1m, v2m);
  v1m = _mm_div_ps(v1m, v2m);
  v1m = _mm_sqrt_ps(v1m);
  memcpy(v1, &v1m, 4* sizeof(float));
}
 
float v1[4] = { 1, 2, 3, 4};
float v2[4] = { 1, 2, 3, 4};
for(int i = 0; i < 1000; i++)  testSSE2(v1,v2);
std::cout << v1[0] << " " << v1[1] << " " << v1[2] << " " << v1[3] << std::endl; | 
Partager