diff --git a/modules/hal/include/opencv2/hal/intrin.hpp b/modules/hal/include/opencv2/hal/intrin.hpp index bfd41ad0d1..adb95d6a12 100644 --- a/modules/hal/include/opencv2/hal/intrin.hpp +++ b/modules/hal/include/opencv2/hal/intrin.hpp @@ -1140,7 +1140,7 @@ inline v_float32x4 v_reinterpret_as_f32(const v_float64x2& a) template inline v_float64x2 v_reinterpret_as_f64(const _Tpvec& a) { return v_float64x2(_mm_castsi128_pd(a.val)); } -inline v_float64x2 v_reinterpret_as_f64(const v_float64x2& a) +inline v_float64x2 v_reinterpret_as_f64(const v_float32x4& a) { return v_float64x2(_mm_castps_pd(a.val)); } inline v_uint8x16 v_cvtn_u16(const v_uint16x8& a, const v_uint16x8& b) @@ -1893,10 +1893,10 @@ inline void v_load_deinterleave(const uchar* ptr, v_uint8x16& a, v_uint8x16& b, __m128i u2 = _mm_loadu_si128((const __m128i*)(ptr + 32)); // a8 b8 c8 d8 ... __m128i u3 = _mm_loadu_si128((const __m128i*)(ptr + 48)); // a12 b12 c12 d12 ... - __m128 v0 = _mm_unpacklo_epi8(u0, u2); // a0 a8 b0 b8 ... - __m128 v1 = _mm_unpackhi_epi8(u0, u2); // a2 a10 b2 b10 ... - __m128 v2 = _mm_unpacklo_epi8(u1, u3); // a4 a12 b4 b12 ... - __m128 v3 = _mm_unpackhi_epi8(u1, u3); // a6 a14 b4 b14 ... + __m128i v0 = _mm_unpacklo_epi8(u0, u2); // a0 a8 b0 b8 ... + __m128i v1 = _mm_unpackhi_epi8(u0, u2); // a2 a10 b2 b10 ... + __m128i v2 = _mm_unpacklo_epi8(u1, u3); // a4 a12 b4 b12 ... + __m128i v3 = _mm_unpackhi_epi8(u1, u3); // a6 a14 b4 b14 ... u0 = _mm_unpacklo_epi8(v0, v2); // a0 a4 a8 a12 ... u1 = _mm_unpacklo_epi8(v1, v3); // a2 a6 a10 a14 ... @@ -1928,10 +1928,10 @@ inline void v_load_deinterleave(const ushort* ptr, v_uint16x8& a, v_uint16x8& b, __m128i u2 = _mm_loadu_si128((const __m128i*)(ptr + 16)); // a4 b4 c4 d4 ... __m128i u3 = _mm_loadu_si128((const __m128i*)(ptr + 24)); // a6 b6 c6 d6 ... - __m128 v0 = _mm_unpacklo_epi16(u0, u2); // a0 a4 b0 b4 ... - __m128 v1 = _mm_unpackhi_epi16(u0, u2); // a1 a5 b1 b5 ... - __m128 v2 = _mm_unpacklo_epi16(u1, u3); // a2 a6 b2 b6 ... - __m128 v3 = _mm_unpackhi_epi16(u1, u3); // a3 a7 b3 b7 ... + __m128i v0 = _mm_unpacklo_epi16(u0, u2); // a0 a4 b0 b4 ... + __m128i v1 = _mm_unpackhi_epi16(u0, u2); // a1 a5 b1 b5 ... + __m128i v2 = _mm_unpacklo_epi16(u1, u3); // a2 a6 b2 b6 ... + __m128i v3 = _mm_unpackhi_epi16(u1, u3); // a3 a7 b3 b7 ... u0 = _mm_unpacklo_epi16(v0, v2); // a0 a2 a4 a6 ... u1 = _mm_unpacklo_epi16(v1, v3); // a1 a3 a5 a7 ... diff --git a/modules/hal/src/precomp.hpp b/modules/hal/src/precomp.hpp index 95ddac9bc8..630565bec3 100644 --- a/modules/hal/src/precomp.hpp +++ b/modules/hal/src/precomp.hpp @@ -45,4 +45,5 @@ #include #include #include +#include #include