Rollup merge of #122461 - the8472:fix-step-forward-unchecked, r=Amanieu
fix unsoundness in Step::forward_unchecked for signed integers Fixes #122420 ```rust pub fn foo(a: i8, b: u8) -> i8 { unsafe { a.checked_add_unsigned(b).unwrap_unchecked() } } ``` still compiles down to a single arithmetic instruction ([godbolt](https://rust.godbolt.org/z/qsd3xYWfE)). But we may be losing some loop optimizations if llvm can no longer easily derive that it's a finite counted loop from the no-wrapping flags.
This commit is contained in:
commit
75dc99b996
3 changed files with 34 additions and 3 deletions
|
|
@ -1 +1 @@
|
|||
The loop took around 7s
|
||||
The loop took around 12s
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue