view gcc/testsuite/c-c++-common/gomp/flush-1.c @ 145:1830386684a0

gcc-9.2.0
author anatofuz
date Thu, 13 Feb 2020 11:34:05 +0900
parents
children
line wrap: on
line source

/* { dg-additional-options "-fdump-tree-gimple" } */
/* { dg-final { scan-tree-dump "foo \\(4\\);\[\n\r]*  __atomic_thread_fence \\(4\\);\[\n\r]*  foo \\(4\\);" "gimple" } } */
/* { dg-final { scan-tree-dump "foo \\(3\\);\[\n\r]*  __atomic_thread_fence \\(3\\);\[\n\r]*  foo \\(3\\);" "gimple" } } */
/* { dg-final { scan-tree-dump "foo \\(2\\);\[\n\r]*  __atomic_thread_fence \\(2\\);\[\n\r]*  foo \\(2\\);" "gimple" } } */
/* { dg-final { scan-tree-dump "foo \\(5\\);\[\n\r]*  __sync_synchronize \\(\\);\[\n\r]*  foo \\(5\\);" "gimple" } } */

void foo (int);

void
f1 (void)
{
  foo (4);
  #pragma omp flush acq_rel
  foo (4);
}

void
f2 (void)
{
  foo (3);
  #pragma omp flush release
  foo (3);
}

void
f3 (void)
{
  foo (2);
  #pragma omp flush acquire
  foo (2);
}

void
f4 (void)
{
  foo (5);
  #pragma omp flush
  foo (5);
}