LLVM OpenMP 20.0.0git
omp_parallel_copyin_combined.c
Go to the documentation of this file.
1// RUN: %libomp-compile-and-run
2#include "omp_testsuite.h"
3
4#define N 100
5
6int x1, x2, x3, x4, x5;
7#pragma omp threadprivate(x1, x2, x3, x4, x5)
8
10 int a[N];
11 x1 = 1;
12
13#pragma omp parallel copyin(x1)
14#pragma omp for
15 for (int i = 0; i < N; i++)
16 a[i] = i + x1;
17
18 int sum = 0;
19
20 for (int i = 0; i < N; i++)
21 sum += a[i];
22
23 return (sum == ((99 + 2 * x1) * 100) / 2);
24}
25
27 int a[N];
28 x2 = 2;
29
30#pragma omp parallel for copyin(x2)
31 for (int i = 0; i < N; i++)
32 a[i] = i + x2;
33
34 int sum = 0;
35
36 for (int i = 0; i < N; i++)
37 sum += a[i];
38
39 return (sum == ((99 + 2 * x2) * 100) / 2);
40}
41
43 int a[N];
44 x3 = 3;
45
46#pragma omp parallel for simd copyin(x3)
47 for (int i = 0; i < N; i++)
48 a[i] = i + x3;
49
50 int sum = 0;
51
52 for (int i = 0; i < N; i++)
53 sum += a[i];
54
55 return (sum == ((99 + 2 * x3) * 100) / 2);
56}
57
59 int a = 0;
60 int b = 0;
61 x4 = 4;
62
63#pragma omp parallel sections copyin(x4)
64 {
65#pragma omp section
66 { a = x4; }
67
68#pragma omp section
69 { b = x4; }
70 }
71
72 return (a + b == x4 * 2);
73}
74
76 int a[N];
77 x5 = 5;
78
79#pragma omp parallel master copyin(x5)
80 for (int i = 0; i < N; i++)
81 a[i] = i + x5;
82
83 int sum = 0;
84
85 for (int i = 0; i < N; i++)
86 sum += a[i];
87
88 return (sum == ((99 + 2 * x5) * 100) / 2);
89}
90
91int main() {
92 int num_failed = 0;
93
95 num_failed++;
96
98 num_failed++;
99
101 num_failed++;
102
104 num_failed++;
105
107 num_failed++;
108
109 return num_failed;
110}
#define i
Definition: kmp_stub.cpp:87
int a
int test_omp_parallel_sections_copyin()
int test_omp_parallel_for_simd_copyin()
int test_omp_parallel_master_copyin()
int test_omp_parallel_for_copyin()
int test_omp_parallel_copyin()