LLVM OpenMP
many-microtask-args.c
Go to the documentation of this file.
1// RUN: %libomp-compile-and-run
2
3// All platforms should support at least 32 microtask arguments.
4// On some platforms that is the limit. See too-many-microtask-args.c
5
6#include <stdio.h>
7
8int main() {
9 int i;
10 int i1 = 0;
11 int i2 = 1;
12 int i3 = 2;
13 int i4 = 3;
14 int i5 = 4;
15 int i6 = 6;
16 int i7 = 7;
17 int i8 = 8;
18 int i9 = 9;
19 int i10 = 10;
20 int i11 = 11;
21 int i12 = 12;
22 int i13 = 13;
23 int i14 = 14;
24 int i15 = 15;
25 int i16 = 16;
26 int i17 = 17;
27 int i18 = 18;
28 int i19 = 19;
29 int i20 = 20;
30 int i21 = 21;
31 int i22 = 22;
32 int i23 = 23;
33 int i24 = 24;
34 int i25 = 25;
35 int i26 = 26;
36 int i27 = 27;
37 int i28 = 28;
38 int i29 = 29;
39 int i30 = 30;
40 int i31 = 31;
41
42 int r = 0;
43#pragma omp parallel for firstprivate( \
44 i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, \
45 i17, i18, i19, i20, i21, i22, i23, i24, i25, i26, i27, i28, i29, \
46 i30, i31) reduction(+ : r)
47 for (i = 0; i < i16; i++) {
48 r += i + i1 + i2 + i3 + i4 + i5 + i6 + i7 + i8 + i9 + i10 + i11 + i12 +
49 i13 + i14 + i15 + i16 + i17 + i18 + i19 + i20 + i21 + i22 + i23 + i24 +
50 i25 + i26 + i27 + i28 + i29 + i30 + i31;
51 }
52
53 int rf = 7976;
54 if (r != rf) {
55 fprintf(stderr, "r should be %d but instead equals %d\n", rf, r);
56 return 1;
57 }
58
59 return 0;
60}
#define i
Definition kmp_stub.cpp:88
int main()