-
Notifications
You must be signed in to change notification settings - Fork 298
SVE types and intrinsics #1509
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
base: master
Are you sure you want to change the base?
SVE types and intrinsics #1509
Conversation
Co-authored-by: Jamie Cunliffe <[email protected]> Co-authored-by: Jacob Bramley <[email protected]> Co-authored-by: Luca Vizzarro <[email protected]>
Co-authored-by: Jamie Cunliffe <[email protected]> Co-authored-by: Adam Gemmell <[email protected]> Co-authored-by: Jacob Bramley <[email protected]>
Co-authored-by: Luca Vizzarro <[email protected]> Co-authored-by: Adam Gemmell <[email protected]> Co-authored-by: Jacob Bramley <[email protected]>
Co-authored-by: Jamie Cunliffe <[email protected]> Co-authored-by: Adam Gemmell <[email protected]> Co-authored-by: Jacob Bramley <[email protected]>
r? @Amanieu (rustbot has picked a reviewer for you, use r? to override) |
For reference the rustc PR seems to be rust-lang/rust#118917. |
☔ The latest upstream changes (presumably 5ef6eb4) made this pull request unmergeable. Please resolve the merge conflicts. |
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
Please redirect this discussion to https://rust-lang.zulipchat.com/. |
I want to automatically generate the test codes sve.rs and sve2.rs by myself, so I run "RUST_BACKTRACE=full./target/release/stdarch-gen2 crates/stdarch-gen2/spec/sve crates/core_arch/src/aarch64/sve" in the ~/stdarch/stdarch directory.The results show that the problem lies in the fact that different versions of proc-macro2 have different supports for punctuation marks. In newer versions,"{" and "}" can be used as punctuation marks, but this is not supported in older versions. But my proc-macro2=1.0.101. Later, I tried other methods to generate curly braces myself, such as ①tokens.append_all(quote!) {{});" ②tokens.extend(TokenStream::from_str("{").unwrap()); ③tokens.extend(parse_str::("{").unwrap()); |
The intended arguments to stdarch-gen2 are just What's your rust version? stdarch is intended for nightly, so you'll have to find a nightly compiler from around the time this branch was last updated. Unfortunately there doesn't seem to be a Cargo.lock in the repository at this time so there's a chance new dependencies get brought in which you may have to manually downgrade. For example, the latest version of |
The meaning of "punctuation" is that when I do not change any Settings, I run RUST_BACKTRACE=full./target/release/stdarch-gen2 crates/stdarch-gen2/spec/sve. It will report an error saying that the 23 column of line 1475 of intrinsic.rs reports an error, that is, tokens.append(Punct::new('{', Spacing::Alone)); . The specific error message is "unsupported proc macro punctuation character '{'". After checking, I found that it is because the currently downloaded version of proc-macro2 is not supported. However, when I forcibly changed "proc-macro2=" 1.0 "in the Cargo.toml file to" proc-macro2= "=1.0.86", no error was reported. |
I'm not sure what you're trying to do - it looks like you're trying to update this branch to work with the more recent rustc changes. If that's the case I'd suggest rebasing this stdarch branch onto its own latest master and ensure that builds correctly. Then you can update the submodule in rust-lang/rust with it - no need to copy these intrinsics into the compiler codegen tests. If you're doing this for your own curiosity, feel free! But I warn that this branch is quite out of date and cannot be merged until upstream rustc has an implementation of scalable vectors, so it might be quite a bit of work for something that might not work correctly yet. |
All the SVE intrinsics along with updates to the intrinsic test tool to allow for SVE to be tested.
CI will fail until the rustc changes are merged.