blob: be3340a3583bddbaf5a86febab9d5be8c51ce762 [file] [log] [blame]
/* { dg-do compile { target { c || c++11 } } } */
/* { dg-additional-options "-std=c23" { target c } } */
extern void dummy (int);
void
test1 (void)
{
[[omp::directive (unroll partial)]]
for (int i = 0; i < 100; ++i)
dummy (i);
}
void
test2 (void)
{
[[omp::directive (unroll partial(10))]]
for (int i = 0; i < 100; ++i)
dummy (i);
}
void
test3 (void)
{
[[omp::directive (unroll full)]]
for (int i = 0; i < 100; ++i)
dummy (i);
}
void
test4 (void)
{
[[omp::directive (unroll full)]]
for (int i = 0; i > 100; ++i)
dummy (i);
}
void
test5 (void)
{
[[omp::directive (unroll full)]]
for (int i = 1; i <= 100; ++i)
dummy (i);
}
void
test6 (void)
{
[[omp::directive (unroll full)]]
for (int i = 200; i >= 100; i--)
dummy (i);
}
void
test7 (void)
{
[[omp::directive (unroll full)]]
for (int i = -100; i > 100; ++i)
dummy (i);
}
void
test8 (void)
{
[[omp::directive (unroll full)]]
for (int i = 100; i > -200; --i)
dummy (i);
}
void
test9 (void)
{
[[omp::directive (unroll full)]]
for (int i = -300; i != 100; ++i)
dummy (i);
}
void
test10 (void)
{
[[omp::directive (unroll full)]]
for (int i = -300; i != 100; ++i)
dummy (i);
}
void
test12 (void)
{
[[omp::sequence (directive (unroll full),
directive (unroll partial),
directive (unroll partial))]]
for (int i = -300; i != 100; ++i)
dummy (i);
}
void
test13 (void)
{
for (int i = 0; i < 100; ++i)
[[omp::sequence (directive (unroll full),
directive (unroll partial),
directive (unroll partial))]]
for (int j = -300; j != 100; ++j)
dummy (i);
}
void
test14 (void)
{
[[omp::directive (for)]]
for (int i = 0; i < 100; ++i)
[[omp::sequence (directive (unroll full),
directive (unroll partial),
directive (unroll partial))]]
for (int j = -300; j != 100; ++j)
dummy (i);
}
void
test15 (void)
{
[[omp::directive (for)]]
for (int i = 0; i < 100; ++i)
{
dummy (i);
[[omp::sequence (directive (unroll full),
directive (unroll partial),
directive (unroll partial))]]
for (int j = -300; j != 100; ++j)
dummy (j);
dummy (i);
}
}