blob: cbdfcd088aa1180792305b4fdec624ff5880367f [file] [edit]
// Tests that a loop searching a small static array is unrolled and simplified
// down to a single comparison, with none of the unrolled branches left behind.
// See <https://github.com/rust-lang/rust/issues/44041>.
//@ compile-flags: -Copt-level=3
#![crate_type = "lib"]
static TABLE: [i32; 4] = [0; 4];
// CHECK-LABEL: @exists_in_table(
// CHECK-NOT: br {{.*}}
// CHECK: icmp eq i32
// CHECK-NOT: br {{.*}}
// CHECK: ret i1
#[no_mangle]
pub fn exists_in_table(v: i32) -> bool {
for &x in TABLE.iter() {
if x == v {
return true;
}
}
false
}