Add a testcase for PR target/66821
[official-gcc.git] / libgomp / testsuite / libgomp.oacc-c-c++-common / lib-83.c
blob1c2e52b4c5fa81fd8e9fee0663cd8e954f292bb6
1 /* { dg-do run { target openacc_nvidia_accel_selected } } */
2 /* { dg-additional-options "-lcuda" } */
4 #include <stdio.h>
5 #include <stdlib.h>
6 #include <unistd.h>
7 #include <openacc.h>
8 #include "timer.h"
10 int
11 main (int argc, char **argv)
13 float atime;
14 CUstream stream;
15 CUresult r;
17 acc_init (acc_device_nvidia);
19 (void) acc_get_device_num (acc_device_nvidia);
21 init_timers (1);
23 stream = (CUstream) acc_get_cuda_stream (0);
24 if (stream != NULL)
25 abort ();
27 r = cuStreamCreate (&stream, CU_STREAM_DEFAULT);
28 if (r != CUDA_SUCCESS)
30 fprintf (stderr, "cuStreamCreate failed: %d\n", r);
31 abort ();
34 if (!acc_set_cuda_stream (0, stream))
35 abort ();
37 start_timer (0);
39 acc_wait_all_async (0);
41 acc_wait (0);
43 atime = stop_timer (0);
45 if (0.010 < atime)
47 fprintf (stderr, "actual time too long\n");
48 abort ();
51 fini_timers ();
53 acc_shutdown (acc_device_nvidia);
55 exit (0);
58 /* { dg-output "" } */