OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-old/] [gcc-4.2.2/] [gcc/] [testsuite/] [gcc.dg/] [gomp/] [pr32468-1.c] - Blame information for rev 816

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 149 jeremybenn
/* PR libgomp/32468 */
2
/* { dg-do compile } */
3
/* { dg-options "-O2 -fopenmp -fdump-tree-ompexp" } */
4
 
5
extern int printf (const char *, ...);
6
extern int omp_get_thread_num (void), omp_get_num_threads (void);
7
extern int bar (void);
8
extern int baz (const char *, ...);
9
 
10
void
11
f1 (void)
12
{
13
#pragma omp parallel
14
  {
15
    baz ("%d/%d\n", omp_get_thread_num (), omp_get_num_threads ());
16
    #pragma omp sections
17
      {
18
        #pragma omp section
19
        printf ("section1 %d/%d\n", omp_get_thread_num (), omp_get_num_threads ());
20
        #pragma omp section
21
        printf ("section2 %d/%d\n", omp_get_thread_num (), omp_get_num_threads ());
22
      }
23
  }
24
}
25
 
26
void
27
f2 (void)
28
{
29
#pragma omp parallel
30
  {
31
    #pragma omp sections
32
      {
33
        #pragma omp section
34
        printf ("section1 %d/%d\n", omp_get_thread_num (), omp_get_num_threads ());
35
        #pragma omp section
36
        printf ("section2 %d/%d\n", omp_get_thread_num (), omp_get_num_threads ());
37
      }
38
    baz ("%d/%d\n", omp_get_thread_num (), omp_get_num_threads ());
39
  }
40
}
41
 
42
void
43
f3 (void)
44
{
45
#pragma omp parallel
46
  {
47
    int bb = bar ();
48
    #pragma omp sections
49
      {
50
        #pragma omp section
51
        printf ("section1 %d/%d\n", omp_get_thread_num (), omp_get_num_threads ());
52
        #pragma omp section
53
        printf ("section2 %d/%d\n", omp_get_thread_num (), omp_get_num_threads ());
54
      }
55
  }
56
}
57
 
58
void
59
f4 (void)
60
{
61
  int i;
62
#pragma omp parallel
63
  {
64
    baz ("%d/%d\n", omp_get_thread_num (), omp_get_num_threads ());
65
    #pragma omp for schedule (dynamic, 15)
66
    for (i = 0; i < 10000; i++)
67
      printf ("section1 %d/%d\n", omp_get_thread_num (), omp_get_num_threads ());
68
  }
69
}
70
 
71
void
72
f5 (void)
73
{
74
  int i;
75
#pragma omp parallel
76
  {
77
    #pragma omp for schedule (dynamic, 15)
78
    for (i = 0; i < 10000; i++)
79
      printf ("section1 %d/%d\n", omp_get_thread_num (), omp_get_num_threads ());
80
    baz ("%d/%d\n", omp_get_thread_num (), omp_get_num_threads ());
81
  }
82
}
83
 
84
void
85
f6 (void)
86
{
87
  int i;
88
#pragma omp parallel
89
  {
90
    int bb = bar ();
91
    #pragma omp for schedule (runtime)
92
    for (i = 0; i < 10000; i++)
93
      printf ("section1 %d/%d\n", omp_get_thread_num (), omp_get_num_threads ());
94
  }
95
}
96
 
97
/* There should not be a GOMP_parallel_{loop,sections}* call.  */
98
/* { dg-final { scan-tree-dump-times "GOMP_parallel_loop" 0 "ompexp"} } */
99
/* { dg-final { scan-tree-dump-times "GOMP_parallel_sections" 0 "ompexp"} } */
100
/* { dg-final { cleanup-tree-dump "ompexp" } } */

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.