Skip to content

Conversation

@taiki-e
Copy link
Owner

@taiki-e taiki-e commented Jan 30, 2023

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:

cc #10

@taiki-e taiki-e added the O-arm Target: 32-bit Arm processors (armv6, armv7, thumb...), including 64-bit Arm in AArch32 state label Jan 30, 2023
@taiki-e taiki-e force-pushed the aarch64-lse128 branch 2 times, most recently from 1a1baba to 9fd4110 Compare February 4, 2023 14:23
@taiki-e taiki-e changed the title aarch64: Support FEAT_LSE128 aarch64: Support FEAT_LSE128 and FEAT_LRCPC3 Feb 6, 2023
@taiki-e taiki-e force-pushed the aarch64-lse128 branch 7 times, most recently from e83b63a to 22878a7 Compare February 9, 2023 15:50
@taiki-e
Copy link
Owner Author

taiki-e commented Feb 9, 2023

I could build rust-lang/rust#107224 locally and compile the test suite with -C target-feature=+lse2,+rcpc3,+lse128.

However, ArmIE does not support Armv8.9/Armv9.4, so I could not run tests with ArmIE (got SIGILL).
(The last release (22.0) of ArmIE was in March 2022, which was before Armv8.9/Armv9.4 was announced. We may need to use Fast Models which appears to support most of Armv8.9/Armv9.4.)

@taiki-e taiki-e marked this pull request as ready for review June 4, 2023 15:53
@taiki-e taiki-e marked this pull request as draft June 4, 2023 16:39
@taiki-e taiki-e marked this pull request as ready for review June 4, 2023 16:44
@taiki-e taiki-e force-pushed the main branch 2 times, most recently from a4d8248 to 6d90a3d Compare July 29, 2023 08:13
@taiki-e taiki-e force-pushed the aarch64-lse128 branch 3 times, most recently from 0740795 to 940e407 Compare August 8, 2023 02:36
@taiki-e taiki-e merged commit 21a0e82 into main Aug 10, 2023
@taiki-e taiki-e deleted the aarch64-lse128 branch August 10, 2023 03:01
@taiki-e taiki-e added O-aarch64 Target: Armv8-A, Armv8-R, or later processors in AArch64 mode and removed O-arm Target: 32-bit Arm processors (armv6, armv7, thumb...), including 64-bit Arm in AArch32 state labels Sep 2, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

O-aarch64 Target: Armv8-A, Armv8-R, or later processors in AArch64 mode

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant