builtin-expect.c revision ec9919549095390b5737c561544f8bd49fc894de
1ec9919549095390b5737c561544f8bd49fc894deFariborz Jahanian// RUN: %clang_cc1 -triple x86_64-unknown-unknown -emit-llvm -o - %s | FileCheck %s
2e42b8a596886fc98e367c73e54d761446700029eFariborz Jahanian
3e42b8a596886fc98e367c73e54d761446700029eFariborz Jahanianint x;
4e42b8a596886fc98e367c73e54d761446700029eFariborz Jahanianint y(void);
5e42b8a596886fc98e367c73e54d761446700029eFariborz Jahanianvoid foo();
6e42b8a596886fc98e367c73e54d761446700029eFariborz Jahanianvoid FUNC() {
7e42b8a596886fc98e367c73e54d761446700029eFariborz Jahanian// CHECK: [[call:%.*]] = call i32 @y
8e42b8a596886fc98e367c73e54d761446700029eFariborz Jahanian  if (__builtin_expect (x, y()))
9e42b8a596886fc98e367c73e54d761446700029eFariborz Jahanian    foo ();
10e42b8a596886fc98e367c73e54d761446700029eFariborz Jahanian}
11e42b8a596886fc98e367c73e54d761446700029eFariborz Jahanian
12ec9919549095390b5737c561544f8bd49fc894deFariborz Jahanian// rdar://9330105
13ec9919549095390b5737c561544f8bd49fc894deFariborz Jahanianvoid isigprocmask(void);
14ec9919549095390b5737c561544f8bd49fc894deFariborz Jahanianlong bar();
15ec9919549095390b5737c561544f8bd49fc894deFariborz Jahanian
16ec9919549095390b5737c561544f8bd49fc894deFariborz Jahanianint main() {
17ec9919549095390b5737c561544f8bd49fc894deFariborz Jahanian    (void) __builtin_expect((isigprocmask(), 0), bar());
18ec9919549095390b5737c561544f8bd49fc894deFariborz Jahanian}
19ec9919549095390b5737c561544f8bd49fc894deFariborz Jahanian
20ec9919549095390b5737c561544f8bd49fc894deFariborz Jahanian// CHECK: call void @isigprocmask()
21ec9919549095390b5737c561544f8bd49fc894deFariborz Jahanian// CHECK: [[C:%.*]] = call i64 (...)* @bar()
22