]> git.proxmox.com Git - rustc.git/blob - src/test/codegen/likely.rs
New upstream version 1.36.0+dfsg1
[rustc.git] / src / test / codegen / 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 }