#ifndef OPENCV_HAL_INTRIN_AVX512_HPP
#define OPENCV_HAL_INTRIN_AVX512_HPP
+#if defined(_MSC_VER) && (_MSC_VER < 1920/*MSVS2019*/)
+# pragma warning(disable:4146) // unary minus operator applied to unsigned type, result still unsigned
+# pragma warning(disable:4309) // 'argument': truncation of constant value
+# pragma warning(disable:4310) // cast truncates constant value
+#endif
+
#define CVT_ROUND_MODES_IMPLEMENTED 0
#define CV_SIMD512 1
inline void v_lut_deinterleave(const float* tab, const v_int32x16& idxvec, v_float32x16& x, v_float32x16& y)
{
x.val = _mm512_i32gather_ps(idxvec.val, tab, 4);
- y.val = _mm512_i32gather_ps(idxvec.val, tab + 1, 4);
+ y.val = _mm512_i32gather_ps(idxvec.val, &tab[1], 4);
}
inline void v_lut_deinterleave(const double* tab, const v_int32x16& idxvec, v_float64x8& x, v_float64x8& y)
{
x.val = _mm512_i32gather_pd(_v512_extract_low(idxvec.val), tab, 8);
- y.val = _mm512_i32gather_pd(_v512_extract_low(idxvec.val), tab + 1, 8);
+ y.val = _mm512_i32gather_pd(_v512_extract_low(idxvec.val), &tab[1], 8);
}
inline v_int8x64 v_interleave_pairs(const v_int8x64& vec)