Repository navigation
_mm512_broadcast_i64x4 conversion error/_mm_cvtsi128_si64 missing on x86 #610
Copy link
Copy link
Open
Description
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.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels
Type
Fields
No fields configured for issues without a type.
Activity
stefanatwork commentedon Jul 31, 2026
AVX512 for MSVC was indeed disabled before v4.4.1.
See 13dcb33