LLVM OpenMP
nested-looprange-reverse.c
Go to the documentation of this file.
1// RUN: %libomp-compile -fopenmp-version=60 && %libomp-run \
2// RUN: | FileCheck %s --match-full-lines
3
4// Nested fuse where the inner looprange fuse leaves a reversed loop out of
5// range. After the construct, each loop variable must hold its loop-exit
6// value (OpenMP 6.0).
7
8#ifndef HEADER
9#define HEADER
10
11#include <stdlib.h>
12#include <stdio.h>
13
14int main() {
15 int i = -1, j = -1, k = -1, l = -1;
16#pragma omp fuse
17 {
18#pragma omp fuse looprange(1, 2)
19 {
20 for (i = 0; i < 10; i++)
21 ;
22 for (j = 0; j < 15; j++)
23 ;
24#pragma omp reverse
25 for (k = 0; k < 5; k++)
26 ;
27 }
28 for (l = 0; l < 4; l++)
29 ;
30 }
31 printf("i=%d j=%d k=%d l=%d\n", i, j, k, l);
32 return EXIT_SUCCESS;
33}
34#endif /* HEADER */
35
36// CHECK: i=10 j=15 k=5 l=4
#define i
Definition kmp_stub.cpp:88