Conversation
The immediate here encodes both the rounding mode (in the low bits) and the scale (in the high bits). Make sure the scale is non-zero.
Fix CI after LLVM upgrade
Add testing for Arm64EC Windows
wasm: use `{read, write}_unaligned` methods
…g-add-sub
use `simd_saturating_{add, sub}` on neon
`s390x` llvm 21 improvements
It's historically been flaky and is no longer needed now that std_detect has been moved out of this repository.
Remove FreeBSD CI
use `llvm.roundeven` on arm
use `qemu-user` instead of `qemu-user-static` for loongarch CI
They don't need full "Zbc" extension but only its subset: the "Zbkc" extension. Since the compiler implies `zbkc` from `zbc`, it's safe to use `#[target_feature(enable = "zbkc")]`.
…ments RISC-V: Lower requirements of `clmul` and `clmulh`
Make Clippy happy (batch 2025-09)
This commit performs various improvements (better register allocation,
less register clobbering on the worst case and better readability) of
RISC-V inline assembly use cases.
Note that it does not change the `p` module (which defines the "P"
extension draft instructions but very likely to change).
1. Use `lateout` as possible.
Unlike `out(reg)` and `in(reg)` pair, `lateout(reg)` and `in(reg)`
can share the same register because they state that the late-output
register is written after all the reads are performed.
It can improve register allocation.
2. Add `preserves_flags` option as possible.
While RISC-V doesn't have _regular_ condition codes, RISC-V inline
assembly in the Rust language assumes that some registers
(mainly vector state registers) may be overwritten by default.
By adding `preserves_flags` to the intrinsics corresponding
instructions without overwriting them, it can minimize register
clobbering on the worst case.
3. Use trailing semicolon.
As `asm!` declares an action and it doesn't return a value by
itself, it would be better to have trailing semicolon to denote that
an `asm!` call is effectively a statement.
4. Make most of `asm!` calls multi-lined.
`rustfmt` makes some simple (yet long) `asm!` calls multi-lined but
it does not perform formatting of complex `asm!` calls with inputs
and/or outputs. To keep consistency, it makes most of the `asm!`
calls multi-lined.
Remove big-endian swizzles from `vreinterpret`
…improvements RISC-V: Improvements of inline assembly uses
|
cc @Amanieu, @folkertdev, @sayantn |
This comment has been minimized.
This comment has been minimized.
|
It's the first time I submit a subtree update PR and I'm not sure whether I'm doing this properly (though I used My personal motivation for submitting this is a minor fix rust-lang/stdarch#1918 (but it's going to be a prerequisite of larger experiments that require changing both |
This comment has been minimized.
This comment has been minimized.
|
I suspect you just need to pick a more recent base commit for CI to work? Otherwise this looks alright to me. |
|
Hmm, I changed Classic merge conflict, except that I don't understand why is it happening. |
|
After bisecting, the last succeeding Rust commit was 63f6845 and the first failing one is c23f07d (both only counting first parents) but changes between them seem unrelated to |
c1242fa to
0fdedcf
Compare
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
0fdedcf to
c1242fa
Compare
|
This PR was rebased onto a different master commit. Here's a range-diff highlighting what actually changed. Rebasing is a normal part of keeping PRs up to date, so no action is needed—this note is just to help reviewers. |
|
|
Wow. Somehow exact unchanged PR passed the CI (possibly CI was flaky?) |
|
I think it's allright, @Kobzol can you double-check that this looks good and won't cause issues? |
|
I'm not sure whether the history is fully preserved (because removing feature gates occurred independently on both But at least the contents under |
|
Umm, it's really suspicious to get a merge conflict on a push when the previous pull was empty (https://github.com/rust-lang/stdarch/actions/runs/17817660757/job/50654001348). Also, the |
|
@Kobzol Note: You can see the changes:
|
|
@Kobzol Anyway, thanks for warning me about changing |
|
Ahh, I see. Additional safety. Okay, I'm closing this and opening the exact same commit (clean josh push) with another PR. |
Subtree update of
stdarchto rust-lang/stdarch@9f12c1a.Created using https://github.com/rust-lang/josh-sync.
r? @ghost