-
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? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # 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.