-
Notifications
You must be signed in to change notification settings - Fork 12.6k
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
Consider implementing ARM64 __load_acquire
/__stlr
intrinsics
#62103
Comments
@llvm/issue-subscribers-backend-aarch64 |
If possible, I'd strongly prefer if you could change the MS STL to use (ldapr is part of armv8.3, so I assume MSVC won't generate it unless you pass flags that indicate the target supports it.) |
MSVC 17.6p3 introduced new ARM64 intrinsics for atomic (load-acquire/store-release) operations. Since clang does not support this yet, force the fallback path to temporarily unblock the build while we implement support for the `__stlr[8|16|32|64]` intrinsics in clang. See: llvm/llvm-project#62103
Closed as MSVC's STL now uses Clang's |
As of VS 2022 17.6 Preview 3, MSVC supports the following ARM64 intrinsics used by its STL:
According to my understanding, the
__load_acquire
intrinsic emits either theldar
orldapr
instructions (according to criteria that are beyond my cat-sized brain 🐱 🧠), while the__stlr
intrinsic emits thestlr
instruction. These are significantly more efficient than what was previously possible.Currently, MSVC's STL is using its classic (slower) codepaths for Clang/LLVM ARM64. It would be nice if Clang added support for the new faster intrinsics.
The text was updated successfully, but these errors were encountered: