Skip to content

Improve bit permutation codegen - #164611

Merged
rust-bors[bot] merged 1 commit into
rust-lang:mainfrom
ywxt:int_bits
Oct 21, 2026
Merged

rust-bors[bot] merged 1 commit into
rust-lang:mainfrom
ywxt:int_bits

Conversation

@ywxt

@ywxt ywxt commented Oct 20, 2026

Copy link
Copy Markdown
Contributor

This PR allows AArch64 use usra to improves bit permutation codegen for extract_bits.

For extract_bits, (x ^ q) ^ (q >> n) is equivalent to (x & !masks[stage]) + (q >> n), since q >> n and x ^ q have no overlapping set bits.

  • extract_bits benchmarks
Type Mask AArch64 XOR AArch64 Add Change
u8 constant 102.64 49.74 -51.54%
u8 invariant 108.00 82.32 -23.78%
u8 variable 408.10 378.12 -7.35%
u16 constant 150.31 90.10 -40.06%
u16 invariant 176.41 126.84 -28.10%
u16 variable 692.12 619.49 -10.49%
u32 constant 201.93 131.06 -35.10%
u32 invariant 228.70 167.32 -26.84%
u32 variable 1022.22 1001.70 -2.01%
u64 constant 259.48 187.71 -27.66%
u64 invariant 288.77 211.51 -26.75%
u64 variable 1463.05 1413.12 -3.41%
u128 constant 331.50 331.50 0.00%
u128 invariant 411.30 411.29 -0.00%
u128 variable 1489.14 1489.19 +0.00%

@rustbot rustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-libs Relevant to the library team, which will review and decide on the PR/issue. labels Oct 20, 2026
@rustbot

rustbot commented Oct 20, 2026

Copy link
Copy Markdown
Collaborator

r? @Mark-Simulacrum

rustbot has assigned @Mark-Simulacrum.
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

Why was this reviewer chosen?

The reviewer was selected based on:

  • Owners of files modified in this PR: libs
  • libs expanded to 12 candidates

@ywxt

ywxt commented Oct 20, 2026

Copy link
Copy Markdown
Contributor Author

r? @Amanieu

@rustbot rustbot assigned Amanieu and unassigned Mark-Simulacrum Oct 20, 2026
@Amanieu

Amanieu commented Oct 20, 2026

Copy link
Copy Markdown
Member

@bors r+

@rust-bors

rust-bors Bot commented Oct 20, 2026

Copy link
Copy Markdown
Contributor

📌 Commit 8735b14 has been approved by Amanieu

It is now in the queue for this repository.

@rust-bors rust-bors Bot added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Oct 20, 2026
JonathanBrouwer added a commit to JonathanBrouwer/rust that referenced this pull request Oct 20, 2026
Improve bit permutation codegen

This PR allows AArch64 use `usra`  to improves bit permutation codegen for `extract_bits`.

For `extract_bits`, `(x ^ q) ^ (q >> n)` is equivalent to `(x & !masks[stage]) + (q >> n)`, since `q >> n` and `x ^ q` have no overlapping set bits.
- `extract_bits` benchmarks

Type | Mask | AArch64 XOR | AArch64 Add | Change
-- | -- | -- | -- | --
u8 | constant | 102.64 | 49.74 | -51.54%
u8 | invariant | 108.00 | 82.32 | -23.78%
u8 | variable | 408.10 | 378.12 | -7.35%
u16 | constant | 150.31 | 90.10 | -40.06%
u16 | invariant | 176.41 | 126.84 | -28.10%
u16 | variable | 692.12 | 619.49 | -10.49%
u32 | constant | 201.93 | 131.06 | -35.10%
u32 | invariant | 228.70 | 167.32 | -26.84%
u32 | variable | 1022.22 | 1001.70 | -2.01%
u64 | constant | 259.48 | 187.71 | -27.66%
u64 | invariant | 288.77 | 211.51 | -26.75%
u64 | variable | 1463.05 | 1413.12 | -3.41%
u128 | constant | 331.50 | 331.50 | 0.00%
u128 | invariant | 411.30 | 411.29 | -0.00%
u128 | variable | 1489.14 | 1489.19 | +0.00%
rust-bors Bot pushed a commit that referenced this pull request Oct 20, 2026
…uwer

Rollup of 6 pull requests

