Skip to content
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

std_detect: Add sme-b16b16 as an explicit aarch64 target feature #1635

Merged
merged 1 commit into from
Sep 18, 2024

Conversation

mrkajetanp
Copy link
Contributor

LLVM 20 split out what used to be called b16b16 and correspond to aarch64 FEAT_SVE_B16B16 into sve-b16b16 and sme-b16b16.
Add sme-b16b16 as an explicit feature and update the detection accordingly.

@rustbot
Copy link
Collaborator

rustbot commented Sep 6, 2024

r? @Amanieu

rustbot has assigned @Amanieu.
They will have a look at your PR within the next two weeks and either review your PR or reassign to another reviewer.

Use r? to explicitly pick a reviewer

@@ -500,6 +496,10 @@ impl AtHwcap {
let sme2 = self.sme2 && sme;
enable_feature(Feature::sme2, sme2);
enable_feature(Feature::sme2p1, self.sme2p1 && sme2);
enable_feature(
Feature::sme_b16b16,
sme2 && self.bf16 && self.sveb16b16 && self.smeb16b16,
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is it necessary to check for sveb16b16 here as well? I would expect this to be available for chips that only support SME but not SVE like the latest apple ones.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah we should check because there's a dependency in the architecture and if you try enabling this in LLVM it'll also enable sve-b16b16.

The check is just being overly cautious because having this one implies having the other one on the architecture level anyway so that part of the check should never fail.

Slightly counterintuitive due to the naming but this is still fine for SME-only devices because sve-b16b16 does not actually depend on sve, in that case it would just only give you the SME instructions.

LLVM 20 split out what used to be called b16b16 and correspond to aarch64
FEAT_SVE_B16B16 into sve-b16b16 and sme-b16b16.
Add sme-b16b16 as an explicit feature and update the detection accordingly.
@Amanieu Amanieu enabled auto-merge (rebase) September 18, 2024 15:33
@Amanieu Amanieu merged commit c881fe3 into rust-lang:master Sep 18, 2024
33 checks passed
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