LLVM OpenMP
runtime
test
transform
flatten
depth-partial.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
// A depth(2) clause on a three-deep loop nest flattens only the outermost two
5
// loops; the innermost loop is left untouched and executes normally inside the
6
// flattened loop body.
7
8
#ifndef HEADER
9
#define HEADER
10
11
#include <stdlib.h>
12
#include <stdio.h>
13
14
int
main
() {
15
printf(
"do\n"
);
16
#pragma omp flatten depth(2)
17
for
(
int
i
= 5;
i
< 11;
i
+= 2)
18
for
(
int
j
= 1;
j
< 7;
j
+= 2)
19
for
(
int
k = 0; k < 2; ++k)
20
printf(
"i=%d j=%d k=%d\n"
,
i
,
j
, k);
21
printf(
"done\n"
);
22
return
EXIT_SUCCESS;
23
}
24
25
#endif
/* HEADER */
26
27
// CHECK: do
28
// CHECK-NEXT: i=5 j=1 k=0
29
// CHECK-NEXT: i=5 j=1 k=1
30
// CHECK-NEXT: i=5 j=3 k=0
31
// CHECK-NEXT: i=5 j=3 k=1
32
// CHECK-NEXT: i=5 j=5 k=0
33
// CHECK-NEXT: i=5 j=5 k=1
34
// CHECK-NEXT: i=7 j=1 k=0
35
// CHECK-NEXT: i=7 j=1 k=1
36
// CHECK-NEXT: i=7 j=3 k=0
37
// CHECK-NEXT: i=7 j=3 k=1
38
// CHECK-NEXT: i=7 j=5 k=0
39
// CHECK-NEXT: i=7 j=5 k=1
40
// CHECK-NEXT: i=9 j=1 k=0
41
// CHECK-NEXT: i=9 j=1 k=1
42
// CHECK-NEXT: i=9 j=3 k=0
43
// CHECK-NEXT: i=9 j=3 k=1
44
// CHECK-NEXT: i=9 j=5 k=0
45
// CHECK-NEXT: i=9 j=5 k=1
46
// CHECK-NEXT: done
main
int main()
Definition
depth-partial.c:14
i
#define i
Definition
kmp_stub.cpp:88
j
int j
Definition
omp_single_copyprivate.c:6
Generated on
for LLVM OpenMP by
1.14.0