Successful merges:

 - #163104 ([debuginfo] Emit `usize` and `isize` as typedefs)
 - #164488 (Don't try to skip anything in `Skip::advance_by(0)`)
 - #164578 (Don't ignore unknown LLVM diagnostics)
 - #164611 (Improve bit permutation codegen)
 - #162668 (document that `!` does bitwise and logical negation)
 - #164264 (lint: suggest `fXX::is_nan` for unsuffixed NaN comparisons)
JonathanBrouwer added a commit to JonathanBrouwer/rust that referenced this pull request Oct 20, 2026
Improve bit permutation codegen

This PR allows AArch64 use `usra`  to improves bit permutation codegen for `extract_bits`.

For `extract_bits`, `(x ^ q) ^ (q >> n)` is equivalent to `(x & !masks[stage]) + (q >> n)`, since `q >> n` and `x ^ q` have no overlapping set bits.
- `extract_bits` benchmarks

Type | Mask | AArch64 XOR | AArch64 Add | Change
-- | -- | -- | -- | --
u8 | constant | 102.64 | 49.74 | -51.54%
u8 | invariant | 108.00 | 82.32 | -23.78%
u8 | variable | 408.10 | 378.12 | -7.35%
u16 | constant | 150.31 | 90.10 | -40.06%
u16 | invariant | 176.41 | 126.84 | -28.10%
u16 | variable | 692.12 | 619.49 | -10.49%
u32 | constant | 201.93 | 131.06 | -35.10%
u32 | invariant | 228.70 | 167.32 | -26.84%
u32 | variable | 1022.22 | 1001.70 | -2.01%
u64 | constant | 259.48 | 187.71 | -27.66%
u64 | invariant | 288.77 | 211.51 | -26.75%
u64 | variable | 1463.05 | 1413.12 | -3.41%
u128 | constant | 331.50 | 331.50 | 0.00%
u128 | invariant | 411.30 | 411.29 | -0.00%
u128 | variable | 1489.14 | 1489.19 | +0.00%
rust-bors Bot pushed a commit that referenced this pull request Oct 20, 2026
…uwer

Rollup of 14 pull requests

Successful merges:

 - #163575 (core: Add examples and assembly tests for `abort_immediate`)
 - #163664 (Add new `RUSTC_BOOTSTRAP=-allow-unstable-compiler-flags` mode for testing stable compiler behavior in UI tests)
 - #163104 ([debuginfo] Emit `usize` and `isize` as typedefs)
 - #163338 (MIR move elimination [4/6]: MoveElimination)
 - #163701 (add ReadDir::dir to get the directory handle of the underlying directory)
 - #164488 (Don't try to skip anything in `Skip::advance_by(0)`)
 - #164578 (Don't ignore unknown LLVM diagnostics)
 - #164611 (Improve bit permutation codegen)
 - #164612 (std: Combine `is_powerpc64_feature_detected` into `is_powerpc_feature_detected`)
 - #162668 (document that `!` does bitwise and logical negation)
 - #164264 (lint: suggest `fXX::is_nan` for unsuffixed NaN comparisons)
 - #164509 (layout invariant: turn delayed bug back into proper assertion)
 - #164594 (rustdoc: Correctly handle inner `deprecated` attribute on modules)
 - #164629 (arch::breakpoint: avoid confusing 'equivalent' terminology)
JonathanBrouwer added a commit to JonathanBrouwer/rust that referenced this pull request Oct 20, 2026
Improve bit permutation codegen

This PR allows AArch64 use `usra`  to improves bit permutation codegen for `extract_bits`.

For `extract_bits`, `(x ^ q) ^ (q >> n)` is equivalent to `(x & !masks[stage]) + (q >> n)`, since `q >> n` and `x ^ q` have no overlapping set bits.
- `extract_bits` benchmarks

