Skip to content

Commit

Permalink
Unrolled build for rust-lang#137826
Browse files Browse the repository at this point in the history
Rollup merge of rust-lang#137826 - karolzwolak:looping_over_ne_bytes_133528, r=DianQK

test(codegen): add looping_over_ne_bytes test for rust-lang#133528

Adds test for rust-lang#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.
  • Loading branch information
rust-timer authored Mar 3, 2025
2 parents d491662 + 107d7ef commit 008c1c8
Showing 1 changed file with 17 additions and 0 deletions.
17 changes: 17 additions & 0 deletions tests/codegen/issues/looping-over-ne-bytes-133528.rs
Original file line number Diff line number Diff line change
@@ -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)
}

0 comments on commit 008c1c8

Please sign in to comment.