LLVM OpenMP
reverse-on-flatten.c
Go to the documentation of this file.
1// RUN: %libomp-compile -fopenmp-version=61 && %libomp-run \
2// RUN: | FileCheck %s --match-full-lines
3
4#ifndef HEADER
5#define HEADER
6
7#include <stdlib.h>
8#include <stdio.h>
9
10int main() {
11 printf("do\n");
12#pragma omp reverse
13#pragma omp flatten
14 for (int i = 0; i < 2; ++i)
15 for (int j = 0; j < 2; ++j)
16 printf("i=%d j=%d\n", i, j);
17 printf("done\n");
18 return EXIT_SUCCESS;
19}
20
21#endif /* HEADER */
22
23// Reverse consumes the single loop produced by flatten, so the product
24// space is visited in reverse.
25// CHECK: do
26// CHECK-NEXT: i=1 j=1
27// CHECK-NEXT: i=1 j=0
28// CHECK-NEXT: i=0 j=1
29// CHECK-NEXT: i=0 j=0
30// CHECK-NEXT: done
#define i
Definition kmp_stub.cpp:88
int main()