Пример #1
0
static void
parse(FILE *fp)
{
	int ch, s1, s2, s3;

#define	TESTD(s) {							\
	if ((s = getc(fp)) == EOF)					\
		return;							\
	if (!isdigit(s))						\
		continue;						\
}
#define	TESTP {								\
	if ((ch = getc(fp)) == EOF)					\
		return;							\
	if (ch != '|')							\
		continue;						\
}
#define	MOVEC(t) {							\
	do {								\
		if ((ch = getc(fp)) == EOF)				\
			return;						\
	} while (ch != (t));						\
}
	for (;;) {
		MOVEC('"');
		TESTD(s1);
		TESTD(s2);
		TESTD(s3);
		TESTP;
		putchar('"');
		putchar(s1);
		putchar(s2);
		putchar(s3);
		putchar('|');
		for (;;) {		/* dump to end quote. */
			if ((ch = getc(fp)) == EOF)
				return;
			putchar(ch);
			if (ch == '"')
				break;
			if (ch == '\\') {
				if ((ch = getc(fp)) == EOF)
					return;
				putchar(ch);
			}
		}
		putchar('\n');
	}
}
Пример #2
0
int main(void) {
  check_offloading();

  double A[N+2], B[N+2], C[N+2], D[N+2], E[N+2];

  INIT();

  long cpuExec = 0;
  #pragma omp target map(tofrom: cpuExec)
  {
    cpuExec = omp_is_initial_device();
  }
  int gpu_threads = 768;
  int cpu_threads = 32;
  int max_threads = cpuExec ? cpu_threads : gpu_threads;

  //
  // Test: Barrier in a serialized parallel region.
  //
  TESTD("omp target teams num_teams(1) thread_limit(33)", {
    PARALLEL_A()
  }, VERIFY(0, 1, B[i], i+1));

  //
  // Test: Barrier in a parallel region.
  //
  for (int t = 1; t <= max_threads; t++) {
    int threads[1]; threads[0] = t;
    TESTD("omp target teams num_teams(1) thread_limit(max_threads)", {
    ZERO(B);
    PARALLEL_B5()
    }, VERIFY(0, threads[0]-1, B[i], 5));
Пример #3
0
	void test()
	{
		TESTD("hg/x","m:hg/x:x");
		TESTD("h0","-");
		TESTD("h1/a1",":1");
		TESTD("h2/a1/a2",":1:2");
		TESTD("h3/a1/a2/a3",":1:2:3");
		TESTD("h4/a1/a2/a3/a4",":1:2:3:4");
		TESTD("h5/a1/a2/a3/a4/a5",":1:2:3:4:5");
		TESTD("h6/a1/a2/a3/a4/a5/a6",":1:2:3:4:5:6");
	}