xref: /llvm-project/offload/test/offloading/wtime.c (revision 330d8983d25d08580fc1642fea48b2473f47a9da)
1*330d8983SJohannes Doerfert // RUN: %libomptarget-compileopt-and-run-generic
2*330d8983SJohannes Doerfert 
3*330d8983SJohannes Doerfert // UNSUPPORTED: amdgcn-amd-amdhsa
4*330d8983SJohannes Doerfert 
5*330d8983SJohannes Doerfert #include <assert.h>
6*330d8983SJohannes Doerfert #include <omp.h>
7*330d8983SJohannes Doerfert #include <stdio.h>
8*330d8983SJohannes Doerfert #include <stdlib.h>
9*330d8983SJohannes Doerfert 
10*330d8983SJohannes Doerfert #define N (1024 * 1024 * 256)
11*330d8983SJohannes Doerfert 
main(int argc,char * argv[])12*330d8983SJohannes Doerfert int main(int argc, char *argv[]) {
13*330d8983SJohannes Doerfert   int *data = (int *)malloc(N * sizeof(int));
14*330d8983SJohannes Doerfert   double duration = 0.0;
15*330d8983SJohannes Doerfert 
16*330d8983SJohannes Doerfert #pragma omp target map(from : data[0 : N]) map(from : duration)
17*330d8983SJohannes Doerfert   {
18*330d8983SJohannes Doerfert     double start = omp_get_wtime();
19*330d8983SJohannes Doerfert     for (int i = 0; i < N; ++i)
20*330d8983SJohannes Doerfert       data[i] = i;
21*330d8983SJohannes Doerfert     double end = omp_get_wtime();
22*330d8983SJohannes Doerfert     duration = end - start;
23*330d8983SJohannes Doerfert   }
24*330d8983SJohannes Doerfert   assert(duration > 0.0);
25*330d8983SJohannes Doerfert   free(data);
26*330d8983SJohannes Doerfert   return 0;
27*330d8983SJohannes Doerfert }
28