mirror of git://gcc.gnu.org/git/gcc.git
87 lines
2.1 KiB
C
87 lines
2.1 KiB
C
int v;
|
|
extern void foo (int);
|
|
|
|
void
|
|
bar (void)
|
|
{
|
|
int i;
|
|
#pragma omp for reduction (task, +: v)
|
|
for (i = 0; i < 64; i++)
|
|
foo (i);
|
|
#pragma omp sections reduction (task, +: v)
|
|
{
|
|
foo (-2);
|
|
#pragma omp section
|
|
foo (-3);
|
|
}
|
|
#pragma omp parallel reduction (task, +: v)
|
|
foo (-1);
|
|
#pragma omp parallel for reduction (task, +: v)
|
|
for (i = 0; i < 64; i++)
|
|
foo (i);
|
|
#pragma omp parallel sections reduction (task, +: v)
|
|
{
|
|
foo (-2);
|
|
#pragma omp section
|
|
foo (-3);
|
|
}
|
|
#pragma omp teams distribute parallel for reduction (task, +: v)
|
|
for (i = 0; i < 64; i++)
|
|
foo (i);
|
|
#pragma omp for reduction (default, +: v)
|
|
for (i = 0; i < 64; i++)
|
|
foo (i);
|
|
#pragma omp sections reduction (default, +: v)
|
|
{
|
|
foo (-2);
|
|
#pragma omp section
|
|
foo (-3);
|
|
}
|
|
#pragma omp parallel reduction (default, +: v)
|
|
foo (-1);
|
|
#pragma omp parallel for reduction (default, +: v)
|
|
for (i = 0; i < 64; i++)
|
|
foo (i);
|
|
#pragma omp parallel sections reduction (default, +: v)
|
|
{
|
|
foo (-2);
|
|
#pragma omp section
|
|
foo (-3);
|
|
}
|
|
#pragma omp teams distribute parallel for reduction (default, +: v)
|
|
for (i = 0; i < 64; i++)
|
|
foo (i);
|
|
#pragma omp for reduction (default, +: v) nowait
|
|
for (i = 0; i < 64; i++)
|
|
foo (i);
|
|
#pragma omp sections nowait reduction (default, +: v)
|
|
{
|
|
foo (-2);
|
|
#pragma omp section
|
|
foo (-3);
|
|
}
|
|
#pragma omp simd reduction (default, +: v)
|
|
for (i = 0; i < 64; i++)
|
|
v++;
|
|
#pragma omp for simd reduction (default, +: v)
|
|
for (i = 0; i < 64; i++)
|
|
v++;
|
|
#pragma omp parallel for simd reduction (default, +: v)
|
|
for (i = 0; i < 64; i++)
|
|
v++;
|
|
#pragma omp teams distribute parallel for simd reduction (default, +: v)
|
|
for (i = 0; i < 64; i++)
|
|
v++;
|
|
#pragma omp taskloop reduction (default, +: v)
|
|
for (i = 0; i < 64; i++)
|
|
foo (i);
|
|
#pragma omp taskloop simd reduction (default, +: v)
|
|
for (i = 0; i < 64; i++)
|
|
v++;
|
|
#pragma omp teams reduction (default, +: v)
|
|
foo (i);
|
|
#pragma omp teams distribute reduction (default, +: v)
|
|
for (i = 0; i < 64; i++)
|
|
foo (i);
|
|
}
|