Wide univ intrinsics (#11953)
authorVadim Pisarevsky <vadim.pisarevsky@gmail.com>
Mon, 16 Jul 2018 15:57:24 +0000 (18:57 +0300)
committerGitHub <noreply@github.com>
Mon, 16 Jul 2018 15:57:24 +0000 (18:57 +0300)
commitf058b5fb1e1d33ab1535ec2175b59150683d14e1
tree0ea81335ceed6eb83a448f661bee276790bbee3e
parent481829a81be8c7c13679d10abe11f6555bd4ab1e
Wide univ intrinsics (#11953)

* core:OE-27 prepare universal intrinsics to expand (#11022)

* core:OE-27 prepare universal intrinsics to expand (#11022)

* core: Add universal intrinsics for AVX2

* updated implementation of wide univ. intrinsics; converted several OpenCV HAL functions: sqrt, invsqrt, magnitude, phase, exp to the wide universal intrinsics.

* converted log to universal intrinsics; cleaned up the code a bit; added v_lut_deinterleave intrinsics.

* core: Add universal intrinsics for AVX2

* fixed multiple compile errors

* fixed many more compile errors and hopefully some test failures

* fixed some more compile errors

* temporarily disabled IPP to debug exp & log; hopefully fixed Doxygen complains

* fixed some more compile errors

* fixed v_store(short*, v_float16&) signatures

* trying to fix the test failures on Linux

* fixed some issues found by alalek

* restored IPP optimization after the patch with AVX wide intrinsics has been properly tested

* restored IPP optimization after the patch with AVX wide intrinsics has been properly tested
13 files changed:
modules/core/include/opencv2/core/hal/intrin.hpp
modules/core/include/opencv2/core/hal/intrin_avx.hpp [new file with mode: 0644]
modules/core/include/opencv2/core/hal/intrin_cpp.hpp
modules/core/include/opencv2/core/hal/intrin_neon.hpp
modules/core/include/opencv2/core/hal/intrin_sse.hpp
modules/core/include/opencv2/core/hal/intrin_vsx.hpp
modules/core/src/convert.fp16.cpp
modules/core/src/mathfuncs_core.simd.hpp
modules/core/test/test_intrin.cpp
modules/core/test/test_intrin.fp16.cpp
modules/core/test/test_intrin_utils.hpp
modules/core/test/test_math.cpp
modules/ts/src/ts_func.cpp