/* { dg-do compile } */
/* { dg-additional-options "-fdump-tree-gimple" } */

int f0 (void);
int f1 (void);
#pragma omp declare variant (f0) match (construct={dispatch})
#pragma omp declare variant (f1) match (implementation={vendor(gnu)})
int f2 (void);

int test (void)
{
  int a, n;
#pragma omp dispatch novariants(n < 1024) nocontext(n > 1024)
  a = f2 ();
  return a;
}

/* { dg-final { scan-tree-dump-times "#pragma omp dispatch nocontext\\(0\\) novariants\\(0\\)" 1 "gimple" } } */
/* { dg-final { scan-tree-dump-times "a = f2 \\\(\\\);" 1 "gimple" } } */
/* { dg-final { scan-tree-dump-times "a = f1 \\\(\\\);" 1 "gimple" } } */
/* { dg-final { scan-tree-dump-times "a = f0 \\\(\\\);" 1 "gimple" } } */