meson: Fix compiler checks for SWR with ICC

This is a bit fragile, as the way this "fixes" the check is to move the
one that we know is correct before the one that is incorrectly reported
as working. In meson 0.49.1 (which isn't out yet) this is fixed that the
incorrect check is reported as a failure.

Fixes: e0b037d697
       ("meson: Build SWR driver")
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=109129
Acked-by: Eric Engestrom <eric.engestrom@intel.com>
(cherry picked from commit 7cb7f35bc7)
This commit is contained in:
Dylan Baker 2019-01-14 15:15:09 -08:00 committed by Emil Velikov
parent 8f45b22c11
commit cadab68f95

View file

@ -190,11 +190,7 @@ swr_arch_libs = []
swr_arch_defines = []
swr_avx_args = cpp.first_supported_argument(
'-target-cpu=sandybridge', '-mavx', '-march=core-avx', '-tp=sandybridge',
prefix : '''
#if !defined(__AVX__)
# error
#endif ''',
'-mavx', '-target-cpu=sandybridge', '-march=core-avx', '-tp=sandybridge',
)
if swr_avx_args == []
error('Cannot find AVX support for swr. (these are required for SWR an all architectures.)')
@ -215,18 +211,10 @@ endif
if with_swr_arches.contains('avx2')
swr_avx2_args = cpp.first_supported_argument(
'-target-cpu=haswell', '-march=core-avx2', '-tp=haswell',
prefix : '''
#if !defined(__AVX2__)
# error
#endif ''',
'-march=core-avx2', '-target-cpu=haswell', '-tp=haswell',
)
if swr_avx2_args == []
if cpp.has_argument(['-mavx2', '-mfma', '-mbmi2', '-mf16c'],
prefix : '''
#if !defined(__AVX2__)
# error
#endif ''')
if cpp.has_argument(['-mavx2', '-mfma', '-mbmi2', '-mf16c'])
swr_avx2_args = ['-mavx2', '-mfma', '-mbmi2', '-mf16c']
else
error('Cannot find AVX2 support for swr.')
@ -248,11 +236,7 @@ endif
if with_swr_arches.contains('knl')
swr_knl_args = cpp.first_supported_argument(
'-target-cpu=mic-knl', '-march=knl', '-xMIC-AVX512',
prefix : '''
#if !defined(__AVX512F__) || !defined(__AVX512ER__)
# error
#endif ''',
'-march=knl', '-target-cpu=mic-knl', '-xMIC-AVX512',
)
if swr_knl_args == []
error('Cannot find KNL support for swr.')
@ -276,11 +260,7 @@ endif
if with_swr_arches.contains('skx')
swr_skx_args = cpp.first_supported_argument(
'-target-cpu=x86-skylake', '-march=skylake-avx512', '-xCORE-AVX512',
prefix : '''
#if !defined(__AVX512F__) || !defined(__AVX512BW__)
# error
#endif ''',
'-march=skylake-avx512', '-target-cpu=x86-skylake', '-xCORE-AVX512',
)
if swr_skx_args == []
error('Cannot find SKX support for swr.')