1 // RUN: %clang_cc1 -triple x86_64-unknown-unknown -emit-llvm -o - %s | FileCheck %s 2 3 int x; 4 int y(void); 5 void foo(); FUNC()6void FUNC() { 7 // CHECK: [[call:%.*]] = call i32 @y 8 if (__builtin_expect (x, y())) 9 foo (); 10 } 11 12 // rdar://9330105 13 void isigprocmask(void); 14 long bar(); 15 main()16int main() { 17 (void) __builtin_expect((isigprocmask(), 0), bar()); 18 } 19 20 // CHECK: call void @isigprocmask() 21 // CHECK: [[C:%.*]] = call i64 (...)* @bar() 22 23 24 // CHECK: @test1 test1(int x)25int test1(int x) { 26 // CHECK: @llvm.expect 27 if (__builtin_expect (x, 1)) 28 return 0; 29 return x; 30 } 31 32 // CHECK: @test2 test2(int x)33int test2(int x) { 34 // CHECK: @llvm.expect 35 switch(__builtin_expect(x, 5)) { 36 default: 37 return 0; 38 case 0: 39 case 1: 40 case 2: 41 return 1; 42 case 5: 43 return 5; 44 }; 45 46 return 0; 47 } 48