LLVM OpenMP 20.0.0git
parallel-wsloop-collapse-intfor.cpp
Go to the documentation of this file.
1// RUN: %libomp-cxx-compile-and-run | FileCheck %s --match-full-lines
2
3#ifndef HEADER
4#define HEADER
5
6#include <cstdlib>
7#include <cstdio>
8
9int main() {
10 printf("do\n");
11#pragma omp parallel for collapse(4) num_threads(1)
12 for (int i = 0; i < 3; ++i)
13#pragma omp interchange
14 for (int j = 0; j < 3; ++j)
15 for (int k = 0; k < 3; ++k)
16 for (int l = 0; l < 3; ++l)
17 printf("i=%d j=%d k=%d l=%d\n", i, j, k, l);
18 printf("done\n");
19 return EXIT_SUCCESS;
20}
21
22#endif /* HEADER */
23
24// CHECK: do
25// CHECK-NEXT: i=0 j=0 k=0 l=0
26// CHECK-NEXT: i=0 j=0 k=0 l=1
27// CHECK-NEXT: i=0 j=0 k=0 l=2
28// CHECK-NEXT: i=0 j=1 k=0 l=0
29// CHECK-NEXT: i=0 j=1 k=0 l=1
30// CHECK-NEXT: i=0 j=1 k=0 l=2
31// CHECK-NEXT: i=0 j=2 k=0 l=0
32// CHECK-NEXT: i=0 j=2 k=0 l=1
33// CHECK-NEXT: i=0 j=2 k=0 l=2
34// CHECK-NEXT: i=0 j=0 k=1 l=0
35// CHECK-NEXT: i=0 j=0 k=1 l=1
36// CHECK-NEXT: i=0 j=0 k=1 l=2
37// CHECK-NEXT: i=0 j=1 k=1 l=0
38// CHECK-NEXT: i=0 j=1 k=1 l=1
39// CHECK-NEXT: i=0 j=1 k=1 l=2
40// CHECK-NEXT: i=0 j=2 k=1 l=0
41// CHECK-NEXT: i=0 j=2 k=1 l=1
42// CHECK-NEXT: i=0 j=2 k=1 l=2
43// CHECK-NEXT: i=0 j=0 k=2 l=0
44// CHECK-NEXT: i=0 j=0 k=2 l=1
45// CHECK-NEXT: i=0 j=0 k=2 l=2
46// CHECK-NEXT: i=0 j=1 k=2 l=0
47// CHECK-NEXT: i=0 j=1 k=2 l=1
48// CHECK-NEXT: i=0 j=1 k=2 l=2
49// CHECK-NEXT: i=0 j=2 k=2 l=0
50// CHECK-NEXT: i=0 j=2 k=2 l=1
51// CHECK-NEXT: i=0 j=2 k=2 l=2
52// CHECK-NEXT: i=1 j=0 k=0 l=0
53// CHECK-NEXT: i=1 j=0 k=0 l=1
54// CHECK-NEXT: i=1 j=0 k=0 l=2
55// CHECK-NEXT: i=1 j=1 k=0 l=0
56// CHECK-NEXT: i=1 j=1 k=0 l=1
57// CHECK-NEXT: i=1 j=1 k=0 l=2
58// CHECK-NEXT: i=1 j=2 k=0 l=0
59// CHECK-NEXT: i=1 j=2 k=0 l=1
60// CHECK-NEXT: i=1 j=2 k=0 l=2
61// CHECK-NEXT: i=1 j=0 k=1 l=0
62// CHECK-NEXT: i=1 j=0 k=1 l=1
63// CHECK-NEXT: i=1 j=0 k=1 l=2
64// CHECK-NEXT: i=1 j=1 k=1 l=0
65// CHECK-NEXT: i=1 j=1 k=1 l=1
66// CHECK-NEXT: i=1 j=1 k=1 l=2
67// CHECK-NEXT: i=1 j=2 k=1 l=0
68// CHECK-NEXT: i=1 j=2 k=1 l=1
69// CHECK-NEXT: i=1 j=2 k=1 l=2
70// CHECK-NEXT: i=1 j=0 k=2 l=0
71// CHECK-NEXT: i=1 j=0 k=2 l=1
72// CHECK-NEXT: i=1 j=0 k=2 l=2
73// CHECK-NEXT: i=1 j=1 k=2 l=0
74// CHECK-NEXT: i=1 j=1 k=2 l=1
75// CHECK-NEXT: i=1 j=1 k=2 l=2
76// CHECK-NEXT: i=1 j=2 k=2 l=0
77// CHECK-NEXT: i=1 j=2 k=2 l=1
78// CHECK-NEXT: i=1 j=2 k=2 l=2
79// CHECK-NEXT: i=2 j=0 k=0 l=0
80// CHECK-NEXT: i=2 j=0 k=0 l=1
81// CHECK-NEXT: i=2 j=0 k=0 l=2
82// CHECK-NEXT: i=2 j=1 k=0 l=0
83// CHECK-NEXT: i=2 j=1 k=0 l=1
84// CHECK-NEXT: i=2 j=1 k=0 l=2
85// CHECK-NEXT: i=2 j=2 k=0 l=0
86// CHECK-NEXT: i=2 j=2 k=0 l=1
87// CHECK-NEXT: i=2 j=2 k=0 l=2
88// CHECK-NEXT: i=2 j=0 k=1 l=0
89// CHECK-NEXT: i=2 j=0 k=1 l=1
90// CHECK-NEXT: i=2 j=0 k=1 l=2
91// CHECK-NEXT: i=2 j=1 k=1 l=0
92// CHECK-NEXT: i=2 j=1 k=1 l=1
93// CHECK-NEXT: i=2 j=1 k=1 l=2
94// CHECK-NEXT: i=2 j=2 k=1 l=0
95// CHECK-NEXT: i=2 j=2 k=1 l=1
96// CHECK-NEXT: i=2 j=2 k=1 l=2
97// CHECK-NEXT: i=2 j=0 k=2 l=0
98// CHECK-NEXT: i=2 j=0 k=2 l=1
99// CHECK-NEXT: i=2 j=0 k=2 l=2
100// CHECK-NEXT: i=2 j=1 k=2 l=0
101// CHECK-NEXT: i=2 j=1 k=2 l=1
102// CHECK-NEXT: i=2 j=1 k=2 l=2
103// CHECK-NEXT: i=2 j=2 k=2 l=0
104// CHECK-NEXT: i=2 j=2 k=2 l=1
105// CHECK-NEXT: i=2 j=2 k=2 l=2
106// CHECK-NEXT: done
#define i
Definition: kmp_stub.cpp:87