161f2f256Sjoerg // RUN: %clang_profgen -o %t -O3 %s 261f2f256Sjoerg // RUN: env LLVM_PROFILE_FILE=%t.profraw %run %t 361f2f256Sjoerg // RUN: llvm-profdata merge -o %t.profdata %t.profraw 461f2f256Sjoerg // RUN: %clang_profuse=%t.profdata -o - -S -emit-llvm %s | FileCheck %s 561f2f256Sjoerg 661f2f256Sjoerg void __llvm_profile_reset_counters(void); 761f2f256Sjoerg void foo(int); main(void)861f2f256Sjoergint main(void) { 961f2f256Sjoerg foo(0); 1061f2f256Sjoerg __llvm_profile_reset_counters(); 1161f2f256Sjoerg foo(1); 1261f2f256Sjoerg return 0; 1361f2f256Sjoerg } foo(int N)1461f2f256Sjoergvoid foo(int N) { 1561f2f256Sjoerg // CHECK-LABEL: define void @foo( 1661f2f256Sjoerg // CHECK: br i1 %{{.*}}, label %{{.*}}, label %{{.*}}, !prof ![[FOO:[0-9]+]] 1761f2f256Sjoerg if (N) {} 1861f2f256Sjoerg } 19*ef84fd3bSjoerg // CHECK: ![[FOO]] = !{!"branch_weights", i32 2, i32 1} 20