Skip to content

Add ARM64 support for Windows#73

Open
Harishmcw wants to merge 1 commit intogoogle:mainfrom
Harishmcw:win_arm64
Open

Add ARM64 support for Windows#73
Harishmcw wants to merge 1 commit intogoogle:mainfrom
Harishmcw:win_arm64

Conversation

@Harishmcw
Copy link
Copy Markdown

This PR adds CI and MSVC ARM64 support for the crc32c library.

MSVC ARM64 builds were missing intrinsic handling and had placeholder flags (/arch:NOTYET). This PR replaces those placeholders with proper MSVC ARM64 implementation and adds a windows-11-arm CI runner to validate it.

Changes:

  • CI: Add windows-11-arm to the OS matrix with MSVC-only builds, pass -A ARM64 to CMake for ARM64 target generation
  • CMakeLists.txt: Replace /arch:NOTYET placeholder with proper MSVC ARM64 intrinsic detection; skip /arch:armv8.0 flag when natively targeting ARM64
  • crc32c_arm64.cc: Add MSVC-compatible Arm64_Vmull_P64 wrapper using neon_pmull_64, replace poly64_t with uint64_t for MSVC compatibility
  • crc32c_arm64.h: Add MSVC/GCC-Clang header split for ARM intrinsics
  • crc32c_arm64_check.h: Add Windows ARM64 runtime capability check using IsProcessorFeaturePresent

@google-cla
Copy link
Copy Markdown

google-cla bot commented Mar 25, 2026

Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA).

View this failed invocation of the CLA check for more information.

For the most up to date status, view the checks section at the bottom of the pull request.

@mayankag-qti
Copy link
Copy Markdown

@khmyznikov FYI

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants