* add ei_pdiv intrinsic, make quotient functor vectorizable

* add vdw benchmark from Tim's real-world use case
This commit is contained in:
Benoit Jacob
2008-06-23 22:00:18 +00:00
parent ac9aa47bbc
commit c9560df4a0
6 changed files with 105 additions and 7 deletions

View File

@@ -55,6 +55,9 @@ template<> inline __m128i ei_pmul(const __m128i& a, const __m128i& b)
_mm_setr_epi32(0xffffffff,0,0xffffffff,0)), 4));
}
template<> inline __m128 ei_pdiv(const __m128& a, const __m128& b) { return _mm_div_ps(a,b); }
template<> inline __m128d ei_pdiv(const __m128d& a, const __m128d& b) { return _mm_div_pd(a,b); }
// for some weird raisons, it has to be overloaded for packet integer
template<> inline __m128i ei_pmadd(const __m128i& a, const __m128i& b, const __m128i& c) { return ei_padd(ei_pmul(a,b), c); }