LLVM OpenMP
tile-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// tile restores the variables of a reverse it consumes, and leaves an inner
5// one untouched when the enclosing loop has no iterations.
6
7#ifndef HEADER
8#define HEADER
9
10#include <stdio.h>
11#include <stdlib.h>
12
13static void test_tile_reverse(void) {
14 int i = -1;
15#pragma omp tile sizes(2)
16#pragma omp reverse
17 for (i = 0; i < 5; i++)
18 ;
19 printf("tile_reverse: i=%d\n", i);
20}
21
22static void test_tile_nested_reverse(int n) {
23 int i = 77, j = 111;
24#pragma omp tile sizes(2, 3)
25 for (i = 0; i < n; i++)
26#pragma omp reverse
27 for (j = 0; j < 5; j++)
28 ;
29 printf("tile_nested_reverse n=%d: i=%d j=%d\n", n, i, j);
30}
31
32int main(void) {
36 return EXIT_SUCCESS;
37}
38#endif
39
40// CHECK: tile_reverse: i=5
41// CHECK-NEXT: tile_nested_reverse n=4: i=4 j=5
42// CHECK-NEXT: tile_nested_reverse n=0: i=0 j=111
#define i
Definition kmp_stub.cpp:88
static void test_tile_reverse(void)
int main(void)
static void test_tile_nested_reverse(int n)