| /* { dg-do run { target openacc_nvidia_accel_selected } } |
| { dg-skip-if "" { *-*-* } { "*" } { "-O2" } } */ |
| /* { dg-additional-options "-foffload=-fdump-rtl-mach" } */ |
| |
| /* { dg-additional-options "-Wopenacc-parallelism" } for testing/documenting |
| aspects of that functionality. */ |
| |
| int a; |
| #pragma acc declare create(a) |
| |
| #pragma acc routine vector |
| /* { dg-warning "region is vector partitioned but does not contain vector partitioned code" "" { target *-*-* } .+2 } */ |
| void __attribute__((noinline, noclone)) |
| foo_v (void) |
| { |
| a = 1; |
| } |
| |
| #pragma acc routine worker |
| /* { dg-warning "region is worker partitioned but does not contain worker partitioned code" "" { target *-*-* } .+3 } |
| { dg-warning "region is vector partitioned but does not contain vector partitioned code" "" { target *-*-* } .+2 } */ |
| void __attribute__((noinline, noclone)) |
| foo_w (void) |
| { |
| a = 2; |
| } |
| |
| int |
| main (void) |
| { |
| |
| #pragma acc parallel |
| foo_v (); |
| |
| #pragma acc parallel |
| foo_w (); |
| |
| return 0; |
| } |
| |
| /* { dg-final { scan-offload-rtl-dump-not "nvptx_barsync" "mach" } } */ |