/* { dg-do run } */

#include <omp.h>
#include <assert.h>

/* Test tasks with detach clause on an offload device.  Each device
   thread spawns off a chain of tasks, that can then be executed by
   any available thread.  Each thread uses taskwait to wait for the
   child tasks to complete.  */

int main (void)
{
  int x = 0, y = 0, z = 0;
  int thread_count;
  omp_event_handle_t detach_event1, detach_event2;

  #pragma omp target map (tofrom: x, y, z) map (from: thread_count)
    #pragma omp parallel private (detach_event1, detach_event2)
      {
	#pragma omp single
	  thread_count = omp_get_num_threads ();

	#pragma omp task detach (detach_event1) untied
	  #pragma omp atomic update
	    x++;

	#pragma omp task detach (detach_event2) untied
	{
	  #pragma omp atomic update
	    y++;
	  omp_fulfill_event (detach_event1);
	}

	#pragma omp task untied
	{
	  #pragma omp atomic update
	    z++;
	  omp_fulfill_event (detach_event2);
	}

	#pragma omp taskwait
      }

  assert (x == thread_count);
  assert (y == thread_count);
  assert (z == thread_count);
}