Type | Mask | AArch64 XOR | AArch64 Add | Change
-- | -- | -- | -- | --
u8 | constant | 102.64 | 49.74 | -51.54%
u8 | invariant | 108.00 | 82.32 | -23.78%
u8 | variable | 408.10 | 378.12 | -7.35%
u16 | constant | 150.31 | 90.10 | -40.06%
u16 | invariant | 176.41 | 126.84 | -28.10%
u16 | variable | 692.12 | 619.49 | -10.49%
u32 | constant | 201.93 | 131.06 | -35.10%
u32 | invariant | 228.70 | 167.32 | -26.84%
u32 | variable | 1022.22 | 1001.70 | -2.01%
u64 | constant | 259.48 | 187.71 | -27.66%
u64 | invariant | 288.77 | 211.51 | -26.75%
u64 | variable | 1463.05 | 1413.12 | -3.41%
u128 | constant | 331.50 | 331.50 | 0.00%
u128 | invariant | 411.30 | 411.29 | -0.00%
u128 | variable | 1489.14 | 1489.19 | +0.00%
rust-bors Bot pushed a commit that referenced this pull request Oct 20, 2026
…uwer

Rollup of 13 pull requests

Successful merges:

 - #163664 (Add new `RUSTC_BOOTSTRAP=-allow-unstable-compiler-flags` mode for testing stable compiler behavior in UI tests)
 - #163104 ([debuginfo] Emit `usize` and `isize` as typedefs)
 - #163338 (MIR move elimination [4/6]: MoveElimination)
 - #163701 (add ReadDir::dir to get the directory handle of the underlying directory)
 - #164488 (Don't try to skip anything in `Skip::advance_by(0)`)
 - #164578 (Don't ignore unknown LLVM diagnostics)
 - #164611 (Improve bit permutation codegen)
 - #164612 (std: Combine `is_powerpc64_feature_detected` into `is_powerpc_feature_detected`)
 - #162668 (document that `!` does bitwise and logical negation)
 - #164264 (lint: suggest `fXX::is_nan` for unsuffixed NaN comparisons)
 - #164509 (layout invariant: turn delayed bug back into proper assertion)
 - #164594 (rustdoc: Correctly handle inner `deprecated` attribute on modules)
 - #164629 (arch::breakpoint: avoid confusing 'equivalent' terminology)
rust-bors Bot pushed a commit that referenced this pull request Oct 20, 2026
…uwer

Rollup of 13 pull requests

Successful merges:

 - #163664 (Add new `RUSTC_BOOTSTRAP=-allow-unstable-compiler-flags` mode for testing stable compiler behavior in UI tests)
 - #163104 ([debuginfo] Emit `usize` and `isize` as typedefs)
 - #163338 (MIR move elimination [4/6]: MoveElimination)
 - #163701 (add ReadDir::dir to get the directory handle of the underlying directory)
 - #164488 (Don't try to skip anything in `Skip::advance_by(0)`)
 - #164578 (Don't ignore unknown LLVM diagnostics)
 - #164611 (Improve bit permutation codegen)
 - #164612 (std: Combine `is_powerpc64_feature_detected` into `is_powerpc_feature_detected`)
 - #162668 (document that `!` does bitwise and logical negation)
 - #164264 (lint: suggest `fXX::is_nan` for unsuffixed NaN comparisons)
 - #164509 (layout invariant: turn delayed bug back into proper assertion)
 - #164594 (rustdoc: Correctly handle inner `deprecated` attribute on modules)
 - #164629 (arch::breakpoint: avoid confusing 'equivalent' terminology)
JonathanBrouwer added a commit to JonathanBrouwer/rust that referenced this pull request Oct 20, 2026
Improve bit permutation codegen

This PR allows AArch64 use `usra`  to improves bit permutation codegen for `extract_bits`.

For `extract_bits`, `(x ^ q) ^ (q >> n)` is equivalent to `(x & !masks[stage]) + (q >> n)`, since `q >> n` and `x ^ q` have no overlapping set bits.
- `extract_bits` benchmarks

Type | Mask | AArch64 XOR | AArch64 Add | Change
-- | -- | -- | -- | --
u8 | constant | 102.64 | 49.74 | -51.54%
u8 | invariant | 108.00 | 82.32 | -23.78%
u8 | variable | 408.10 | 378.12 | -7.35%
u16 | constant | 150.31 | 90.10 | -40.06%
u16 | invariant | 176.41 | 126.84 | -28.10%
u16 | variable | 692.12 | 619.49 | -10.49%
u32 | constant | 201.93 | 131.06 | -35.10%
u32 | invariant | 228.70 | 167.32 | -26.84%
u32 | variable | 1022.22 | 1001.70 | -2.01%
u64 | constant | 259.48 | 187.71 | -27.66%
u64 | invariant | 288.77 | 211.51 | -26.75%
u64 | variable | 1463.05 | 1413.12 | -3.41%
u128 | constant | 331.50 | 331.50 | 0.00%
u128 | invariant | 411.30 | 411.29 | -0.00%
u128 | variable | 1489.14 | 1489.19 | +0.00%
rust-bors Bot pushed a commit that referenced this pull request Oct 20, 2026
…uwer

