blob: 9708f7bf5eb37f92e3133fc4ad6804ddab35b752 [file] [log] [blame]
/* Exercise *_parser_oacc_shape_clause by checking various combinations
of gang, worker and vector clause arguments. */
/* { dg-compile } */
int main ()
{
int i;
int v = 32, w = 19;
int length = 1, num = 5;
int *abc;
/* Valid uses. */
#pragma acc kernels
#pragma acc loop gang worker vector
for (i = 0; i < 10; i++)
;
#pragma acc kernels
#pragma acc loop gang(26)
for (i = 0; i < 10; i++)
;
#pragma acc kernels
#pragma acc loop gang(v)
for (i = 0; i < 10; i++)
;
#pragma acc kernels
#pragma acc loop vector(length: 16)
for (i = 0; i < 10; i++)
;
#pragma acc kernels
#pragma acc loop vector(length: v)
for (i = 0; i < 10; i++)
;
#pragma acc kernels
#pragma acc loop vector(16)
for (i = 0; i < 10; i++)
;
#pragma acc kernels
#pragma acc loop vector(v)
for (i = 0; i < 10; i++)
;
#pragma acc kernels
#pragma acc loop worker(num: 16)
for (i = 0; i < 10; i++)
;
#pragma acc kernels
#pragma acc loop worker(num: v)
for (i = 0; i < 10; i++)
;
#pragma acc kernels
#pragma acc loop worker(16)
for (i = 0; i < 10; i++)
;
#pragma acc kernels
#pragma acc loop worker(v)
for (i = 0; i < 10; i++)
;
#pragma acc kernels
#pragma acc loop gang(static: 16, num: 5)
for (i = 0; i < 10; i++)
;
#pragma acc kernels
#pragma acc loop gang(static: v, num: w)
for (i = 0; i < 10; i++)
;
#pragma acc kernels
#pragma acc loop vector(length)
for (i = 0; i < 10; i++)
;
#pragma acc kernels
#pragma acc loop worker(num)
for (i = 0; i < 10; i++)
;
#pragma acc kernels
#pragma acc loop gang(num, static: 6)
for (i = 0; i < 10; i++)
;
#pragma acc kernels
#pragma acc loop gang(static: 5, num)
for (i = 0; i < 10; i++)
;
#pragma acc kernels
#pragma acc loop gang(1, static:*)
for (i = 0; i < 10; i++)
;
#pragma acc kernels
#pragma acc loop gang(static:*, 1)
for (i = 0; i < 10; i++)
;
#pragma acc kernels
#pragma acc loop gang(1, static:*)
for (i = 0; i < 10; i++)
;
#pragma acc kernels
#pragma acc loop gang(num: 5, static: 4)
for (i = 0; i < 10; i++)
;
#pragma acc kernels
#pragma acc loop gang(num: v, static: w)
for (i = 0; i < 10; i++)
;
#pragma acc kernels
#pragma acc loop gang(num, static:num)
for (i = 0; i < 10; i++)
;
#pragma acc kernels
#pragma acc loop vector(length:length)
for (i = 0; i < 10; i++)
;
#pragma acc kernels
#pragma acc loop worker(num:length)
for (i = 0; i < 10; i++)
;
#pragma acc kernels
#pragma acc loop worker(num:num)
for (i = 0; i < 10; i++)
;
/* Invalid uses. */
#pragma acc kernels
#pragma acc loop gang(16, 24) /* { dg-error "unexpected argument" } */
for (i = 0; i < 10; i++)
;
#pragma acc kernels
#pragma acc loop gang(v, w) /* { dg-error "unexpected argument" } */
for (i = 0; i < 10; i++)
;
#pragma acc kernels
#pragma acc loop gang(num: 1, num:2, num:3, 4) /* { dg-error "unexpected argument" } */
for (i = 0; i < 10; i++)
;
#pragma acc kernels
#pragma acc loop gang(num: 1 num:2, num:3, 4) /* { dg-error "expected '.' before" } */
for (i = 0; i < 10; i++)
;
#pragma acc kernels
#pragma acc loop gang(1, num:2, num:3, 4) /* { dg-error "unexpected argument" } */
for (i = 0; i < 10; i++)
;
#pragma acc kernels
#pragma acc loop gang(num, num:5) /* { dg-error "unexpected argument" } */
for (i = 0; i < 10; i++)
;
#pragma acc kernels
#pragma acc loop gang(length:num) /* { dg-error "" } */
for (i = 0; i < 10; i++)
;
#pragma acc kernels
#pragma acc loop vector(5, length:length) /* { dg-error "expected '.' before" } */
for (i = 0; i < 10; i++)
;
#pragma acc kernels
#pragma acc loop vector(num:length) /* { dg-error "" } */
for (i = 0; i < 10; i++)
;
#pragma acc kernels
#pragma acc loop worker(length:5) /* { dg-error "expected '.' before" } */
for (i = 0; i < 10; i++)
;
#pragma acc kernels
#pragma acc loop worker(1, num:2) /* { dg-error "expected '.' before" } */
for (i = 0; i < 10; i++)
;
#pragma acc kernels
#pragma acc loop gang(static: * abc)
for (i = 0; i < 10; i++)
;
#pragma acc kernels
#pragma acc loop gang(static:*num:1) /* { dg-error "" } */
for (i = 0; i < 10; i++)
;
#pragma acc kernels
#pragma acc loop gang(num: 5 static: *) /* { dg-error "expected '.' before" } */
for (i = 0; i < 10; i++)
;
#pragma acc kernels
#pragma acc loop gang(,static: *) /* { dg-error "" } */
for (i = 0; i < 10; i++)
;
#pragma acc kernels
#pragma acc loop vector(,length:5) /* { dg-error "" } */
for (i = 0; i < 10; i++)
;
#pragma acc kernels
#pragma acc loop worker(,num:10) /* { dg-error "" } */
for (i = 0; i < 10; i++)
;
#pragma acc kernels
#pragma acc loop worker(,10) /* { dg-error "" } */
for (i = 0; i < 10; i++)
;
#pragma acc kernels
#pragma acc loop vector(,10) /* { dg-error "" } */
for (i = 0; i < 10; i++)
;
#pragma acc kernels
#pragma acc loop gang(,10) /* { dg-error "" } */
for (i = 0; i < 10; i++)
;
#pragma acc kernels
#pragma acc loop gang(-12) /* { dg-warning "" } */
for (i = 0; i < 10; i++)
;
#pragma acc kernels
#pragma acc loop gang(-1.0) /* { dg-error "" } */
for (i = 0; i < 10; i++)
;
#pragma acc kernels
#pragma acc loop gang(1.0) /* { dg-error "" } */
for (i = 0; i < 10; i++)
;
#pragma acc kernels
#pragma acc loop gang(num:-1.0) /* { dg-error "" } */
for (i = 0; i < 10; i++)
;
#pragma acc kernels
#pragma acc loop gang(num:1.0) /* { dg-error "" } */
for (i = 0; i < 10; i++)
;
#pragma acc kernels
#pragma acc loop gang(static:-1.0) /* { dg-error "" } */
for (i = 0; i < 10; i++)
;
#pragma acc kernels
#pragma acc loop gang(static:1.0) /* { dg-error "" } */
for (i = 0; i < 10; i++)
;
#pragma acc kernels
#pragma acc loop worker(-1.0) /* { dg-error "" } */
for (i = 0; i < 10; i++)
;
#pragma acc kernels
#pragma acc loop worker(1.0) /* { dg-error "" } */
for (i = 0; i < 10; i++)
;
#pragma acc kernels
#pragma acc loop worker(num:-1.0) /* { dg-error "" } */
for (i = 0; i < 10; i++)
;
#pragma acc kernels
#pragma acc loop worker(num:1.0) /* { dg-error "" } */
for (i = 0; i < 10; i++)
;
#pragma acc kernels
#pragma acc loop vector(-1.0) /* { dg-error "" } */
for (i = 0; i < 10; i++)
;
#pragma acc kernels
#pragma acc loop vector(1.0) /* { dg-error "" } */
for (i = 0; i < 10; i++)
;
#pragma acc kernels
#pragma acc loop vector(length:-1.0) /* { dg-error "" } */
for (i = 0; i < 10; i++)
;
#pragma acc kernels
#pragma acc loop vector(length:1.0) /* { dg-error "" } */
for (i = 0; i < 10; i++)
;
return 0;
}