// Test that calculating an index with saturating subtraction from an in-bounds // index doesn't generate another bounds check. //@ compile-flags: -Copt-level=3 //@ min-llvm-version: 21 #![crate_type = "lib"] // CHECK-LABEL: @bounds_check_is_elided #[no_mangle] pub fn bounds_check_is_elided(s: &[i32], index: usize) -> i32 { // CHECK-NOT: panic_bounds_check if index < s.len() { let lower_bound = index.saturating_sub(1); s[lower_bound] } else { -1 } }