Beispiel #1
0
__m128 test_mm_cvtsd_ss(__m128 A, __m128d B) {
  // DAG-LABEL: test_mm_cvtsd_ss
  // DAG: fptrunc double %{{.*}} to float
  //
  // ASM-LABEL: test_mm_cvtsd_ss
  // ASM: cvtsd2ss
  return _mm_cvtsd_ss(A, B);
}
Beispiel #2
0
static double rcp_d(double x)
{
    __m128d xd = _mm_load_sd(&x);
    double xi = _mm_cvtss_f32(_mm_rcp_ss(_mm_cvtsd_ss(_mm_setzero_ps(), xd)));

    xi = xi + xi * (1.0 - x * xi);
    xi = xi + xi * (1.0 - x * xi);

    return xi;
}
test (__m128 p1, __m128d p2)
{
  return _mm_cvtsd_ss (p1, p2); 
}