Skip to content

Fix build on Windows + minor style fixes

the-very requested to merge fastops_win into master

Created by: nemo-cpt

This fixes Windows link issues:

fastops-fastops-avx.lib(ops_avx.cpp.obj) : error LNK2001: unresolved external symbol _mm256_castps_si256
fastops-fastops-avx2.lib(ops_avx2.cpp.obj) : error LNK2001: unresolved external symbol _mm256_castps_si256
fastops-fastops-avx.lib(ops_avx.cpp.obj) : error LNK2001: unresolved external symbol _mm256_castpd_si256
fastops-fastops-avx2.lib(ops_avx2.cpp.obj) : error LNK2001: unresolved external symbol _mm256_castpd_si256
fastops-fastops-avx.lib(ops_avx.cpp.obj) : error LNK2001: unresolved external symbol _mm256_castsi256_ps
fastops-fastops-avx2.lib(ops_avx2.cpp.obj) : error LNK2001: unresolved external symbol _mm256_castsi256_ps
fastops-fastops-avx.lib(ops_avx.cpp.obj) : error LNK2001: unresolved external symbol _mm256_castsi256_pd
fastops-fastops-avx2.lib(ops_avx2.cpp.obj) : error LNK2001: unresolved external symbol _mm256_castsi256_pd
contrib/libs/fastops/fastops/ut/bin/fastops_test.exe : fatal error LNK1120: 4 unresolved externals

Basically these intrinsics are not exactly functions and so just disappear without anything one may take address of. Wrapping into lambda saves the day.

Tested to work with clangs and gccs, so added unconditionally.

Merge request reports