1*b0b6c16bSMichael Kruse // RUN: %libomp-compile-and-run | FileCheck %s --match-full-lines 2*b0b6c16bSMichael Kruse 3*b0b6c16bSMichael Kruse #ifndef HEADER 4*b0b6c16bSMichael Kruse #define HEADER 5*b0b6c16bSMichael Kruse 6*b0b6c16bSMichael Kruse #include <stdlib.h> 7*b0b6c16bSMichael Kruse #include <stdio.h> 8*b0b6c16bSMichael Kruse 9*b0b6c16bSMichael Kruse // TODO: The OpenMP specification explicitly does not define when and how often 10*b0b6c16bSMichael Kruse // expressions in the clause are evaluated. Currently Clang evaluates it again 11*b0b6c16bSMichael Kruse // whenever needed, but function calls in clauses are not common. A better 12*b0b6c16bSMichael Kruse // implementation would evaluate it just once and reuse the result. tilesize(int i)13*b0b6c16bSMichael Krusestatic int tilesize(int i) { 14*b0b6c16bSMichael Kruse printf("tilesize(%d)\n", i); 15*b0b6c16bSMichael Kruse return 3; 16*b0b6c16bSMichael Kruse } 17*b0b6c16bSMichael Kruse main()18*b0b6c16bSMichael Kruseint main() { 19*b0b6c16bSMichael Kruse printf("do\n"); 20*b0b6c16bSMichael Kruse #pragma omp tile sizes(tilesize(1), tilesize(2)) 21*b0b6c16bSMichael Kruse for (int i = 7; i < 19; i += 3) 22*b0b6c16bSMichael Kruse for (int j = 7; j < 20; j += 3) 23*b0b6c16bSMichael Kruse printf("i=%d j=%d\n", i, j); 24*b0b6c16bSMichael Kruse printf("done\n"); 25*b0b6c16bSMichael Kruse return EXIT_SUCCESS; 26*b0b6c16bSMichael Kruse } 27*b0b6c16bSMichael Kruse 28*b0b6c16bSMichael Kruse #endif /* HEADER */ 29*b0b6c16bSMichael Kruse 30*b0b6c16bSMichael Kruse // CHECK: do 31*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(1) 32*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(1) 33*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(1) 34*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(1) 35*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(2) 36*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(2) 37*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(2) 38*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(2) 39*b0b6c16bSMichael Kruse // CHECK-NEXT: i=7 j=7 40*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(2) 41*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(2) 42*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(2) 43*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(2) 44*b0b6c16bSMichael Kruse // CHECK-NEXT: i=7 j=10 45*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(2) 46*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(2) 47*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(2) 48*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(2) 49*b0b6c16bSMichael Kruse // CHECK-NEXT: i=7 j=13 50*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(2) 51*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(2) 52*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(2) 53*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(2) 54*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(1) 55*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(1) 56*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(1) 57*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(1) 58*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(2) 59*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(2) 60*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(2) 61*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(2) 62*b0b6c16bSMichael Kruse // CHECK-NEXT: i=10 j=7 63*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(2) 64*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(2) 65*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(2) 66*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(2) 67*b0b6c16bSMichael Kruse // CHECK-NEXT: i=10 j=10 68*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(2) 69*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(2) 70*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(2) 71*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(2) 72*b0b6c16bSMichael Kruse // CHECK-NEXT: i=10 j=13 73*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(2) 74*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(2) 75*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(2) 76*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(2) 77*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(1) 78*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(1) 79*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(1) 80*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(1) 81*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(2) 82*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(2) 83*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(2) 84*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(2) 85*b0b6c16bSMichael Kruse // CHECK-NEXT: i=13 j=7 86*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(2) 87*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(2) 88*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(2) 89*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(2) 90*b0b6c16bSMichael Kruse // CHECK-NEXT: i=13 j=10 91*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(2) 92*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(2) 93*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(2) 94*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(2) 95*b0b6c16bSMichael Kruse // CHECK-NEXT: i=13 j=13 96*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(2) 97*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(2) 98*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(2) 99*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(2) 100*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(1) 101*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(1) 102*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(1) 103*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(1) 104*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(2) 105*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(2) 106*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(1) 107*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(1) 108*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(1) 109*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(1) 110*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(2) 111*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(2) 112*b0b6c16bSMichael Kruse // CHECK-NEXT: i=7 j=16 113*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(2) 114*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(2) 115*b0b6c16bSMichael Kruse // CHECK-NEXT: i=7 j=19 116*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(2) 117*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(2) 118*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(1) 119*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(1) 120*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(1) 121*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(1) 122*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(2) 123*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(2) 124*b0b6c16bSMichael Kruse // CHECK-NEXT: i=10 j=16 125*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(2) 126*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(2) 127*b0b6c16bSMichael Kruse // CHECK-NEXT: i=10 j=19 128*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(2) 129*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(2) 130*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(1) 131*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(1) 132*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(1) 133*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(1) 134*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(2) 135*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(2) 136*b0b6c16bSMichael Kruse // CHECK-NEXT: i=13 j=16 137*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(2) 138*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(2) 139*b0b6c16bSMichael Kruse // CHECK-NEXT: i=13 j=19 140*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(2) 141*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(2) 142*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(1) 143*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(1) 144*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(1) 145*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(1) 146*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(2) 147*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(2) 148*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(1) 149*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(1) 150*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(1) 151*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(1) 152*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(2) 153*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(2) 154*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(2) 155*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(2) 156*b0b6c16bSMichael Kruse // CHECK-NEXT: i=16 j=7 157*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(2) 158*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(2) 159*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(2) 160*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(2) 161*b0b6c16bSMichael Kruse // CHECK-NEXT: i=16 j=10 162*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(2) 163*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(2) 164*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(2) 165*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(2) 166*b0b6c16bSMichael Kruse // CHECK-NEXT: i=16 j=13 167*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(2) 168*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(2) 169*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(2) 170*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(2) 171*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(1) 172*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(1) 173*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(2) 174*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(2) 175*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(1) 176*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(1) 177*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(2) 178*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(2) 179*b0b6c16bSMichael Kruse // CHECK-NEXT: i=16 j=16 180*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(2) 181*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(2) 182*b0b6c16bSMichael Kruse // CHECK-NEXT: i=16 j=19 183*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(2) 184*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(2) 185*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(1) 186*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(1) 187*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(2) 188*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(2) 189*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(1) 190*b0b6c16bSMichael Kruse // CHECK-NEXT: tilesize(1) 191*b0b6c16bSMichael Kruse // CHECK-NEXT: done