/* Test large vector lengths. */ /* { dg-additional-options "-DEXPENSIVE" { target run_expensive_tests } } */ /* { dg-additional-options -Wuninitialized } */ #include #ifdef EXPENSIVE #define n 10000 #else #define n 2500 #endif int a1[n], a2[n]; #define gentest(name, outer, inner) \ void name () \ { \ long i, j, t1, t2, t3; /* { dg-line vars } */ \ _Pragma(outer) /* { dg-line outer } */ \ for (i = 0; i < n; i++) \ { \ t1 = 0; \ t2 = 0; \ _Pragma(inner) \ for (j = i; j < n; j++) \ { \ t1++; \ t2--; \ } \ a1[i] = t1; \ a2[i] = t2; \ } \ for (i = 0; i < n; i++) \ { \ assert (a1[i] == n-i); \ assert (a2[i] == -(n-i)); \ } \ } \ gentest (test1, "acc parallel loop gang vector_length (128) firstprivate (t1, t2)", "acc loop vector reduction(+:t1) reduction(-:t2)") /* { dg-warning {'t1' is used uninitialized} {} { target *-*-* } outer } { dg-note {'t1' was declared here} {} { target *-*-* } vars } { dg-note {in expansion of macro 'gentest'} {} { target { ! offloading_enabled } } .-4 } TODO See PR101551 for 'offloading_enabled' differences. */ /* { dg-warning {'t2' is used uninitialized} {} { target *-*-* } outer } { dg-note {'t2' was declared here} {} { target *-*-* } vars } { DUP_dg-note {in expansion of macro 'gentest'} {} { target { ! offloading_enabled } } .-8 } TODO See PR101551 for 'offloading_enabled' differences. */ gentest (test2, "acc parallel loop gang vector_length (128) firstprivate (t1, t2)", "acc loop worker vector reduction(+:t1) reduction(-:t2)") /* { DUPdg-warning {'t1' is used uninitialized} {} { target *-*-* } outer } { DUP_dg-note {'t1' was declared here} {} { target *-*-* } vars } { dg-note {in expansion of macro 'gentest'} {} { target { ! offloading_enabled } } .-4 } TODO See PR101551 for 'offloading_enabled' differences. */ /* { DUPdg-warning {'t2' is used uninitialized} {} { target *-*-* } outer } { DUP_dg-note {'t2' was declared here} {} { target *-*-* } vars } { DUP_dg-note {in expansion of macro 'gentest'} {} { target { ! offloading_enabled } } .-8 } TODO See PR101551 for 'offloading_enabled' differences. */ gentest (test3, "acc parallel loop gang worker vector_length (128) firstprivate (t1, t2)", "acc loop vector reduction(+:t1) reduction(-:t2)") /* { DUPdg-warning {'t1' is used uninitialized} {} { target *-*-* } outer } { DUP_dg-note {'t1' was declared here} {} { target *-*-* } vars } { dg-note {in expansion of macro 'gentest'} {} { target { ! offloading_enabled } } .-4 } TODO See PR101551 for 'offloading_enabled' differences. */ /* { DUPdg-warning {'t2' is used uninitialized} {} { target *-*-* } outer } { DUP_dg-note {'t2' was declared here} {} { target *-*-* } vars } { DUP_dg-note {in expansion of macro 'gentest'} {} { target { ! offloading_enabled } } .-8 } TODO See PR101551 for 'offloading_enabled' differences. */ gentest (test4, "acc parallel loop firstprivate (t1, t2)", "acc loop reduction(+:t1) reduction(-:t2)") /* { DUPdg-warning {'t1' is used uninitialized} {} { target *-*-* } outer } { DUP_dg-note {'t1' was declared here} {} { target *-*-* } vars } { dg-note {in expansion of macro 'gentest'} {} { target { ! offloading_enabled } } .-4 } TODO See PR101551 for 'offloading_enabled' differences. */ /* { DUPdg-warning {'t2' is used uninitialized} {} { target *-*-* } outer } { DUP_dg-note {'t2' was declared here} {} { target *-*-* } vars } { DUP_dg-note {in expansion of macro 'gentest'} {} { target { ! offloading_enabled } } .-8 } TODO See PR101551 for 'offloading_enabled' differences. */ int main () { test1 (); test2 (); test3 (); test4 (); return 0; }