diff options
| author | bors <bors@rust-lang.org> | 2024-10-30 02:26:18 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2024-10-30 02:26:18 +0000 |
| commit | 16422dbd8958179379214e8f43fdb73a06b2eada (patch) | |
| tree | 4417e57297328aec1f466e816dcf817c4eda05c3 | |
| parent | 1e4f10ba6476e48a42a79b9f846a2d9366525b9e (diff) | |
| parent | ad80da672915a89163838f9adbfe5b6e4c1e616e (diff) | |
| download | rust-16422dbd8958179379214e8f43fdb73a06b2eada.tar.gz rust-16422dbd8958179379214e8f43fdb73a06b2eada.zip | |
Auto merge of #132238 - Urgau:midpoint-i64-hackers-impl, r=joboet
Use Hacker's Delight impl in `i64::midpoint` instead of wide `i128` impl This PR switches `i64::midpoint` and (`isize::midpoint` where `isize == i64`) to using our Hacker's Delight impl instead of wide `i128` implementation. As LLVM seems to be outperformed by the complexity of signed 128-bits number compared to our Hacker's Delight implementation.[^1] It doesn't seems like it's an improvement for the other sizes[^2], so we let them with the wide implementation. [^1]: https://rust.godbolt.org/z/ravE75EYj [^2]: https://rust.godbolt.org/z/fzr171zKh r? libs
| -rw-r--r-- | library/core/src/num/mod.rs | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/library/core/src/num/mod.rs b/library/core/src/num/mod.rs index 9a5e211dd60..6a0b40ff517 100644 --- a/library/core/src/num/mod.rs +++ b/library/core/src/num/mod.rs @@ -429,7 +429,7 @@ impl i64 { from_xe_bytes_doc = "", bound_condition = "", } - midpoint_impl! { i64, i128, signed } + midpoint_impl! { i64, signed } } impl i128 { @@ -530,7 +530,7 @@ impl isize { from_xe_bytes_doc = usize_isize_from_xe_bytes_doc!(), bound_condition = " on 64-bit targets", } - midpoint_impl! { isize, i128, signed } + midpoint_impl! { isize, signed } } /// If the 6th bit is set ascii is lower case. |
