xref: /llvm-project/clang/test/OpenMP/omp_with_loop_pragma_instr_profile.c (revision 782c59a4eef0bca8546b0cfbb1e48a9fcd044c93)
1 // RUN: %clang_cc1 -verify -fopenmp -x c -emit-llvm %s -triple x86_64-unknown-linux -o - -femit-all-decls -disable-llvm-passes -fprofile-instrument=clang | FileCheck %s
2 // expected-no-diagnostics
3 
sub(double * restrict a,double * restrict b,int n)4 void sub(double *restrict a, double *restrict b, int n) {
5   int i;
6 
7 #pragma omp parallel for
8 #pragma clang loop vectorize(disable)
9   for (i = 0; i < n; i++) {
10     a[i] = a[i] + b[i];
11   }
12 }
13 
14 // CHECK-LABEL: @sub.omp_outlined(
15 // CHECK-NEXT:  entry:
16 // CHECK:         call void @llvm.instrprof.increment(
17 // CHECK:       omp.precond.then:
18 // CHECK-NEXT:    call void @llvm.instrprof.increment(
19 // CHECK:       cond.true:
20 // CHECK-NEXT:    call void @llvm.instrprof.increment(
21 // CHECK:       omp.inner.for.body:
22 // CHECK-NEXT:    call void @llvm.instrprof.increment(
23