Skip to content

support for _mm_clmulepi64_si128 on Apple Silicon #1348

@victorshoup

Description

@victorshoup

I'm running macOS 15.7.1 on an Apple M1 Max.
I tried using the _mm_clmulepi64_si128 intrinsic, but it seems to end up not using the vmull_p64.
Looking at the file x86/clmul.h, I see the relevant logic is at line 202.
On my platform, the macros SIMDE_ARM_NEON_A64V8_NATIVE and clang are defined and SIMDE_ARCH_ARM_AES are undefined.
I'm using the standard g++ with -march=native.
g++ --version says:
Apple clang version 17.0.0 (clang-1700.3.19.1)
Target: arm64-apple-darwin24.6.0

So I see why the logic in x86/clmul.h chooses not to use vmull_p64, but is this an intrinsic limitation on my platform or something else.
I mean, does the Apple silicon simply not support vmull_p64, or is there some issue in the toolchain that just prevents it from being used.

Thanks for any insight on this.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions