Add the interchange directive which will be introduced in the upcoming OpenMP 6.0 specification. A preview has been published in [Technical Report 12](https://www.openmp.org/wp-content/uploads/openmp-TR12.pdf).
39 lines
795 B
C
39 lines
795 B
C
// RUN: %libomp-compile-and-run | FileCheck %s --match-full-lines
|
|
|
|
#ifndef HEADER
|
|
#define HEADER
|
|
|
|
#include <stdlib.h>
|
|
#include <stdio.h>
|
|
|
|
int main() {
|
|
printf("do\n");
|
|
#pragma omp interchange
|
|
for (int i = 7; i < 17; i += 3)
|
|
for (int j = 8; j < 18; j += 3)
|
|
printf("i=%d j=%d\n", i, j);
|
|
printf("done\n");
|
|
return EXIT_SUCCESS;
|
|
}
|
|
|
|
#endif /* HEADER */
|
|
|
|
// CHECK: do
|
|
// CHECK-NEXT: i=7 j=8
|
|
// CHECK-NEXT: i=10 j=8
|
|
// CHECK-NEXT: i=13 j=8
|
|
// CHECK-NEXT: i=16 j=8
|
|
// CHECK-NEXT: i=7 j=11
|
|
// CHECK-NEXT: i=10 j=11
|
|
// CHECK-NEXT: i=13 j=11
|
|
// CHECK-NEXT: i=16 j=11
|
|
// CHECK-NEXT: i=7 j=14
|
|
// CHECK-NEXT: i=10 j=14
|
|
// CHECK-NEXT: i=13 j=14
|
|
// CHECK-NEXT: i=16 j=14
|
|
// CHECK-NEXT: i=7 j=17
|
|
// CHECK-NEXT: i=10 j=17
|
|
// CHECK-NEXT: i=13 j=17
|
|
// CHECK-NEXT: i=16 j=17
|
|
// CHECK-NEXT: done
|