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(3) num_threads(1)
12 for (int i = 0; i < 3; ++i)
13#pragma omp reverse
14 for (int j = 0; j < 3; ++j)
15 for (int k = 0; k < 3; ++k)
16 printf("i=%d j=%d k=%d\n", i, j, k);
17 printf("done\n");
18 return EXIT_SUCCESS;
19}
20
21#endif /* HEADER */
22
23// CHECK: do
24// CHECK-NEXT: i=0 j=2 k=0
25// CHECK-NEXT: i=0 j=2 k=1
26// CHECK-NEXT: i=0 j=2 k=2
27// CHECK-NEXT: i=0 j=1 k=0
28// CHECK-NEXT: i=0 j=1 k=1
29// CHECK-NEXT: i=0 j=1 k=2
30// CHECK-NEXT: i=0 j=0 k=0
31// CHECK-NEXT: i=0 j=0 k=1
32// CHECK-NEXT: i=0 j=0 k=2
33// CHECK-NEXT: i=1 j=2 k=0
34// CHECK-NEXT: i=1 j=2 k=1
35// CHECK-NEXT: i=1 j=2 k=2
36// CHECK-NEXT: i=1 j=1 k=0
37// CHECK-NEXT: i=1 j=1 k=1
38// CHECK-NEXT: i=1 j=1 k=2
39// CHECK-NEXT: i=1 j=0 k=0
40// CHECK-NEXT: i=1 j=0 k=1
41// CHECK-NEXT: i=1 j=0 k=2
42// CHECK-NEXT: i=2 j=2 k=0
43// CHECK-NEXT: i=2 j=2 k=1
44// CHECK-NEXT: i=2 j=2 k=2
45// CHECK-NEXT: i=2 j=1 k=0
46// CHECK-NEXT: i=2 j=1 k=1
47// CHECK-NEXT: i=2 j=1 k=2
48// CHECK-NEXT: i=2 j=0 k=0
49// CHECK-NEXT: i=2 j=0 k=1
50// CHECK-NEXT: i=2 j=0 k=2
51// CHECK-NEXT: done
#define i
Definition: kmp_stub.cpp:87