15#if defined(__AVX2__) && defined(__KERNEL_SSE2__)
16 const __m128 a = (
const __m128 &)a_;
17 const __m128
b = (
const __m128 &)b_;
18 const __m128 a_shuffle = _mm_castsi128_ps(
19 _mm_shuffle_epi32(_mm_castps_si128(a), _MM_SHUFFLE(3, 0, 2, 1)));
20 const __m128 b_shuffle = _mm_castsi128_ps(
21 _mm_shuffle_epi32(_mm_castps_si128(
b), _MM_SHUFFLE(3, 0, 2, 1)));
22 const __m128 r = _mm_castsi128_ps(
23 _mm_shuffle_epi32(_mm_castps_si128(_mm_fmsub_ps(a, b_shuffle, _mm_mul_ps(a_shuffle,
b))),
24 _MM_SHUFFLE(3, 0, 2, 1)));