| // Test that `wrapping_div` only checks divisor once. | |
| // This test checks that there is only a single compare against -1 and -1 is not present as a | |
| // switch case (the second check present until rustc 1.12). | |
| // This test also verifies that a single panic call is generated (for the division by zero case). | |
| //@ compile-flags: -Copt-level=3 | |
| #![crate_type = "lib"] | |
| // CHECK-LABEL: @f | |
| #[no_mangle] | |
| pub fn f(x: i32, y: i32) -> i32 { | |
| // CHECK-COUNT-1: icmp eq i32 %y, -1 | |
| // CHECK-COUNT-1: panic | |
| // CHECK-NOT: i32 -1, label | |
| x.wrapping_div(y) | |
| } |