Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I have found issues when compiling the SIMD targets for MSVC.
Firstly, the target
MNNAVX
requires the AVX2 instruction set. While this is correctly set when using Clang:It is not correct when using MSVC, which is still set to
AVX
. This prevents correct compiling.The same is true for the
MNNSSE
target, which requires theAVX
arch (theSSE
arch is ignored in x64).Lastly, there is a weird 256 bit dereference as if it is a struct, but in MSVC it is an opaque type, thus it should be dereferenced using SIMD intrinsics. I've updated the code so that the GCC/MSVC distinction is not necessary.
The fact that MNN's CI for Windows does not catch these errors makes me think the SIMD parts are not getting compiled during CI.