brintos

brintos / llvm-project-archived public Read only

0
0
Text · 5.0 KiB · 4a930ea Raw
191 lines · c
1// RUN: %libomp-compile-and-run | FileCheck %s --match-full-lines2 3#ifndef HEADER4#define HEADER5 6#include <stdlib.h>7#include <stdio.h>8 9// TODO: The OpenMP specification explicitly does not define when and how often10// expressions in the clause are evaluated. Currently Clang evaluates it again11// whenever needed, but function calls in clauses are not common. A better12// implementation would evaluate it just once and reuse the result.13static int tilesize(int i) {14  printf("tilesize(%d)\n", i);15  return 3;16}17 18int main() {19  printf("do\n");20#pragma omp tile sizes(tilesize(1), tilesize(2))21  for (int i = 7; i < 19; i += 3)22    for (int j = 7; j < 20; j += 3)23      printf("i=%d j=%d\n", i, j);24  printf("done\n");25  return EXIT_SUCCESS;26}27 28#endif /* HEADER */29 30// CHECK:      do31// CHECK-NEXT: tilesize(1)32// CHECK-NEXT: tilesize(1)33// CHECK-NEXT: tilesize(1)34// CHECK-NEXT: tilesize(1)35// CHECK-NEXT: tilesize(2)36// CHECK-NEXT: tilesize(2)37// CHECK-NEXT: tilesize(2)38// CHECK-NEXT: tilesize(2)39// CHECK-NEXT: i=7 j=740// CHECK-NEXT: tilesize(2)41// CHECK-NEXT: tilesize(2)42// CHECK-NEXT: tilesize(2)43// CHECK-NEXT: tilesize(2)44// CHECK-NEXT: i=7 j=1045// CHECK-NEXT: tilesize(2)46// CHECK-NEXT: tilesize(2)47// CHECK-NEXT: tilesize(2)48// CHECK-NEXT: tilesize(2)49// CHECK-NEXT: i=7 j=1350// CHECK-NEXT: tilesize(2)51// CHECK-NEXT: tilesize(2)52// CHECK-NEXT: tilesize(2)53// CHECK-NEXT: tilesize(2)54// CHECK-NEXT: tilesize(1)55// CHECK-NEXT: tilesize(1)56// CHECK-NEXT: tilesize(1)57// CHECK-NEXT: tilesize(1)58// CHECK-NEXT: tilesize(2)59// CHECK-NEXT: tilesize(2)60// CHECK-NEXT: tilesize(2)61// CHECK-NEXT: tilesize(2)62// CHECK-NEXT: i=10 j=763// CHECK-NEXT: tilesize(2)64// CHECK-NEXT: tilesize(2)65// CHECK-NEXT: tilesize(2)66// CHECK-NEXT: tilesize(2)67// CHECK-NEXT: i=10 j=1068// CHECK-NEXT: tilesize(2)69// CHECK-NEXT: tilesize(2)70// CHECK-NEXT: tilesize(2)71// CHECK-NEXT: tilesize(2)72// CHECK-NEXT: i=10 j=1373// CHECK-NEXT: tilesize(2)74// CHECK-NEXT: tilesize(2)75// CHECK-NEXT: tilesize(2)76// CHECK-NEXT: tilesize(2)77// CHECK-NEXT: tilesize(1)78// CHECK-NEXT: tilesize(1)79// CHECK-NEXT: tilesize(1)80// CHECK-NEXT: tilesize(1)81// CHECK-NEXT: tilesize(2)82// CHECK-NEXT: tilesize(2)83// CHECK-NEXT: tilesize(2)84// CHECK-NEXT: tilesize(2)85// CHECK-NEXT: i=13 j=786// CHECK-NEXT: tilesize(2)87// CHECK-NEXT: tilesize(2)88// CHECK-NEXT: tilesize(2)89// CHECK-NEXT: tilesize(2)90// CHECK-NEXT: i=13 j=1091// CHECK-NEXT: tilesize(2)92// CHECK-NEXT: tilesize(2)93// CHECK-NEXT: tilesize(2)94// CHECK-NEXT: tilesize(2)95// CHECK-NEXT: i=13 j=1396// CHECK-NEXT: tilesize(2)97// CHECK-NEXT: tilesize(2)98// CHECK-NEXT: tilesize(2)99// CHECK-NEXT: tilesize(2)100// CHECK-NEXT: tilesize(1)101// CHECK-NEXT: tilesize(1)102// CHECK-NEXT: tilesize(1)103// CHECK-NEXT: tilesize(1)104// CHECK-NEXT: tilesize(2)105// CHECK-NEXT: tilesize(2)106// CHECK-NEXT: tilesize(1)107// CHECK-NEXT: tilesize(1)108// CHECK-NEXT: tilesize(1)109// CHECK-NEXT: tilesize(1)110// CHECK-NEXT: tilesize(2)111// CHECK-NEXT: tilesize(2)112// CHECK-NEXT: i=7 j=16113// CHECK-NEXT: tilesize(2)114// CHECK-NEXT: tilesize(2)115// CHECK-NEXT: i=7 j=19116// CHECK-NEXT: tilesize(2)117// CHECK-NEXT: tilesize(2)118// CHECK-NEXT: tilesize(1)119// CHECK-NEXT: tilesize(1)120// CHECK-NEXT: tilesize(1)121// CHECK-NEXT: tilesize(1)122// CHECK-NEXT: tilesize(2)123// CHECK-NEXT: tilesize(2)124// CHECK-NEXT: i=10 j=16125// CHECK-NEXT: tilesize(2)126// CHECK-NEXT: tilesize(2)127// CHECK-NEXT: i=10 j=19128// CHECK-NEXT: tilesize(2)129// CHECK-NEXT: tilesize(2)130// CHECK-NEXT: tilesize(1)131// CHECK-NEXT: tilesize(1)132// CHECK-NEXT: tilesize(1)133// CHECK-NEXT: tilesize(1)134// CHECK-NEXT: tilesize(2)135// CHECK-NEXT: tilesize(2)136// CHECK-NEXT: i=13 j=16137// CHECK-NEXT: tilesize(2)138// CHECK-NEXT: tilesize(2)139// CHECK-NEXT: i=13 j=19140// CHECK-NEXT: tilesize(2)141// CHECK-NEXT: tilesize(2)142// CHECK-NEXT: tilesize(1)143// CHECK-NEXT: tilesize(1)144// CHECK-NEXT: tilesize(1)145// CHECK-NEXT: tilesize(1)146// CHECK-NEXT: tilesize(2)147// CHECK-NEXT: tilesize(2)148// CHECK-NEXT: tilesize(1)149// CHECK-NEXT: tilesize(1)150// CHECK-NEXT: tilesize(1)151// CHECK-NEXT: tilesize(1)152// CHECK-NEXT: tilesize(2)153// CHECK-NEXT: tilesize(2)154// CHECK-NEXT: tilesize(2)155// CHECK-NEXT: tilesize(2)156// CHECK-NEXT: i=16 j=7157// CHECK-NEXT: tilesize(2)158// CHECK-NEXT: tilesize(2)159// CHECK-NEXT: tilesize(2)160// CHECK-NEXT: tilesize(2)161// CHECK-NEXT: i=16 j=10162// CHECK-NEXT: tilesize(2)163// CHECK-NEXT: tilesize(2)164// CHECK-NEXT: tilesize(2)165// CHECK-NEXT: tilesize(2)166// CHECK-NEXT: i=16 j=13167// CHECK-NEXT: tilesize(2)168// CHECK-NEXT: tilesize(2)169// CHECK-NEXT: tilesize(2)170// CHECK-NEXT: tilesize(2)171// CHECK-NEXT: tilesize(1)172// CHECK-NEXT: tilesize(1)173// CHECK-NEXT: tilesize(2)174// CHECK-NEXT: tilesize(2)175// CHECK-NEXT: tilesize(1)176// CHECK-NEXT: tilesize(1)177// CHECK-NEXT: tilesize(2)178// CHECK-NEXT: tilesize(2)179// CHECK-NEXT: i=16 j=16180// CHECK-NEXT: tilesize(2)181// CHECK-NEXT: tilesize(2)182// CHECK-NEXT: i=16 j=19183// CHECK-NEXT: tilesize(2)184// CHECK-NEXT: tilesize(2)185// CHECK-NEXT: tilesize(1)186// CHECK-NEXT: tilesize(1)187// CHECK-NEXT: tilesize(2)188// CHECK-NEXT: tilesize(2)189// CHECK-NEXT: tilesize(1)190// CHECK-NEXT: tilesize(1)191// CHECK-NEXT: done