Rollup of 15 pull requests

Successful merges:

 - #163664 (Add new `RUSTC_BOOTSTRAP=-allow-unstable-compiler-flags` mode for testing stable compiler behavior in UI tests)
 - #163104 ([debuginfo] Emit `usize` and `isize` as typedefs)
 - #163338 (MIR move elimination [4/6]: MoveElimination)
 - #163701 (add ReadDir::dir to get the directory handle of the underlying directory)
 - #164488 (Don't try to skip anything in `Skip::advance_by(0)`)
 - #164611 (Improve bit permutation codegen)
 - #164612 (std: Combine `is_powerpc64_feature_detected` into `is_powerpc_feature_detected`)
 - #148842 (Avoid incorrect lifetime suggestion involving `sym::anon`)
 - #162668 (document that `!` does bitwise and logical negation)
 - #164264 (lint: suggest `fXX::is_nan` for unsuffixed NaN comparisons)
 - #164509 (layout invariant: turn delayed bug back into proper assertion)
 - #164540 (Minor optimizations around macro parsing)
 - #164594 (rustdoc: Correctly handle inner `deprecated` attribute on modules)
 - #164595 (Allow attributes in function trait parameters)
 - #164629 (arch::breakpoint: avoid confusing 'equivalent' terminology)
JonathanBrouwer added a commit to JonathanBrouwer/rust that referenced this pull request Oct 20, 2026
Improve bit permutation codegen

This PR allows AArch64 use `usra`  to improves bit permutation codegen for `extract_bits`.

For `extract_bits`, `(x ^ q) ^ (q >> n)` is equivalent to `(x & !masks[stage]) + (q >> n)`, since `q >> n` and `x ^ q` have no overlapping set bits.
- `extract_bits` benchmarks

Type | Mask | AArch64 XOR | AArch64 Add | Change
-- | -- | -- | -- | --
u8 | constant | 102.64 | 49.74 | -51.54%
u8 | invariant | 108.00 | 82.32 | -23.78%
u8 | variable | 408.10 | 378.12 | -7.35%
u16 | constant | 150.31 | 90.10 | -40.06%
u16 | invariant | 176.41 | 126.84 | -28.10%
u16 | variable | 692.12 | 619.49 | -10.49%
u32 | constant | 201.93 | 131.06 | -35.10%
u32 | invariant | 228.70 | 167.32 | -26.84%
u32 | variable | 1022.22 | 1001.70 | -2.01%
u64 | constant | 259.48 | 187.71 | -27.66%
u64 | invariant | 288.77 | 211.51 | -26.75%
u64 | variable | 1463.05 | 1413.12 | -3.41%
u128 | constant | 331.50 | 331.50 | 0.00%
u128 | invariant | 411.30 | 411.29 | -0.00%
u128 | variable | 1489.14 | 1489.19 | +0.00%
rust-bors Bot pushed a commit that referenced this pull request Oct 20, 2026
…uwer

Rollup of 14 pull requests

Successful merges:

 - #163664 (Add new `RUSTC_BOOTSTRAP=-allow-unstable-compiler-flags` mode for testing stable compiler behavior in UI tests)
 - #163104 ([debuginfo] Emit `usize` and `isize` as typedefs)
 - #163701 (add ReadDir::dir to get the directory handle of the underlying directory)
 - #164488 (Don't try to skip anything in `Skip::advance_by(0)`)
 - #164611 (Improve bit permutation codegen)
 - #164612 (std: Combine `is_powerpc64_feature_detected` into `is_powerpc_feature_detected`)
 - #148842 (Avoid incorrect lifetime suggestion involving `sym::anon`)
 - #162668 (document that `!` does bitwise and logical negation)
 - #164264 (lint: suggest `fXX::is_nan` for unsuffixed NaN comparisons)
 - #164509 (layout invariant: turn delayed bug back into proper assertion)
 - #164540 (Minor optimizations around macro parsing)
 - #164594 (rustdoc: Correctly handle inner `deprecated` attribute on modules)
 - #164595 (Allow attributes in function trait parameters)
 - #164629 (arch::breakpoint: avoid confusing 'equivalent' terminology)
