1 // RUN: %clang_cc1 -triple i386-unknown-unknown -fopenmp -O1 %s -emit-llvm -o - | FileCheck %s 2 // RUN: %clang_cc1 -triple i386-unknown-unknown -fopenmp -O1 %s -emit-llvm -o - | opt -ipconstprop -S | FileCheck --check-prefix=IPCP %s 3 4 // CHECK: declare !callback ![[cid:[0-9]+]] void @__kmpc_fork_call 5 // CHECK: declare !callback ![[cid]] void @__kmpc_fork_teams 6 // CHECK: ![[cid]] = !{![[cidb:[0-9]+]]} 7 // CHECK: ![[cidb]] = !{i64 2, i64 -1, i64 -1, i1 true} 8 9 void work1(int, int); 10 void work2(int, int); 11 void work12(int, int); 12 13 void foo(int q) { 14 int p = 2; 15 16 #pragma omp parallel firstprivate(q, p) 17 work1(p, q); 18 // IPCP: call void @work1(i32 2, i32 %{{[._a-zA-Z0-9]*}}) 19 20 #pragma omp parallel for firstprivate(p, q) 21 for (int i = 0; i < q; i++) 22 work2(i, p); 23 // IPCP: call void @work2(i32 %{{[._a-zA-Z0-9]*}}, i32 2) 24 25 #pragma omp target teams firstprivate(p) 26 work12(p, p); 27 // IPCP: call void @work12(i32 2, i32 2) 28 } 29