-
Notifications
You must be signed in to change notification settings - Fork 13.3k
Add tmm_reg clobbers #97097
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
Add tmm_reg clobbers #97097
Conversation
Thanks for the pull request, and welcome! The Rust team is excited to review your changes, and you should hear from @michaelwoerister (or someone else) soon. Please see the contribution instructions for more information. |
@@ -6,6 +6,13 @@ | |||
|
|||
use std::arch::asm; | |||
|
|||
// CHECK-LABEL: @avx512_clobber |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should be @amx_clobber
I think.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah, you'd be right 🤦
I'll fix that in the morning.
This comment has been minimized.
This comment has been minimized.
You should add the tmm registers to the clobber_abi definitions in rustc_target/src/asm/mod.rs. |
I think @joshtriplett might be a good reviewer for this. |
I'm checking whether they're considered volatile or non-volatile. Win64 doesn't appear to say anything about them yet, and I need to find a recent version of Sys-V x86_64. |
Sys-V does consider them temporary and caller saved (https://ccs.neu.edu/home/ntuck/courses/2021/01/cs3650/asm/x86-64-sysv-abi.pdf, 2020 edition). I've also conservatively marked them as clobbered on Win64. |
This comment has been minimized.
This comment has been minimized.
@bors r+ |
📌 Commit eabe851 has been approved by |
Rollup of 7 pull requests Successful merges: - rust-lang#96647 (rustdoc-json: Fix HRTBs for WherePredicate::BoundPredicate) - rust-lang#96651 (Omit unnecessary help to add `#[cfg(test)]` when already annotated) - rust-lang#96761 (rustdoc: don't build `rayon` for non-windows targets) - rust-lang#97096 (Types with reachable constructors are reachable) - rust-lang#97097 (Add tmm_reg clobbers) - rust-lang#97113 (Search GUI fixes) - rust-lang#97116 (interpret/validity: reject references to uninhabited types) Failed merges: r? `@ghost` `@rustbot` modify labels: rollup
This adds support for naming the 8 tile registers from intel AMX as clobbers from
asm!
invocations on x86_64 (only). It does not add the registers as input or output operands.