aarch64: Support FEAT_LSE128 and FEAT_LRCPC3 #68
Merged
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.
armv9.4-a added the following instructions as FEAT_LSE128:
armv8.9-a/armv9.4-a added the following instructions as FEAT_LRCPC3:
This PR optimizes aarch64 128-bit acquire-load/release-store when FEAT_LSE2 and FEAT_LRCPC3 are enabled and optimizes aarch64 128-bit fetch_and/fetch_or/swap/{release,seqcst}-store when FEAT_LSE128 is enabled.
See also the relevant LLVM patches: D141406 (FEAT_LSE128), D141429 (FEAT_LRCPC3)), D143506
This PR is still marked as a draft because:
LLVM added support for FEAT_LSE128/FEAT_LRCPC3 on LLVM 16 (llvm/llvm-project@7fea6f2, llvm/llvm-project@a6aaa96), so we need to wait for Upgrade to LLVM 16 rust-lang/rust#107224.cc #10