Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/c-c++-common/gomp/declare-variant-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
int foo (int, int, int *); int bar (int, int, int *); #pragma omp declare variant (foo) \ match (construct={parallel,for},\ device={isa(avx512f,avx512vl),kind(host,cpu)},\ implementation={vendor(score(0):gnu),unified_shared_memory},\ user={condition(score(0):0)}) #pragma omp declare variant (bar) \ match (device={arch(x86_64,powerpc64),isa(avx512f,popcntb)}, \ implementation={atomic_default_mem_order(seq_cst),made_up_selector("foo", 13, "bar")}, \ user={condition(3-3)}) int baz (int, int, int *); int qux (void) { int i = 3; return baz (1, 2, &i); } int quux (int); void corge (void) { int i; #pragma omp declare variant (quux) match (construct={parallel,for}) extern int waldo (int); waldo (5); #pragma omp parallel for for (i = 0; i < 3; i++) waldo (6); #pragma omp parallel #pragma omp taskgroup #pragma omp for for (i = 0; i < 3; i++) waldo (7); #pragma omp parallel #pragma omp master waldo (8); } #pragma omp declare variant (bar) match \ (implementation={atomic_default_mem_order(relaxed), \ unified_address, unified_shared_memory, \ dynamic_allocators, reverse_offload}) int baz2 (int x, int y, int *z) { return x + y + *z; } #pragma omp declare variant (bar) match \ (implementation={atomic_default_mem_order(score(3): acq_rel)}) int baz3 (int, int, int *);