rust-bors Bot pushed a commit that referenced this pull request Oct 20, 2026
…uwer

Rollup of 14 pull requests

Successful merges:

 - #163664 (Add new `RUSTC_BOOTSTRAP=-allow-unstable-compiler-flags` mode for testing stable compiler behavior in UI tests)
 - #163104 ([debuginfo] Emit `usize` and `isize` as typedefs)
 - #163701 (add ReadDir::dir to get the directory handle of the underlying directory)
 - #164488 (Don't try to skip anything in `Skip::advance_by(0)`)
 - #164611 (Improve bit permutation codegen)
 - #164612 (std: Combine `is_powerpc64_feature_detected` into `is_powerpc_feature_detected`)
 - #148842 (Avoid incorrect lifetime suggestion involving `sym::anon`)
 - #162668 (document that `!` does bitwise and logical negation)
 - #164264 (lint: suggest `fXX::is_nan` for unsuffixed NaN comparisons)
 - #164509 (layout invariant: turn delayed bug back into proper assertion)
 - #164540 (Minor optimizations around macro parsing)
 - #164594 (rustdoc: Correctly handle inner `deprecated` attribute on modules)
 - #164595 (Allow attributes in function trait parameters)
 - #164629 (arch::breakpoint: avoid confusing 'equivalent' terminology)
JonathanBrouwer added a commit to JonathanBrouwer/rust that referenced this pull request Oct 20, 2026
Improve bit permutation codegen

This PR allows AArch64 use `usra`  to improves bit permutation codegen for `extract_bits`.

For `extract_bits`, `(x ^ q) ^ (q >> n)` is equivalent to `(x & !masks[stage]) + (q >> n)`, since `q >> n` and `x ^ q` have no overlapping set bits.
- `extract_bits` benchmarks

Type | Mask | AArch64 XOR | AArch64 Add | Change
-- | -- | -- | -- | --
u8 | constant | 102.64 | 49.74 | -51.54%
u8 | invariant | 108.00 | 82.32 | -23.78%
u8 | variable | 408.10 | 378.12 | -7.35%
u16 | constant | 150.31 | 90.10 | -40.06%
u16 | invariant | 176.41 | 126.84 | -28.10%
u16 | variable | 692.12 | 619.49 | -10.49%
u32 | constant | 201.93 | 131.06 | -35.10%
u32 | invariant | 228.70 | 167.32 | -26.84%
u32 | variable | 1022.22 | 1001.70 | -2.01%
u64 | constant | 259.48 | 187.71 | -27.66%
u64 | invariant | 288.77 | 211.51 | -26.75%
u64 | variable | 1463.05 | 1413.12 | -3.41%
u128 | constant | 331.50 | 331.50 | 0.00%
u128 | invariant | 411.30 | 411.29 | -0.00%
u128 | variable | 1489.14 | 1489.19 | +0.00%
rust-bors Bot pushed a commit that referenced this pull request Oct 20, 2026
…uwer

Rollup of 19 pull requests

Successful merges:

 - #163664 (Add new `RUSTC_BOOTSTRAP=-allow-unstable-compiler-flags` mode for testing stable compiler behavior in UI tests)
 - #163668 (Remap syntax contexts and expansion ids for det. metadata encoding)
 - #160404 (fd-views: AsRef<File>&Co. for BorrowedFd)
 - #163104 ([debuginfo] Emit `usize` and `isize` as typedefs)
 - #163317 (Stop useless caching of post-LTO artifact caching for fat LTO)
 - #163701 (add ReadDir::dir to get the directory handle of the underlying directory)
 - #164488 (Don't try to skip anything in `Skip::advance_by(0)`)
 - #164507 (Encode HashMap and HashSet in deterministic order when an encoder requires determinism)
 - #164611 (Improve bit permutation codegen)
 - #164612 (std: Combine `is_powerpc64_feature_detected` into `is_powerpc_feature_detected`)
 - #148842 (Avoid incorrect lifetime suggestion involving `sym::anon`)
 - #162668 (document that `!` does bitwise and logical negation)
 - #164264 (lint: suggest `fXX::is_nan` for unsuffixed NaN comparisons)
 - #164509 (layout invariant: turn delayed bug back into proper assertion)
 - #164540 (Minor optimizations around macro parsing)
 - #164594 (rustdoc: Correctly handle inner `deprecated` attribute on modules)
 - #164595 (Allow attributes in function trait parameters)
 - #164641 (Stabilize `slice_split_once`)
 - #164646 (Adjust rustfmt subtree sync docs to not use `--allow-noop` for now)
