Tried to update the vcpkg port from 4.4.0 to 4.4.1 (see microsoft/vcpkg#52797). All CI jobs are fine there, except the x86-windows job:
[189/281] C:\PROGRA~2\MICROS~2\18\BUILDT~1\VC\Tools\MSVC\1451~1.362\bin\Hostx64\x86\cl.exe /TP -DEMBREE_TARGET_AVX -DEMBREE_TARGET_AVX2 -DEMBREE_TARGET_AVX512 -DEMBREE_TARGET_SSE2 -DEMBREE_TARGET_SSE42 -DTASKING_INTERNAL -ID:\b\embree\x86-windows-dbg /nologo /DWIN32 /D_WINDOWS /utf-8 /GR /EHsc /MP /MDd /Z7 /Ob0 /Od /EHsc /MP /GR /Gy /GS- /DDEBUG /DTBB_USE_DEBUG /Ox /Oi /D__SSE__ /D__SSE2__ /D__SSE3__ /D__SSSE3__ /D__SSE4_1__ /D__SSE4_2__ /arch:AVX2 /arch:AVX512 /showIncludes /Fokernels\CMakeFiles\embree_avx512.dir\__\geometry\instance_array_intersector.cpp.avx512.cpp.obj /Fdkernels\CMakeFiles\embree_avx512.dir\embree_avx512.pdb /FS -c D:\b\embree\x86-windows-dbg\geometry\instance_array_intersector.cpp.avx512.cpp
FAILED: [code=2] kernels/CMakeFiles/embree_avx512.dir/__/geometry/instance_array_intersector.cpp.avx512.cpp.obj
C:\PROGRA~2\MICROS~2\18\BUILDT~1\VC\Tools\MSVC\1451~1.362\bin\Hostx64\x86\cl.exe /TP -DEMBREE_TARGET_AVX -DEMBREE_TARGET_AVX2 -DEMBREE_TARGET_AVX512 -DEMBREE_TARGET_SSE2 -DEMBREE_TARGET_SSE42 -DTASKING_INTERNAL -ID:\b\embree\x86-windows-dbg /nologo /DWIN32 /D_WINDOWS /utf-8 /GR /EHsc /MP /MDd /Z7 /Ob0 /Od /EHsc /MP /GR /Gy /GS- /DDEBUG /DTBB_USE_DEBUG /Ox /Oi /D__SSE__ /D__SSE2__ /D__SSE3__ /D__SSSE3__ /D__SSE4_1__ /D__SSE4_2__ /arch:AVX2 /arch:AVX512 /showIncludes /Fokernels\CMakeFiles\embree_avx512.dir\__\geometry\instance_array_intersector.cpp.avx512.cpp.obj /Fdkernels\CMakeFiles\embree_avx512.dir\embree_avx512.pdb /FS -c D:\b\embree\x86-windows-dbg\geometry\instance_array_intersector.cpp.avx512.cpp
cl : Command line warning D9025 : overriding '/Od' with '/Ox'
cl : Command line warning D9025 : overriding '/arch:AVX2' with '/arch:AVX512'
D:\b\embree\src\v4.4.1-f00ea9db0c.clean\common\simd\vllong8_avx512.h(57): error C2664: '__m512i _mm512_broadcast_i64x4(__m256i)': cannot convert argument 1 from 'const embree::vllong_impl<4>' to '__m256i'
D:\b\embree\src\v4.4.1-f00ea9db0c.clean\common\simd\vllong8_avx512.h(57): note: No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
C:\Program Files (x86)\Microsoft Visual Studio\18\BuildTools\VC\Tools\MSVC\14.51.36231\include\zmmintrin.h(791): note: see declaration of '_mm512_broadcast_i64x4'
D:\b\embree\src\v4.4.1-f00ea9db0c.clean\common\simd\vllong8_avx512.h(57): note: while trying to match the argument list '(const embree::vllong_impl<4>)'
D:\b\embree\src\v4.4.1-f00ea9db0c.clean\common\simd\vllong8_avx512.h(294): error C3861: '_mm_cvtsi128_si64': identifier not found
Since there were so many changes from 4.4.0 to 4.4.1 that I can't quite figure out whether AVX512 was simply disabled on x86 before and isn't anymore, or whether the instructions used have changed and x86 doesn't support them, I think it would be better if someone here could tell me the best way to patch this.
Tried to update the vcpkg port from 4.4.0 to 4.4.1 (see microsoft/vcpkg#52797). All CI jobs are fine there, except the x86-windows job:
Since there were so many changes from 4.4.0 to 4.4.1 that I can't quite figure out whether AVX512 was simply disabled on x86 before and isn't anymore, or whether the instructions used have changed and x86 doesn't support them, I think it would be better if someone here could tell me the best way to patch this.