blob: 21d31c43286db11d68945ee3c6ac2a16a55aff3f [file] [log] [blame]
/* Test the output of "-fopt-info-optimized-omp" for OpenACC 'kernels'
constructs containing conditionally executed 'loop' constructs with
'independent' or 'seq' clauses. */
/* { dg-additional-options "-fopt-info-optimized-omp" } */
//TODO update accordingly
/* See also "../../gfortran.dg/goacc/note-parallelism.f90". */
extern int c;
int
main ()
{
int x, y, z;
#pragma acc kernels /* { dg-message "optimized: assigned OpenACC seq loop parallelism" } */
/* Strangely indented to keep this similar to other test cases. */
if (c) /* { dg-message "optimized: beginning .parloops. region in OpenACC .kernels. construct" } */
{
#pragma acc loop seq
/* { dg-message "optimized: unparallelized loop nest in OpenACC .kernels. region: it's executed conditionally" "" { target *-*-* } .-1 } */
for (x = 0; x < 10; x++)
;
}
#pragma acc kernels /* { dg-message "optimized: assigned OpenACC seq loop parallelism" } */
/* Strangely indented to keep this similar to other test cases. */
if (c) /* { dg-message "optimized: beginning .parloops. region in OpenACC .kernels. construct" } */
{
#pragma acc loop independent gang
/* { dg-message "optimized: unparallelized loop nest in OpenACC .kernels. region: it's executed conditionally" "" { target *-*-* } .-1 } */
for (x = 0; x < 10; x++)
;
}
#pragma acc kernels /* { dg-message "optimized: assigned OpenACC seq loop parallelism" } */
/* Strangely indented to keep this similar to other test cases. */
if (c) /* { dg-message "optimized: beginning .parloops. region in OpenACC .kernels. construct" } */
{
#pragma acc loop independent worker
/* { dg-message "optimized: unparallelized loop nest in OpenACC .kernels. region: it's executed conditionally" "" { target *-*-* } .-1 } */
for (x = 0; x < 10; x++)
;
}
#pragma acc kernels /* { dg-message "optimized: assigned OpenACC seq loop parallelism" } */
/* Strangely indented to keep this similar to other test cases. */
if (c) /* { dg-message "optimized: beginning .parloops. region in OpenACC .kernels. construct" } */
{
#pragma acc loop independent vector
/* { dg-message "optimized: unparallelized loop nest in OpenACC .kernels. region: it's executed conditionally" "" { target *-*-* } .-1 } */
for (x = 0; x < 10; x++)
;
}
#pragma acc kernels /* { dg-message "optimized: assigned OpenACC seq loop parallelism" } */
/* Strangely indented to keep this similar to other test cases. */
if (c) /* { dg-message "optimized: beginning .parloops. region in OpenACC .kernels. construct" } */
{
#pragma acc loop independent gang vector
/* { dg-message "optimized: unparallelized loop nest in OpenACC .kernels. region: it's executed conditionally" "" { target *-*-* } .-1 } */
for (x = 0; x < 10; x++)
;
}
#pragma acc kernels /* { dg-message "optimized: assigned OpenACC seq loop parallelism" } */
/* Strangely indented to keep this similar to other test cases. */
if (c) /* { dg-message "optimized: beginning .parloops. region in OpenACC .kernels. construct" } */
{
#pragma acc loop independent gang worker
/* { dg-message "optimized: unparallelized loop nest in OpenACC .kernels. region: it's executed conditionally" "" { target *-*-* } .-1 } */
for (x = 0; x < 10; x++)
;
}
#pragma acc kernels /* { dg-message "optimized: assigned OpenACC seq loop parallelism" } */
/* Strangely indented to keep this similar to other test cases. */
if (c) /* { dg-message "optimized: beginning .parloops. region in OpenACC .kernels. construct" } */
{
#pragma acc loop independent worker vector
/* { dg-message "optimized: unparallelized loop nest in OpenACC .kernels. region: it's executed conditionally" "" { target *-*-* } .-1 } */
for (x = 0; x < 10; x++)
;
}
#pragma acc kernels /* { dg-message "optimized: assigned OpenACC seq loop parallelism" } */
/* Strangely indented to keep this similar to other test cases. */
if (c) /* { dg-message "optimized: beginning .parloops. region in OpenACC .kernels. construct" } */
{
#pragma acc loop independent gang worker vector
/* { dg-message "optimized: unparallelized loop nest in OpenACC .kernels. region: it's executed conditionally" "" { target *-*-* } .-1 } */
for (x = 0; x < 10; x++)
;
}
#pragma acc kernels /* { dg-message "optimized: assigned OpenACC seq loop parallelism" } */
/* Strangely indented to keep this similar to other test cases. */
if (c) /* { dg-message "optimized: beginning .parloops. region in OpenACC .kernels. construct" } */
{
#pragma acc loop independent gang
/* { dg-message "optimized: unparallelized loop nest in OpenACC .kernels. region: it's executed conditionally" "" { target *-*-* } .-1 } */
for (x = 0; x < 10; x++)
#pragma acc loop independent worker
for (y = 0; y < 10; y++)
#pragma acc loop independent vector
for (z = 0; z < 10; z++)
;
}
#pragma acc kernels /* { dg-message "optimized: assigned OpenACC seq loop parallelism" } */
/* Strangely indented to keep this similar to other test cases. */
if (c) /* { dg-message "optimized: beginning .parloops. region in OpenACC .kernels. construct" } */
{
#pragma acc loop independent
/* { dg-message "optimized: unparallelized loop nest in OpenACC .kernels. region: it's executed conditionally" "" { target *-*-* } .-1 } */
for (x = 0; x < 10; x++)
;
}
#pragma acc kernels /* { dg-message "optimized: assigned OpenACC seq loop parallelism" } */
/* Strangely indented to keep this similar to other test cases. */
if (c) /* { dg-message "optimized: beginning .parloops. region in OpenACC .kernels. construct" } */
{
#pragma acc loop independent
/* { dg-message "optimized: unparallelized loop nest in OpenACC .kernels. region: it's executed conditionally" "" { target *-*-* } .-1 } */
for (x = 0; x < 10; x++)
#pragma acc loop independent
for (y = 0; y < 10; y++)
;
}
#pragma acc kernels /* { dg-message "optimized: assigned OpenACC seq loop parallelism" } */
/* Strangely indented to keep this similar to other test cases. */
if (c) /* { dg-message "optimized: beginning .parloops. region in OpenACC .kernels. construct" } */
{
#pragma acc loop independent
/* { dg-message "optimized: unparallelized loop nest in OpenACC .kernels. region: it's executed conditionally" "" { target *-*-* } .-1 } */
for (x = 0; x < 10; x++)
#pragma acc loop independent
for (y = 0; y < 10; y++)
#pragma acc loop independent
for (z = 0; z < 10; z++)
;
}
#pragma acc kernels /* { dg-message "optimized: assigned OpenACC seq loop parallelism" } */
/* Strangely indented to keep this similar to other test cases. */
if (c) /* { dg-message "optimized: beginning .parloops. region in OpenACC .kernels. construct" } */
{
#pragma acc loop seq
/* { dg-message "optimized: unparallelized loop nest in OpenACC .kernels. region: it's executed conditionally" "" { target *-*-* } .-1 } */
for (x = 0; x < 10; x++)
#pragma acc loop independent
for (y = 0; y < 10; y++)
#pragma acc loop independent
for (z = 0; z < 10; z++)
;
}
#pragma acc kernels /* { dg-message "optimized: assigned OpenACC seq loop parallelism" } */
/* Strangely indented to keep this similar to other test cases. */
if (c) /* { dg-message "optimized: beginning .parloops. region in OpenACC .kernels. construct" } */
{
#pragma acc loop independent
/* { dg-message "optimized: unparallelized loop nest in OpenACC .kernels. region: it's executed conditionally" "" { target *-*-* } .-1 } */
for (x = 0; x < 10; x++)
#pragma acc loop seq
for (y = 0; y < 10; y++)
#pragma acc loop independent
for (z = 0; z < 10; z++)
;
}
#pragma acc kernels /* { dg-message "optimized: assigned OpenACC seq loop parallelism" } */
/* Strangely indented to keep this similar to other test cases. */
if (c) /* { dg-message "optimized: beginning .parloops. region in OpenACC .kernels. construct" } */
{
#pragma acc loop independent
/* { dg-message "optimized: unparallelized loop nest in OpenACC .kernels. region: it's executed conditionally" "" { target *-*-* } .-1 } */
for (x = 0; x < 10; x++)
#pragma acc loop independent
for (y = 0; y < 10; y++)
#pragma acc loop seq
for (z = 0; z < 10; z++)
;
}
#pragma acc kernels /* { dg-message "optimized: assigned OpenACC seq loop parallelism" } */
/* Strangely indented to keep this similar to other test cases. */
if (c) /* { dg-message "optimized: beginning .parloops. region in OpenACC .kernels. construct" } */
{
#pragma acc loop seq
/* { dg-message "optimized: unparallelized loop nest in OpenACC .kernels. region: it's executed conditionally" "" { target *-*-* } .-1 } */
for (x = 0; x < 10; x++)
#pragma acc loop independent
for (y = 0; y < 10; y++)
#pragma acc loop seq
for (z = 0; z < 10; z++)
;
}
return 0;
}