rust-bors Bot pushed a commit that referenced this pull request Oct 21, 2026
Rollup of 20 pull requests

Successful merges:

 - #163664 (Add new `RUSTC_BOOTSTRAP=-allow-unstable-compiler-flags` mode for testing stable compiler behavior in UI tests)
 - #163668 (Remap syntax contexts and expansion ids for det. metadata encoding)
 - #163104 ([debuginfo] Emit `usize` and `isize` as typedefs)
 - #163317 (Stop useless caching of post-LTO artifact caching for fat LTO)
 - #163701 (add ReadDir::dir to get the directory handle of the underlying directory)
 - #164488 (Don't try to skip anything in `Skip::advance_by(0)`)
 - #164507 (Encode HashMap and HashSet in deterministic order when an encoder requires determinism)
 - #164611 (Improve bit permutation codegen)
 - #164612 (std: Combine `is_powerpc64_feature_detected` into `is_powerpc_feature_detected`)
 - #148842 (Avoid incorrect lifetime suggestion involving `sym::anon`)
 - #162668 (document that `!` does bitwise and logical negation)
 - #164264 (lint: suggest `fXX::is_nan` for unsuffixed NaN comparisons)
 - #164509 (layout invariant: turn delayed bug back into proper assertion)
 - #164540 (Minor optimizations around macro parsing)
 - #164594 (rustdoc: Correctly handle inner `deprecated` attribute on modules)
 - #164595 (Allow attributes in function trait parameters)
 - #164616 (Add test for VecDeque with a custom allocator)
 - #164629 (arch::breakpoint: avoid confusing 'equivalent' terminology)
 - #164641 (Stabilize `slice_split_once`)
 - #164646 (Adjust rustfmt subtree sync docs to not use `--allow-noop` for now)
@rust-bors
rust-bors Bot merged commit 4bd3610 into rust-lang:main Oct 21, 2026
14 checks passed
@rustbot rustbot added this to the 1.101.0 milestone Oct 21, 2026
rust-bors Bot pushed a commit that referenced this pull request Oct 21, 2026
Rollup merge of #164611 - ywxt:int_bits, r=Amanieu

Improve bit permutation codegen

This PR allows AArch64 use `usra`  to improves bit permutation codegen for `extract_bits`.

For `extract_bits`, `(x ^ q) ^ (q >> n)` is equivalent to `(x & !masks[stage]) + (q >> n)`, since `q >> n` and `x ^ q` have no overlapping set bits.
- `extract_bits` benchmarks

Type | Mask | AArch64 XOR | AArch64 Add | Change
-- | -- | -- | -- | --
u8 | constant | 102.64 | 49.74 | -51.54%
u8 | invariant | 108.00 | 82.32 | -23.78%
u8 | variable | 408.10 | 378.12 | -7.35%
u16 | constant | 150.31 | 90.10 | -40.06%
u16 | invariant | 176.41 | 126.84 | -28.10%
u16 | variable | 692.12 | 619.49 | -10.49%
u32 | constant | 201.93 | 131.06 | -35.10%
u32 | invariant | 228.70 | 167.32 | -26.84%
u32 | variable | 1022.22 | 1001.70 | -2.01%
u64 | constant | 259.48 | 187.71 | -27.66%
u64 | invariant | 288.77 | 211.51 | -26.75%
u64 | variable | 1463.05 | 1413.12 | -3.41%
u128 | constant | 331.50 | 331.50 | 0.00%
u128 | invariant | 411.30 | 411.29 | -0.00%
u128 | variable | 1489.14 | 1489.19 | +0.00%
github-actions Bot pushed a commit to rust-lang/stdarch that referenced this pull request Oct 22, 2026
Rollup of 20 pull requests

