]> git.lizzy.rs Git - rust.git/blob - src/test/codegen/intrinsics/likely.rs
Suggest defining type parameter when appropriate
[rust.git] / src / test / codegen / intrinsics / likely.rs
1 // compile-flags: -C no-prepopulate-passes
2
3 #![crate_type = "lib"]
4 #![feature(core_intrinsics)]
5
6 use std::intrinsics::{likely,unlikely};
7
8 #[no_mangle]
9 pub fn check_likely(x: i32, y: i32) -> Option<i32> {
10     unsafe {
11         // CHECK: call i1 @llvm.expect.i1(i1 %{{.*}}, i1 true)
12         if likely(x == y) {
13             None
14         } else {
15             Some(x + y)
16         }
17     }
18 }
19
20 #[no_mangle]
21 pub fn check_unlikely(x: i32, y: i32) -> Option<i32> {
22     unsafe {
23         // CHECK: call i1 @llvm.expect.i1(i1 %{{.*}}, i1 false)
24         if unlikely(x == y) {
25             None
26         } else {
27             Some(x + y)
28         }
29     }
30 }