Cleanup: Noisy warnings caused by different defines for sse2neon

The issue is visible on Apple Silicon when building Cycles.

Cycles includes sse2neon.h via two code paths: own CPU headers and
Blender's headers. The Blender headers will request higher precision
defines and Cycles does not need it (not for the kernel anyway, as
it has measurable performance penalty).

The solution is to wrap defines in the BLI_simd.h with check, so
that the flags are not re-defined.

The Blender's integration in Cycles does not really care if those
operations are precise or not, as the actual computations are done
elsewhere.

Pull Request: https://projects.blender.org/blender/blender/pulls/110953
This commit is contained in:
Sergey Sharybin
2023-08-09 13:12:53 +02:00
committed by Sergey Sharybin
parent f7c0ef1f73
commit 6afbb66a53

View File

@@ -12,9 +12,15 @@
#if defined(__ARM_NEON) && defined(WITH_SSE2NEON)
/* SSE/SSE2 emulation on ARM Neon. Match SSE precision. */
# define SSE2NEON_PRECISE_MINMAX 1
# define SSE2NEON_PRECISE_DIV 1
# define SSE2NEON_PRECISE_SQRT 1
# if !defined(SSE2NEON_PRECISE_MINMAX)
# define SSE2NEON_PRECISE_MINMAX 1
# endif
# if !defined(SSE2NEON_PRECISE_DIV)
# define SSE2NEON_PRECISE_DIV 1
# endif
# if !defined(SSE2NEON_PRECISE_SQRT)
# define SSE2NEON_PRECISE_SQRT 1
# endif
# include <sse2neon.h>
# define BLI_HAVE_SSE2 1
#elif defined(__SSE2__)