Successful merges:

 - rust-lang/rust#163664 (Add new `RUSTC_BOOTSTRAP=-allow-unstable-compiler-flags` mode for testing stable compiler behavior in UI tests)
 - rust-lang/rust#163668 (Remap syntax contexts and expansion ids for det. metadata encoding)
 - rust-lang/rust#163104 ([debuginfo] Emit `usize` and `isize` as typedefs)
 - rust-lang/rust#163317 (Stop useless caching of post-LTO artifact caching for fat LTO)
 - rust-lang/rust#163701 (add ReadDir::dir to get the directory handle of the underlying directory)
 - rust-lang/rust#164488 (Don't try to skip anything in `Skip::advance_by(0)`)
 - rust-lang/rust#164507 (Encode HashMap and HashSet in deterministic order when an encoder requires determinism)
 - rust-lang/rust#164611 (Improve bit permutation codegen)
 - rust-lang/rust#164612 (std: Combine `is_powerpc64_feature_detected` into `is_powerpc_feature_detected`)
 - rust-lang/rust#148842 (Avoid incorrect lifetime suggestion involving `sym::anon`)
 - rust-lang/rust#162668 (document that `!` does bitwise and logical negation)
 - rust-lang/rust#164264 (lint: suggest `fXX::is_nan` for unsuffixed NaN comparisons)
 - rust-lang/rust#164509 (layout invariant: turn delayed bug back into proper assertion)
 - rust-lang/rust#164540 (Minor optimizations around macro parsing)
 - rust-lang/rust#164594 (rustdoc: Correctly handle inner `deprecated` attribute on modules)
 - rust-lang/rust#164595 (Allow attributes in function trait parameters)
 - rust-lang/rust#164616 (Add test for VecDeque with a custom allocator)
 - rust-lang/rust#164629 (arch::breakpoint: avoid confusing 'equivalent' terminology)
 - rust-lang/rust#164641 (Stabilize `slice_split_once`)
 - rust-lang/rust#164646 (Adjust rustfmt subtree sync docs to not use `--allow-noop` for now)
jieyouxu pushed a commit to jieyouxu/rustfmt that referenced this pull request Oct 22, 2026
Rollup of 20 pull requests

Successful merges:

 - rust-lang/rust#163664 (Add new `RUSTC_BOOTSTRAP=-allow-unstable-compiler-flags` mode for testing stable compiler behavior in UI tests)
 - rust-lang/rust#163668 (Remap syntax contexts and expansion ids for det. metadata encoding)
 - rust-lang/rust#163104 ([debuginfo] Emit `usize` and `isize` as typedefs)
 - rust-lang/rust#163317 (Stop useless caching of post-LTO artifact caching for fat LTO)
 - rust-lang/rust#163701 (add ReadDir::dir to get the directory handle of the underlying directory)
 - rust-lang/rust#164488 (Don't try to skip anything in `Skip::advance_by(0)`)
 - rust-lang/rust#164507 (Encode HashMap and HashSet in deterministic order when an encoder requires determinism)
 - rust-lang/rust#164611 (Improve bit permutation codegen)
 - rust-lang/rust#164612 (std: Combine `is_powerpc64_feature_detected` into `is_powerpc_feature_detected`)
 - rust-lang/rust#148842 (Avoid incorrect lifetime suggestion involving `sym::anon`)
 - rust-lang/rust#162668 (document that `!` does bitwise and logical negation)
 - rust-lang/rust#164264 (lint: suggest `fXX::is_nan` for unsuffixed NaN comparisons)
 - rust-lang/rust#164509 (layout invariant: turn delayed bug back into proper assertion)
 - rust-lang/rust#164540 (Minor optimizations around macro parsing)
 - rust-lang/rust#164594 (rustdoc: Correctly handle inner `deprecated` attribute on modules)
 - rust-lang/rust#164595 (Allow attributes in function trait parameters)
 - rust-lang/rust#164616 (Add test for VecDeque with a custom allocator)
 - rust-lang/rust#164629 (arch::breakpoint: avoid confusing 'equivalent' terminology)
 - rust-lang/rust#164641 (Stabilize `slice_split_once`)
 - rust-lang/rust#164646 (Adjust rustfmt subtree sync docs to not use `--allow-noop` for now)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. T-libs Relevant to the library team, which will review and decide on the PR/issue.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants