diff options
| author | Matthias Krüger <476013+matthiaskrgr@users.noreply.github.com> | 2025-03-03 06:41:36 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-03-03 06:41:36 +0100 |
| commit | 15e97bd45eb83bc4114149702899bba97072bbb6 (patch) | |
| tree | e6e4bc4c66b1b59c0235b6b387c7870ac340f7a3 /tests/codegen/issues | |
| parent | d818c1da17d8f2bda6284c472560eed30c1aba9d (diff) | |
| parent | 107d7ef767b1d4585515cc17db103a03d7a9364e (diff) | |
| download | rust-15e97bd45eb83bc4114149702899bba97072bbb6.tar.gz rust-15e97bd45eb83bc4114149702899bba97072bbb6.zip | |
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.
Diffstat (limited to 'tests/codegen/issues')
| -rw-r--r-- | tests/codegen/issues/looping-over-ne-bytes-133528.rs | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/tests/codegen/issues/looping-over-ne-bytes-133528.rs b/tests/codegen/issues/looping-over-ne-bytes-133528.rs new file mode 100644 index 00000000000..35acf765d69 --- /dev/null +++ b/tests/codegen/issues/looping-over-ne-bytes-133528.rs @@ -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) +} |
