1*5c93a94fSMichael Kruse // RUN: %libomp-cxx-compile-and-run | FileCheck %s --match-full-lines 2*5c93a94fSMichael Kruse 3*5c93a94fSMichael Kruse #ifndef HEADER 4*5c93a94fSMichael Kruse #define HEADER 5*5c93a94fSMichael Kruse 6*5c93a94fSMichael Kruse #include <cstdlib> 7*5c93a94fSMichael Kruse #include <cstdio> 8*5c93a94fSMichael Kruse 9*5c93a94fSMichael Kruse int main() { 10*5c93a94fSMichael Kruse printf("do\n"); 11*5c93a94fSMichael Kruse #pragma omp parallel for collapse(4) num_threads(1) 12*5c93a94fSMichael Kruse for (int i = 0; i < 3; ++i) 13*5c93a94fSMichael Kruse #pragma omp interchange 14*5c93a94fSMichael Kruse for (int j = 0; j < 3; ++j) 15*5c93a94fSMichael Kruse for (int k = 0; k < 3; ++k) 16*5c93a94fSMichael Kruse for (int l = 0; l < 3; ++l) 17*5c93a94fSMichael Kruse printf("i=%d j=%d k=%d l=%d\n", i, j, k, l); 18*5c93a94fSMichael Kruse printf("done\n"); 19*5c93a94fSMichael Kruse return EXIT_SUCCESS; 20*5c93a94fSMichael Kruse } 21*5c93a94fSMichael Kruse 22*5c93a94fSMichael Kruse #endif /* HEADER */ 23*5c93a94fSMichael Kruse 24*5c93a94fSMichael Kruse // CHECK: do 25*5c93a94fSMichael Kruse // CHECK-NEXT: i=0 j=0 k=0 l=0 26*5c93a94fSMichael Kruse // CHECK-NEXT: i=0 j=0 k=0 l=1 27*5c93a94fSMichael Kruse // CHECK-NEXT: i=0 j=0 k=0 l=2 28*5c93a94fSMichael Kruse // CHECK-NEXT: i=0 j=1 k=0 l=0 29*5c93a94fSMichael Kruse // CHECK-NEXT: i=0 j=1 k=0 l=1 30*5c93a94fSMichael Kruse // CHECK-NEXT: i=0 j=1 k=0 l=2 31*5c93a94fSMichael Kruse // CHECK-NEXT: i=0 j=2 k=0 l=0 32*5c93a94fSMichael Kruse // CHECK-NEXT: i=0 j=2 k=0 l=1 33*5c93a94fSMichael Kruse // CHECK-NEXT: i=0 j=2 k=0 l=2 34*5c93a94fSMichael Kruse // CHECK-NEXT: i=0 j=0 k=1 l=0 35*5c93a94fSMichael Kruse // CHECK-NEXT: i=0 j=0 k=1 l=1 36*5c93a94fSMichael Kruse // CHECK-NEXT: i=0 j=0 k=1 l=2 37*5c93a94fSMichael Kruse // CHECK-NEXT: i=0 j=1 k=1 l=0 38*5c93a94fSMichael Kruse // CHECK-NEXT: i=0 j=1 k=1 l=1 39*5c93a94fSMichael Kruse // CHECK-NEXT: i=0 j=1 k=1 l=2 40*5c93a94fSMichael Kruse // CHECK-NEXT: i=0 j=2 k=1 l=0 41*5c93a94fSMichael Kruse // CHECK-NEXT: i=0 j=2 k=1 l=1 42*5c93a94fSMichael Kruse // CHECK-NEXT: i=0 j=2 k=1 l=2 43*5c93a94fSMichael Kruse // CHECK-NEXT: i=0 j=0 k=2 l=0 44*5c93a94fSMichael Kruse // CHECK-NEXT: i=0 j=0 k=2 l=1 45*5c93a94fSMichael Kruse // CHECK-NEXT: i=0 j=0 k=2 l=2 46*5c93a94fSMichael Kruse // CHECK-NEXT: i=0 j=1 k=2 l=0 47*5c93a94fSMichael Kruse // CHECK-NEXT: i=0 j=1 k=2 l=1 48*5c93a94fSMichael Kruse // CHECK-NEXT: i=0 j=1 k=2 l=2 49*5c93a94fSMichael Kruse // CHECK-NEXT: i=0 j=2 k=2 l=0 50*5c93a94fSMichael Kruse // CHECK-NEXT: i=0 j=2 k=2 l=1 51*5c93a94fSMichael Kruse // CHECK-NEXT: i=0 j=2 k=2 l=2 52*5c93a94fSMichael Kruse // CHECK-NEXT: i=1 j=0 k=0 l=0 53*5c93a94fSMichael Kruse // CHECK-NEXT: i=1 j=0 k=0 l=1 54*5c93a94fSMichael Kruse // CHECK-NEXT: i=1 j=0 k=0 l=2 55*5c93a94fSMichael Kruse // CHECK-NEXT: i=1 j=1 k=0 l=0 56*5c93a94fSMichael Kruse // CHECK-NEXT: i=1 j=1 k=0 l=1 57*5c93a94fSMichael Kruse // CHECK-NEXT: i=1 j=1 k=0 l=2 58*5c93a94fSMichael Kruse // CHECK-NEXT: i=1 j=2 k=0 l=0 59*5c93a94fSMichael Kruse // CHECK-NEXT: i=1 j=2 k=0 l=1 60*5c93a94fSMichael Kruse // CHECK-NEXT: i=1 j=2 k=0 l=2 61*5c93a94fSMichael Kruse // CHECK-NEXT: i=1 j=0 k=1 l=0 62*5c93a94fSMichael Kruse // CHECK-NEXT: i=1 j=0 k=1 l=1 63*5c93a94fSMichael Kruse // CHECK-NEXT: i=1 j=0 k=1 l=2 64*5c93a94fSMichael Kruse // CHECK-NEXT: i=1 j=1 k=1 l=0 65*5c93a94fSMichael Kruse // CHECK-NEXT: i=1 j=1 k=1 l=1 66*5c93a94fSMichael Kruse // CHECK-NEXT: i=1 j=1 k=1 l=2 67*5c93a94fSMichael Kruse // CHECK-NEXT: i=1 j=2 k=1 l=0 68*5c93a94fSMichael Kruse // CHECK-NEXT: i=1 j=2 k=1 l=1 69*5c93a94fSMichael Kruse // CHECK-NEXT: i=1 j=2 k=1 l=2 70*5c93a94fSMichael Kruse // CHECK-NEXT: i=1 j=0 k=2 l=0 71*5c93a94fSMichael Kruse // CHECK-NEXT: i=1 j=0 k=2 l=1 72*5c93a94fSMichael Kruse // CHECK-NEXT: i=1 j=0 k=2 l=2 73*5c93a94fSMichael Kruse // CHECK-NEXT: i=1 j=1 k=2 l=0 74*5c93a94fSMichael Kruse // CHECK-NEXT: i=1 j=1 k=2 l=1 75*5c93a94fSMichael Kruse // CHECK-NEXT: i=1 j=1 k=2 l=2 76*5c93a94fSMichael Kruse // CHECK-NEXT: i=1 j=2 k=2 l=0 77*5c93a94fSMichael Kruse // CHECK-NEXT: i=1 j=2 k=2 l=1 78*5c93a94fSMichael Kruse // CHECK-NEXT: i=1 j=2 k=2 l=2 79*5c93a94fSMichael Kruse // CHECK-NEXT: i=2 j=0 k=0 l=0 80*5c93a94fSMichael Kruse // CHECK-NEXT: i=2 j=0 k=0 l=1 81*5c93a94fSMichael Kruse // CHECK-NEXT: i=2 j=0 k=0 l=2 82*5c93a94fSMichael Kruse // CHECK-NEXT: i=2 j=1 k=0 l=0 83*5c93a94fSMichael Kruse // CHECK-NEXT: i=2 j=1 k=0 l=1 84*5c93a94fSMichael Kruse // CHECK-NEXT: i=2 j=1 k=0 l=2 85*5c93a94fSMichael Kruse // CHECK-NEXT: i=2 j=2 k=0 l=0 86*5c93a94fSMichael Kruse // CHECK-NEXT: i=2 j=2 k=0 l=1 87*5c93a94fSMichael Kruse // CHECK-NEXT: i=2 j=2 k=0 l=2 88*5c93a94fSMichael Kruse // CHECK-NEXT: i=2 j=0 k=1 l=0 89*5c93a94fSMichael Kruse // CHECK-NEXT: i=2 j=0 k=1 l=1 90*5c93a94fSMichael Kruse // CHECK-NEXT: i=2 j=0 k=1 l=2 91*5c93a94fSMichael Kruse // CHECK-NEXT: i=2 j=1 k=1 l=0 92*5c93a94fSMichael Kruse // CHECK-NEXT: i=2 j=1 k=1 l=1 93*5c93a94fSMichael Kruse // CHECK-NEXT: i=2 j=1 k=1 l=2 94*5c93a94fSMichael Kruse // CHECK-NEXT: i=2 j=2 k=1 l=0 95*5c93a94fSMichael Kruse // CHECK-NEXT: i=2 j=2 k=1 l=1 96*5c93a94fSMichael Kruse // CHECK-NEXT: i=2 j=2 k=1 l=2 97*5c93a94fSMichael Kruse // CHECK-NEXT: i=2 j=0 k=2 l=0 98*5c93a94fSMichael Kruse // CHECK-NEXT: i=2 j=0 k=2 l=1 99*5c93a94fSMichael Kruse // CHECK-NEXT: i=2 j=0 k=2 l=2 100*5c93a94fSMichael Kruse // CHECK-NEXT: i=2 j=1 k=2 l=0 101*5c93a94fSMichael Kruse // CHECK-NEXT: i=2 j=1 k=2 l=1 102*5c93a94fSMichael Kruse // CHECK-NEXT: i=2 j=1 k=2 l=2 103*5c93a94fSMichael Kruse // CHECK-NEXT: i=2 j=2 k=2 l=0 104*5c93a94fSMichael Kruse // CHECK-NEXT: i=2 j=2 k=2 l=1 105*5c93a94fSMichael Kruse // CHECK-NEXT: i=2 j=2 k=2 l=2 106*5c93a94fSMichael Kruse // CHECK-NEXT: done 107