-
Notifications
You must be signed in to change notification settings - Fork 130
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
std/crc64 doesn't build for 32-bit x86 #145
Comments
Build failure was picked up by oss-fuzz: |
nigeltao
added a commit
that referenced
this issue
Apr 6, 2024
nigeltao
added a commit
that referenced
this issue
Jul 9, 2024
If I understand the #148 discussion correctly, a user overrode WUFFS_BASE__CPU_ARCH__X86_FAMILY (without also providing /arch:AVX) to enable SSE4.2 code (even though, technically, x86_64 doesn't guarantee SSE4.2, only SSE2). This seemed to work fine in practice, but was unsupported by Wuffs and 'broke' by fixing #145, now looking for WUFFS_BASE__CPU_ARCH__X86_64 instead of WUFFS_BASE__CPU_ARCH__X86_FAMILY. WUFFS_BASE__CPU_ARCH__X86_FAMILY has since been renamed to WUFFS_PRIVATE_IMPL__CPU_ARCH__X86_FAMILY and then removed entirely. As SSE4.2 (roughly equivalent to x86-64-v2) seems to work fine at compile time (with the existing cpuid detection at runtime), enable it by default for MSVC, without need /arch. Enabling x86-64-v3 too, by default, is held back for now, pending further confirmation from MSVC users. The #148 user was exercising Wuffs' PNG codec, which uses SSE4.2 but not AVX or AVX2. Currently, only Wuffs' JPEG codec (and YCbCr conversion) uses AVX or AVX2. GCC and Clang don't need this fiddliness, because they support "__attribute__((target(arg)))". Updates #148
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
std/xz depends on std/crc64, which recently changed:
These new SSE4.2 intrinsics build fine on 64-bit x86 but not with the
-m32
flag, because_mm_cvtsi64_si128
and_mm_extract_epi64
are apparently unsupported on 32-bit x86. Some GCC discussion:The text was updated successfully, but these errors were encountered: