Rollup merge of #137826 - karolzwolak:looping_over_ne_bytes_133528, r=DianQK
test(codegen): add looping_over_ne_bytes test for #133528 Adds test for #133528. I renamed the function to `looping_over_ne_bytes` to better reflect that it is doing. I also set the min llvm version to 20 as this was presumably a llvm bug that was fixed in version 20. I didn't tie the test to any specific architecture, as we are testing llvm output.
This commit is contained in:
commit
15e97bd45e
1 changed files with 17 additions and 0 deletions
17
tests/codegen/issues/looping-over-ne-bytes-133528.rs
Normal file
17
tests/codegen/issues/looping-over-ne-bytes-133528.rs
Normal file
|
@ -0,0 +1,17 @@
|
|||
//@ compile-flags: -Copt-level=3
|
||||
//@ min-llvm-version: 20
|
||||
#![crate_type = "lib"]
|
||||
|
||||
/// Ensure the function is properly optimized
|
||||
/// In the issue #133528, the function was not getting optimized
|
||||
/// whereas, a version with `bytes` wrapped into a `black_box` was optimized
|
||||
/// It was probably a LLVM bug that was fixed in LLVM 20
|
||||
|
||||
// CHECK-LABEL: @looping_over_ne_bytes
|
||||
// CHECK: icmp eq i64 %input, -1
|
||||
// CHECK-NEXT: ret i1
|
||||
#[no_mangle]
|
||||
fn looping_over_ne_bytes(input: u64) -> bool {
|
||||
let bytes = input.to_ne_bytes();
|
||||
bytes.iter().all(|x| *x == !0)
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue