|
|
|
project('simd', 'c')
|
|
|
|
|
|
|
|
simd = import('unstable-simd')
|
|
|
|
|
|
|
|
cc = meson.get_compiler('c')
|
|
|
|
|
|
|
|
cdata = configuration_data()
|
|
|
|
|
|
|
|
if not meson.is_cross_build() and host_machine.cpu_family() == 'arm' and cc.get_id() == 'clang'
|
|
|
|
message('Adding -march=armv7 because assuming that this build happens on Raspbian.')
|
|
|
|
message('Its Clang seems to be misconfigured and does not support NEON by default.')
|
|
|
|
add_project_arguments('-march=armv7', language : 'c')
|
|
|
|
endif
|
|
|
|
|
|
|
|
if cc.get_id() == 'msvc' and cc.version().version_compare('<17')
|
|
|
|
error('MESON_SKIP_TEST VS2010 produces broken binaries on x86.')
|
|
|
|
endif
|
|
|
|
|
|
|
|
# FIXME add [a, b] = function()
|
|
|
|
rval = simd.check('mysimds',
|
|
|
|
mmx : 'simd_mmx.c',
|
|
|
|
sse : 'simd_sse.c',
|
|
|
|
sse2 : 'simd_sse2.c',
|
|
|
|
sse3 : 'simd_sse3.c',
|
|
|
|
ssse3 : 'simd_ssse3.c',
|
|
|
|
sse41 : 'simd_sse41.c',
|
|
|
|
sse42 : 'simd_sse42.c',
|
|
|
|
avx : 'simd_avx.c',
|
|
|
|
avx2 : 'simd_avx2.c',
|
|
|
|
neon : 'simd_neon.c',
|
|
|
|
compiler : cc,
|
|
|
|
include_directories : include_directories('include'))
|
|
|
|
|
|
|
|
simdlibs = rval[0]
|
|
|
|
cdata.merge_from(rval[1])
|
|
|
|
|
|
|
|
configure_file(output : 'simdconfig.h',
|
|
|
|
configuration : cdata)
|
|
|
|
|
|
|
|
p = executable('simdtest', 'simdchecker.c', 'fallback.c',
|
|
|
|
link_with : simdlibs)
|
|
|
|
|
|
|
|
test('simdtest', p)
|
|
|
|
|