brintos

brintos / llvm-project-archived public Read only

0
0
Text · 38.6 KiB · 6d5c916 Raw
756 lines · c
1// RUN: %clang_cc1 %s -fopenacc -verify2 3void uses() {4#pragma acc parallel loop auto5  for(unsigned i = 0; i < 5; ++i);6#pragma acc parallel loop seq7  for(unsigned i = 0; i < 5; ++i);8#pragma acc parallel loop independent9  for(unsigned i = 0; i < 5; ++i);10 11  // expected-error@+2{{OpenACC clause 'seq' may not appear on the same construct as a 'auto' clause on a 'parallel loop' construct}}12  // expected-note@+1{{previous 'auto' clause is here}}13#pragma acc parallel loop auto seq14  for(unsigned i = 0; i < 5; ++i);15  // expected-error@+2{{OpenACC clause 'independent' may not appear on the same construct as a 'auto' clause on a 'parallel loop' construct}}16  // expected-note@+1{{previous 'auto' clause is here}}17#pragma acc parallel loop auto independent18  for(unsigned i = 0; i < 5; ++i);19  // expected-error@+2{{OpenACC clause 'auto' may not appear on the same construct as a 'seq' clause on a 'parallel loop' construct}}20  // expected-note@+1{{previous 'seq' clause is here}}21#pragma acc parallel loop seq auto22  for(unsigned i = 0; i < 5; ++i);23  // expected-error@+2{{OpenACC clause 'independent' may not appear on the same construct as a 'seq' clause on a 'parallel loop' construct}}24  // expected-note@+1{{previous 'seq' clause is here}}25#pragma acc parallel loop seq independent26  for(unsigned i = 0; i < 5; ++i);27  // expected-error@+2{{OpenACC clause 'auto' may not appear on the same construct as a 'independent' clause on a 'parallel loop' construct}}28  // expected-note@+1{{previous 'independent' clause is here}}29#pragma acc parallel loop independent auto30  for(unsigned i = 0; i < 5; ++i);31  // expected-error@+2{{OpenACC clause 'seq' may not appear on the same construct as a 'independent' clause on a 'parallel loop' construct}}32  // expected-note@+1{{previous 'independent' clause is here}}33#pragma acc parallel loop independent seq34  for(unsigned i = 0; i < 5; ++i);35 36  int Var;37  int *VarPtr;38 39  // 'auto' can combine with any other clause.40  // expected-error@+1{{OpenACC 'finalize' clause is not valid on 'parallel loop' directive}}41#pragma acc parallel loop auto finalize42  for(unsigned i = 0; i < 5; ++i);43  // expected-error@+1{{OpenACC 'if_present' clause is not valid on 'parallel loop' directive}}44#pragma acc parallel loop auto if_present45  for(unsigned i = 0; i < 5; ++i);46#pragma acc parallel loop auto worker47  for(unsigned i = 0; i < 5; ++i);48#pragma acc parallel loop auto vector49  for(unsigned i = 0; i < 5; ++i);50  // expected-error@+1{{OpenACC 'nohost' clause is not valid on 'parallel loop' directive}}51#pragma acc parallel loop auto nohost52  for(unsigned i = 0; i < 5; ++i);53#pragma acc parallel loop auto default(none)54  for(unsigned i = 0; i < 5; ++i);55#pragma acc parallel loop auto if(1)56  for(unsigned i = 0; i < 5; ++i);57#pragma acc parallel loop auto self58  for(unsigned i = 0; i < 5; ++i);59#pragma acc parallel loop auto copy(Var)60  for(unsigned i = 0; i < 5; ++i);61  // expected-warning@+1{{OpenACC clause name 'pcopy' is a deprecated clause name and is now an alias for 'copy'}}62#pragma acc parallel loop auto pcopy(Var)63  for(unsigned i = 0; i < 5; ++i);64  // expected-warning@+1{{OpenACC clause name 'present_or_copy' is a deprecated clause name and is now an alias for 'copy'}}65#pragma acc parallel loop auto present_or_copy(Var)66  for(unsigned i = 0; i < 5; ++i);67  // expected-error@+1{{OpenACC 'use_device' clause is not valid on 'parallel loop' directive}}68#pragma acc parallel loop auto use_device(Var)69  for(unsigned i = 0; i < 5; ++i);70#pragma acc parallel loop auto attach(VarPtr)71  for(unsigned i = 0; i < 5; ++i);72  // expected-error@+1{{OpenACC 'delete' clause is not valid on 'parallel loop' directive}}73#pragma acc parallel loop auto delete(Var)74  for(unsigned i = 0; i < 5; ++i);75  // expected-error@+1{{OpenACC 'detach' clause is not valid on 'parallel loop' directive}}76#pragma acc parallel loop auto detach(Var)77  for(unsigned i = 0; i < 5; ++i);78  // expected-error@+1{{OpenACC 'device' clause is not valid on 'parallel loop' directive}}79#pragma acc parallel loop auto device(VarPtr)80  for(unsigned i = 0; i < 5; ++i);81#pragma acc parallel loop auto deviceptr(VarPtr)82  for(unsigned i = 0; i < 5; ++i);83  // expected-error@+1{{OpenACC 'device_resident' clause is not valid on 'parallel loop' directive}}84#pragma acc parallel loop auto device_resident(VarPtr)85  for(unsigned i = 0; i < 5; ++i);86#pragma acc parallel loop auto firstprivate(Var)87  for(unsigned i = 0; i < 5; ++i);88  // expected-error@+1{{OpenACC 'host' clause is not valid on 'parallel loop' directive}}89#pragma acc parallel loop auto host(Var)90  for(unsigned i = 0; i < 5; ++i);91  // expected-error@+1{{OpenACC 'link' clause is not valid on 'parallel loop' directive}}92#pragma acc parallel loop auto link(Var)93  for(unsigned i = 0; i < 5; ++i);94#pragma acc parallel loop auto no_create(Var)95  for(unsigned i = 0; i < 5; ++i);96#pragma acc parallel loop auto present(Var)97  for(unsigned i = 0; i < 5; ++i);98#pragma acc parallel loop auto private(Var)99  for(unsigned i = 0; i < 5; ++i);100#pragma acc parallel loop auto copyout(Var)101  for(unsigned i = 0; i < 5; ++i);102  // expected-warning@+1{{OpenACC clause name 'pcopyout' is a deprecated clause name and is now an alias for 'copyout'}}103#pragma acc parallel loop auto pcopyout(Var)104  for(unsigned i = 0; i < 5; ++i);105  // expected-warning@+1{{OpenACC clause name 'present_or_copyout' is a deprecated clause name and is now an alias for 'copyout'}}106#pragma acc parallel loop auto present_or_copyout(Var)107  for(unsigned i = 0; i < 5; ++i);108#pragma acc parallel loop auto copyin(Var)109  for(unsigned i = 0; i < 5; ++i);110  // expected-warning@+1{{OpenACC clause name 'pcopyin' is a deprecated clause name and is now an alias for 'copyin'}}111#pragma acc parallel loop auto pcopyin(Var)112  for(unsigned i = 0; i < 5; ++i);113  // expected-warning@+1{{OpenACC clause name 'present_or_copyin' is a deprecated clause name and is now an alias for 'copyin'}}114#pragma acc parallel loop auto present_or_copyin(Var)115  for(unsigned i = 0; i < 5; ++i);116#pragma acc parallel loop auto create(Var)117  for(unsigned i = 0; i < 5; ++i);118  // expected-warning@+1{{OpenACC clause name 'pcreate' is a deprecated clause name and is now an alias for 'create'}}119#pragma acc parallel loop auto pcreate(Var)120  for(unsigned i = 0; i < 5; ++i);121  // expected-warning@+1{{OpenACC clause name 'present_or_create' is a deprecated clause name and is now an alias for 'create'}}122#pragma acc parallel loop auto present_or_create(Var)123  for(unsigned i = 0; i < 5; ++i);124#pragma acc parallel loop auto reduction(+:Var)125  for(unsigned i = 0; i < 5; ++i);126#pragma acc parallel loop auto collapse(1)127  for(unsigned i = 0; i < 5; ++i);128  // expected-error@+1{{OpenACC 'bind' clause is not valid on 'parallel loop' directive}}129#pragma acc parallel loop auto bind(Var)130  for(unsigned i = 0; i < 5; ++i);131#pragma acc parallel loop auto vector_length(1)132  for(unsigned i = 0; i < 5; ++i);133#pragma acc parallel loop auto num_gangs(1)134  for(unsigned i = 0; i < 5; ++i);135#pragma acc parallel loop auto num_workers(1)136  for(unsigned i = 0; i < 5; ++i);137  // expected-error@+1{{OpenACC 'device_num' clause is not valid on 'parallel loop' directive}}138#pragma acc parallel loop auto device_num(1)139  for(unsigned i = 0; i < 5; ++i);140  // expected-error@+1{{OpenACC 'default_async' clause is not valid on 'parallel loop' directive}}141#pragma acc parallel loop auto default_async(1)142  for(unsigned i = 0; i < 5; ++i);143#pragma acc parallel loop auto device_type(*)144  for(unsigned i = 0; i < 5; ++i);145#pragma acc parallel loop auto dtype(*)146  for(unsigned i = 0; i < 5; ++i);147#pragma acc parallel loop auto async148  for(unsigned i = 0; i < 5; ++i);149#pragma acc parallel loop auto tile(1+2, 1)150  for(unsigned j = 0; j < 5; ++j)151    for(unsigned i = 0; i < 5; ++i);152#pragma acc parallel loop auto gang153  for(unsigned i = 0; i < 5; ++i);154#pragma acc parallel loop auto wait155  for(unsigned i = 0; i < 5; ++i);156 157  // expected-error@+1{{OpenACC 'finalize' clause is not valid on 'parallel loop' directive}}158#pragma acc parallel loop finalize auto159  for(unsigned i = 0; i < 5; ++i);160  // expected-error@+1{{OpenACC 'if_present' clause is not valid on 'parallel loop' directive}}161#pragma acc parallel loop if_present auto162  for(unsigned i = 0; i < 5; ++i);163#pragma acc parallel loop worker auto164  for(unsigned i = 0; i < 5; ++i);165#pragma acc parallel loop vector auto166  for(unsigned i = 0; i < 5; ++i);167  // expected-error@+1{{OpenACC 'nohost' clause is not valid on 'parallel loop' directive}}168#pragma acc parallel loop nohost auto169  for(unsigned i = 0; i < 5; ++i);170#pragma acc parallel loop default(none) auto171  for(unsigned i = 0; i < 5; ++i);172#pragma acc parallel loop if(1) auto173  for(unsigned i = 0; i < 5; ++i);174#pragma acc parallel loop self auto175  for(unsigned i = 0; i < 5; ++i);176#pragma acc parallel loop copy(Var) auto177  for(unsigned i = 0; i < 5; ++i);178  // expected-warning@+1{{OpenACC clause name 'pcopy' is a deprecated clause name and is now an alias for 'copy'}}179#pragma acc parallel loop pcopy(Var) auto180  for(unsigned i = 0; i < 5; ++i);181  // expected-warning@+1{{OpenACC clause name 'present_or_copy' is a deprecated clause name and is now an alias for 'copy'}}182#pragma acc parallel loop present_or_copy(Var) auto183  for(unsigned i = 0; i < 5; ++i);184  // expected-error@+1{{OpenACC 'use_device' clause is not valid on 'parallel loop' directive}}185#pragma acc parallel loop use_device(Var) auto186  for(unsigned i = 0; i < 5; ++i);187#pragma acc parallel loop attach(VarPtr) auto188  for(unsigned i = 0; i < 5; ++i);189  // expected-error@+1{{OpenACC 'delete' clause is not valid on 'parallel loop' directive}}190#pragma acc parallel loop delete(Var) auto191  for(unsigned i = 0; i < 5; ++i);192  // expected-error@+1{{OpenACC 'detach' clause is not valid on 'parallel loop' directive}}193#pragma acc parallel loop detach(Var) auto194  for(unsigned i = 0; i < 5; ++i);195  // expected-error@+1{{OpenACC 'device' clause is not valid on 'parallel loop' directive}}196#pragma acc parallel loop device(VarPtr) auto197  for(unsigned i = 0; i < 5; ++i);198#pragma acc parallel loop deviceptr(VarPtr) auto199  for(unsigned i = 0; i < 5; ++i);200  // expected-error@+1{{OpenACC 'device_resident' clause is not valid on 'parallel loop' directive}}201#pragma acc parallel loop device_resident(VarPtr) auto202  for(unsigned i = 0; i < 5; ++i);203#pragma acc parallel loop firstprivate(Var) auto204  for(unsigned i = 0; i < 5; ++i);205  // expected-error@+1{{OpenACC 'host' clause is not valid on 'parallel loop' directive}}206#pragma acc parallel loop host(Var) auto207  for(unsigned i = 0; i < 5; ++i);208  // expected-error@+1{{OpenACC 'link' clause is not valid on 'parallel loop' directive}}209#pragma acc parallel loop link(Var) auto210  for(unsigned i = 0; i < 5; ++i);211#pragma acc parallel loop no_create(Var) auto212  for(unsigned i = 0; i < 5; ++i);213#pragma acc parallel loop present(Var) auto214  for(unsigned i = 0; i < 5; ++i);215#pragma acc parallel loop private(Var) auto216  for(unsigned i = 0; i < 5; ++i);217#pragma acc parallel loop copyout(Var) auto218  for(unsigned i = 0; i < 5; ++i);219  // expected-warning@+1{{OpenACC clause name 'pcopyout' is a deprecated clause name and is now an alias for 'copyout'}}220#pragma acc parallel loop pcopyout(Var) auto221  for(unsigned i = 0; i < 5; ++i);222  // expected-warning@+1{{OpenACC clause name 'present_or_copyout' is a deprecated clause name and is now an alias for 'copyout'}}223#pragma acc parallel loop present_or_copyout(Var) auto224  for(unsigned i = 0; i < 5; ++i);225#pragma acc parallel loop copyin(Var) auto226  for(unsigned i = 0; i < 5; ++i);227  // expected-warning@+1{{OpenACC clause name 'pcopyin' is a deprecated clause name and is now an alias for 'copyin'}}228#pragma acc parallel loop pcopyin(Var) auto229  for(unsigned i = 0; i < 5; ++i);230  // expected-warning@+1{{OpenACC clause name 'present_or_copyin' is a deprecated clause name and is now an alias for 'copyin'}}231#pragma acc parallel loop present_or_copyin(Var) auto232  for(unsigned i = 0; i < 5; ++i);233#pragma acc parallel loop create(Var) auto234  for(unsigned i = 0; i < 5; ++i);235  // expected-warning@+1{{OpenACC clause name 'pcreate' is a deprecated clause name and is now an alias for 'create'}}236#pragma acc parallel loop pcreate(Var) auto237  for(unsigned i = 0; i < 5; ++i);238  // expected-warning@+1{{OpenACC clause name 'present_or_create' is a deprecated clause name and is now an alias for 'create'}}239#pragma acc parallel loop present_or_create(Var) auto240  for(unsigned i = 0; i < 5; ++i);241#pragma acc parallel loop reduction(+:Var) auto242  for(unsigned i = 0; i < 5; ++i);243#pragma acc parallel loop collapse(1) auto244  for(unsigned i = 0; i < 5; ++i);245  // expected-error@+1{{OpenACC 'bind' clause is not valid on 'parallel loop' directive}}246#pragma acc parallel loop bind(Var) auto247  for(unsigned i = 0; i < 5; ++i);248#pragma acc parallel loop vector_length(1) auto249  for(unsigned i = 0; i < 5; ++i);250#pragma acc parallel loop num_gangs(1) auto251  for(unsigned i = 0; i < 5; ++i);252#pragma acc parallel loop num_workers(1) auto253  for(unsigned i = 0; i < 5; ++i);254  // expected-error@+1{{OpenACC 'device_num' clause is not valid on 'parallel loop' directive}}255#pragma acc parallel loop device_num(1) auto256  for(unsigned i = 0; i < 5; ++i);257  // expected-error@+1{{OpenACC 'default_async' clause is not valid on 'parallel loop' directive}}258#pragma acc parallel loop default_async(1) auto259  for(unsigned i = 0; i < 5; ++i);260#pragma acc parallel loop device_type(*) auto261  for(unsigned i = 0; i < 5; ++i);262#pragma acc parallel loop dtype(*) auto263  for(unsigned i = 0; i < 5; ++i);264#pragma acc parallel loop async auto265  for(unsigned i = 0; i < 5; ++i);266#pragma acc parallel loop tile(1+2, 1) auto267  for(unsigned j = 0; j < 5; ++j)268    for(unsigned i = 0; i < 5; ++i);269#pragma acc parallel loop gang auto270  for(unsigned i = 0; i < 5; ++i);271#pragma acc parallel loop wait auto272  for(unsigned i = 0; i < 5; ++i);273 274  // 'independent' can also be combined with any clauses275  // expected-error@+1{{OpenACC 'finalize' clause is not valid on 'parallel loop' directive}}276#pragma acc parallel loop independent finalize277  for(unsigned i = 0; i < 5; ++i);278  // expected-error@+1{{OpenACC 'if_present' clause is not valid on 'parallel loop' directive}}279#pragma acc parallel loop independent if_present280  for(unsigned i = 0; i < 5; ++i);281#pragma acc parallel loop independent worker282  for(unsigned i = 0; i < 5; ++i);283#pragma acc parallel loop independent vector284  for(unsigned i = 0; i < 5; ++i);285  // expected-error@+1{{OpenACC 'nohost' clause is not valid on 'parallel loop' directive}}286#pragma acc parallel loop independent nohost287  for(unsigned i = 0; i < 5; ++i);288#pragma acc parallel loop independent default(none)289  for(unsigned i = 0; i < 5; ++i);290#pragma acc parallel loop independent if(1)291  for(unsigned i = 0; i < 5; ++i);292#pragma acc parallel loop independent self293  for(unsigned i = 0; i < 5; ++i);294#pragma acc parallel loop independent copy(Var)295  for(unsigned i = 0; i < 5; ++i);296  // expected-warning@+1{{OpenACC clause name 'pcopy' is a deprecated clause name and is now an alias for 'copy'}}297#pragma acc parallel loop independent pcopy(Var)298  for(unsigned i = 0; i < 5; ++i);299  // expected-warning@+1{{OpenACC clause name 'present_or_copy' is a deprecated clause name and is now an alias for 'copy'}}300#pragma acc parallel loop independent present_or_copy(Var)301  for(unsigned i = 0; i < 5; ++i);302  // expected-error@+1{{OpenACC 'use_device' clause is not valid on 'parallel loop' directive}}303#pragma acc parallel loop independent use_device(Var)304  for(unsigned i = 0; i < 5; ++i);305#pragma acc parallel loop independent attach(VarPtr)306  for(unsigned i = 0; i < 5; ++i);307  // expected-error@+1{{OpenACC 'delete' clause is not valid on 'parallel loop' directive}}308#pragma acc parallel loop independent delete(Var)309  for(unsigned i = 0; i < 5; ++i);310  // expected-error@+1{{OpenACC 'detach' clause is not valid on 'parallel loop' directive}}311#pragma acc parallel loop independent detach(Var)312  for(unsigned i = 0; i < 5; ++i);313  // expected-error@+1{{OpenACC 'device' clause is not valid on 'parallel loop' directive}}314#pragma acc parallel loop independent device(VarPtr)315  for(unsigned i = 0; i < 5; ++i);316#pragma acc parallel loop independent deviceptr(VarPtr)317  for(unsigned i = 0; i < 5; ++i);318  // expected-error@+1{{OpenACC 'device_resident' clause is not valid on 'parallel loop' directive}}319#pragma acc parallel loop independent device_resident(VarPtr)320  for(unsigned i = 0; i < 5; ++i);321#pragma acc parallel loop independent firstprivate(Var)322  for(unsigned i = 0; i < 5; ++i);323  // expected-error@+1{{OpenACC 'host' clause is not valid on 'parallel loop' directive}}324#pragma acc parallel loop independent host(Var)325  for(unsigned i = 0; i < 5; ++i);326  // expected-error@+1{{OpenACC 'link' clause is not valid on 'parallel loop' directive}}327#pragma acc parallel loop independent link(Var)328  for(unsigned i = 0; i < 5; ++i);329#pragma acc parallel loop independent no_create(Var)330  for(unsigned i = 0; i < 5; ++i);331#pragma acc parallel loop independent present(Var)332  for(unsigned i = 0; i < 5; ++i);333#pragma acc parallel loop independent private(Var)334  for(unsigned i = 0; i < 5; ++i);335#pragma acc parallel loop independent copyout(Var)336  for(unsigned i = 0; i < 5; ++i);337  // expected-warning@+1{{OpenACC clause name 'pcopyout' is a deprecated clause name and is now an alias for 'copyout'}}338#pragma acc parallel loop independent pcopyout(Var)339  for(unsigned i = 0; i < 5; ++i);340  // expected-warning@+1{{OpenACC clause name 'present_or_copyout' is a deprecated clause name and is now an alias for 'copyout'}}341#pragma acc parallel loop independent present_or_copyout(Var)342  for(unsigned i = 0; i < 5; ++i);343#pragma acc parallel loop independent copyin(Var)344  for(unsigned i = 0; i < 5; ++i);345  // expected-warning@+1{{OpenACC clause name 'pcopyin' is a deprecated clause name and is now an alias for 'copyin'}}346#pragma acc parallel loop independent pcopyin(Var)347  for(unsigned i = 0; i < 5; ++i);348  // expected-warning@+1{{OpenACC clause name 'present_or_copyin' is a deprecated clause name and is now an alias for 'copyin'}}349#pragma acc parallel loop independent present_or_copyin(Var)350  for(unsigned i = 0; i < 5; ++i);351#pragma acc parallel loop independent create(Var)352  for(unsigned i = 0; i < 5; ++i);353  // expected-warning@+1{{OpenACC clause name 'pcreate' is a deprecated clause name and is now an alias for 'create'}}354#pragma acc parallel loop independent pcreate(Var)355  for(unsigned i = 0; i < 5; ++i);356  // expected-warning@+1{{OpenACC clause name 'present_or_create' is a deprecated clause name and is now an alias for 'create'}}357#pragma acc parallel loop independent present_or_create(Var)358  for(unsigned i = 0; i < 5; ++i);359#pragma acc parallel loop independent reduction(+:Var)360  for(unsigned i = 0; i < 5; ++i);361#pragma acc parallel loop independent collapse(1)362  for(unsigned i = 0; i < 5; ++i);363  // expected-error@+1{{OpenACC 'bind' clause is not valid on 'parallel loop' directive}}364#pragma acc parallel loop independent bind(Var)365  for(unsigned i = 0; i < 5; ++i);366#pragma acc parallel loop independent vector_length(1)367  for(unsigned i = 0; i < 5; ++i);368#pragma acc parallel loop independent num_gangs(1)369  for(unsigned i = 0; i < 5; ++i);370#pragma acc parallel loop independent num_workers(1)371  for(unsigned i = 0; i < 5; ++i);372  // expected-error@+1{{OpenACC 'device_num' clause is not valid on 'parallel loop' directive}}373#pragma acc parallel loop independent device_num(1)374  for(unsigned i = 0; i < 5; ++i);375  // expected-error@+1{{OpenACC 'default_async' clause is not valid on 'parallel loop' directive}}376#pragma acc parallel loop independent default_async(1)377  for(unsigned i = 0; i < 5; ++i);378#pragma acc parallel loop independent device_type(*)379  for(unsigned i = 0; i < 5; ++i);380#pragma acc parallel loop independent dtype(*)381  for(unsigned i = 0; i < 5; ++i);382#pragma acc parallel loop independent async383  for(unsigned i = 0; i < 5; ++i);384#pragma acc parallel loop independent tile(1+2, 1)385  for(unsigned j = 0; j < 5; ++j)386    for(unsigned i = 0; i < 5; ++i);387#pragma acc parallel loop independent gang388  for(unsigned i = 0; i < 5; ++i);389#pragma acc parallel loop independent wait390  for(unsigned i = 0; i < 5; ++i);391 392  // expected-error@+1{{OpenACC 'finalize' clause is not valid on 'parallel loop' directive}}393#pragma acc parallel loop finalize independent394  for(unsigned i = 0; i < 5; ++i);395  // expected-error@+1{{OpenACC 'if_present' clause is not valid on 'parallel loop' directive}}396#pragma acc parallel loop if_present independent397  for(unsigned i = 0; i < 5; ++i);398#pragma acc parallel loop worker independent399  for(unsigned i = 0; i < 5; ++i);400#pragma acc parallel loop vector independent401  for(unsigned i = 0; i < 5; ++i);402  // expected-error@+1{{OpenACC 'nohost' clause is not valid on 'parallel loop' directive}}403#pragma acc parallel loop nohost independent404  for(unsigned i = 0; i < 5; ++i);405#pragma acc parallel loop default(none) independent406  for(unsigned i = 0; i < 5; ++i);407#pragma acc parallel loop if(1) independent408  for(unsigned i = 0; i < 5; ++i);409#pragma acc parallel loop self independent410  for(unsigned i = 0; i < 5; ++i);411#pragma acc parallel loop copy(Var) independent412  for(unsigned i = 0; i < 5; ++i);413  // expected-warning@+1{{OpenACC clause name 'pcopy' is a deprecated clause name and is now an alias for 'copy'}}414#pragma acc parallel loop pcopy(Var) independent415  for(unsigned i = 0; i < 5; ++i);416  // expected-warning@+1{{OpenACC clause name 'present_or_copy' is a deprecated clause name and is now an alias for 'copy'}}417#pragma acc parallel loop present_or_copy(Var) independent418  for(unsigned i = 0; i < 5; ++i);419  // expected-error@+1{{OpenACC 'use_device' clause is not valid on 'parallel loop' directive}}420#pragma acc parallel loop use_device(Var) independent421  for(unsigned i = 0; i < 5; ++i);422#pragma acc parallel loop attach(VarPtr) independent423  for(unsigned i = 0; i < 5; ++i);424  // expected-error@+1{{OpenACC 'delete' clause is not valid on 'parallel loop' directive}}425#pragma acc parallel loop delete(Var) independent426  for(unsigned i = 0; i < 5; ++i);427  // expected-error@+1{{OpenACC 'detach' clause is not valid on 'parallel loop' directive}}428#pragma acc parallel loop detach(Var) independent429  for(unsigned i = 0; i < 5; ++i);430  // expected-error@+1{{OpenACC 'device' clause is not valid on 'parallel loop' directive}}431#pragma acc parallel loop device(VarPtr) independent432  for(unsigned i = 0; i < 5; ++i);433#pragma acc parallel loop deviceptr(VarPtr) independent434  for(unsigned i = 0; i < 5; ++i);435  // expected-error@+1{{OpenACC 'device_resident' clause is not valid on 'parallel loop' directive}}436#pragma acc parallel loop device_resident(VarPtr) independent437  for(unsigned i = 0; i < 5; ++i);438#pragma acc parallel loop firstprivate(Var) independent439  for(unsigned i = 0; i < 5; ++i);440  // expected-error@+1{{OpenACC 'host' clause is not valid on 'parallel loop' directive}}441#pragma acc parallel loop host(Var) independent442  for(unsigned i = 0; i < 5; ++i);443  // expected-error@+1{{OpenACC 'link' clause is not valid on 'parallel loop' directive}}444#pragma acc parallel loop link(Var) independent445  for(unsigned i = 0; i < 5; ++i);446#pragma acc parallel loop no_create(Var) independent447  for(unsigned i = 0; i < 5; ++i);448#pragma acc parallel loop present(Var) independent449  for(unsigned i = 0; i < 5; ++i);450#pragma acc parallel loop private(Var) independent451  for(unsigned i = 0; i < 5; ++i);452#pragma acc parallel loop copyout(Var) independent453  for(unsigned i = 0; i < 5; ++i);454  // expected-warning@+1{{OpenACC clause name 'pcopyout' is a deprecated clause name and is now an alias for 'copyout'}}455#pragma acc parallel loop pcopyout(Var) independent456  for(unsigned i = 0; i < 5; ++i);457  // expected-warning@+1{{OpenACC clause name 'present_or_copyout' is a deprecated clause name and is now an alias for 'copyout'}}458#pragma acc parallel loop present_or_copyout(Var) independent459  for(unsigned i = 0; i < 5; ++i);460#pragma acc parallel loop copyin(Var) independent461  for(unsigned i = 0; i < 5; ++i);462  // expected-warning@+1{{OpenACC clause name 'pcopyin' is a deprecated clause name and is now an alias for 'copyin'}}463#pragma acc parallel loop pcopyin(Var) independent464  for(unsigned i = 0; i < 5; ++i);465  // expected-warning@+1{{OpenACC clause name 'present_or_copyin' is a deprecated clause name and is now an alias for 'copyin'}}466#pragma acc parallel loop present_or_copyin(Var) independent467  for(unsigned i = 0; i < 5; ++i);468#pragma acc parallel loop create(Var) independent469  for(unsigned i = 0; i < 5; ++i);470  // expected-warning@+1{{OpenACC clause name 'pcreate' is a deprecated clause name and is now an alias for 'create'}}471#pragma acc parallel loop pcreate(Var) independent472  for(unsigned i = 0; i < 5; ++i);473  // expected-warning@+1{{OpenACC clause name 'present_or_create' is a deprecated clause name and is now an alias for 'create'}}474#pragma acc parallel loop present_or_create(Var) independent475  for(unsigned i = 0; i < 5; ++i);476#pragma acc parallel loop reduction(+:Var) independent477  for(unsigned i = 0; i < 5; ++i);478#pragma acc parallel loop collapse(1) independent479  for(unsigned i = 0; i < 5; ++i);480  // expected-error@+1{{OpenACC 'bind' clause is not valid on 'parallel loop' directive}}481#pragma acc parallel loop bind(Var) independent482  for(unsigned i = 0; i < 5; ++i);483#pragma acc parallel loop vector_length(1) independent484  for(unsigned i = 0; i < 5; ++i);485#pragma acc parallel loop num_gangs(1) independent486  for(unsigned i = 0; i < 5; ++i);487#pragma acc parallel loop num_workers(1) independent488  for(unsigned i = 0; i < 5; ++i);489  // expected-error@+1{{OpenACC 'device_num' clause is not valid on 'parallel loop' directive}}490#pragma acc parallel loop device_num(1) independent491  for(unsigned i = 0; i < 5; ++i);492  // expected-error@+1{{OpenACC 'default_async' clause is not valid on 'parallel loop' directive}}493#pragma acc parallel loop default_async(1) independent494  for(unsigned i = 0; i < 5; ++i);495#pragma acc parallel loop device_type(*) independent496  for(unsigned i = 0; i < 5; ++i);497#pragma acc parallel loop dtype(*) independent498  for(unsigned i = 0; i < 5; ++i);499#pragma acc parallel loop async independent500  for(unsigned i = 0; i < 5; ++i);501#pragma acc parallel loop tile(1+2, 1) independent502  for(unsigned j = 0; j < 5; ++j)503    for(unsigned i = 0; i < 5; ++i);504#pragma acc parallel loop gang independent505  for(unsigned i = 0; i < 5; ++i);506#pragma acc parallel loop wait independent507  for(unsigned i = 0; i < 5; ++i);508 509  // 'seq' cannot be combined with 'gang', 'worker' or 'vector'510  // expected-error@+2{{OpenACC clause 'gang' may not appear on the same construct as a 'seq' clause on a 'parallel loop' construct}}511  // expected-note@+1{{previous 'seq' clause is here}}512#pragma acc parallel loop seq gang513  for(unsigned i = 0; i < 5; ++i);514  // expected-error@+2{{OpenACC clause 'worker' may not appear on the same construct as a 'seq' clause on a 'parallel loop' construct}}515  // expected-note@+1{{previous 'seq' clause is here}}516#pragma acc parallel loop seq worker517  for(unsigned i = 0; i < 5; ++i);518  // expected-error@+2{{OpenACC clause 'vector' may not appear on the same construct as a 'seq' clause on a 'parallel loop' construct}}519  // expected-note@+1{{previous 'seq' clause is here}}520#pragma acc parallel loop seq vector521  for(unsigned i = 0; i < 5; ++i);522  // expected-error@+1{{OpenACC 'finalize' clause is not valid on 'parallel loop' directive}}523#pragma acc parallel loop seq finalize524  for(unsigned i = 0; i < 5; ++i);525  // expected-error@+1{{OpenACC 'if_present' clause is not valid on 'parallel loop' directive}}526#pragma acc parallel loop seq if_present527  for(unsigned i = 0; i < 5; ++i);528  // expected-error@+1{{OpenACC 'nohost' clause is not valid on 'parallel loop' directive}}529#pragma acc parallel loop seq nohost530  for(unsigned i = 0; i < 5; ++i);531#pragma acc parallel loop seq default(none)532  for(unsigned i = 0; i < 5; ++i);533#pragma acc parallel loop seq if(1)534  for(unsigned i = 0; i < 5; ++i);535#pragma acc parallel loop seq self536  for(unsigned i = 0; i < 5; ++i);537#pragma acc parallel loop seq copy(Var)538  for(unsigned i = 0; i < 5; ++i);539  // expected-warning@+1{{OpenACC clause name 'pcopy' is a deprecated clause name and is now an alias for 'copy'}}540#pragma acc parallel loop seq pcopy(Var)541  for(unsigned i = 0; i < 5; ++i);542  // expected-warning@+1{{OpenACC clause name 'present_or_copy' is a deprecated clause name and is now an alias for 'copy'}}543#pragma acc parallel loop seq present_or_copy(Var)544  for(unsigned i = 0; i < 5; ++i);545  // expected-error@+1{{OpenACC 'use_device' clause is not valid on 'parallel loop' directive}}546#pragma acc parallel loop seq use_device(Var)547  for(unsigned i = 0; i < 5; ++i);548#pragma acc parallel loop seq attach(VarPtr)549  for(unsigned i = 0; i < 5; ++i);550  // expected-error@+1{{OpenACC 'delete' clause is not valid on 'parallel loop' directive}}551#pragma acc parallel loop seq delete(Var)552  for(unsigned i = 0; i < 5; ++i);553  // expected-error@+1{{OpenACC 'detach' clause is not valid on 'parallel loop' directive}}554#pragma acc parallel loop seq detach(Var)555  for(unsigned i = 0; i < 5; ++i);556  // expected-error@+1{{OpenACC 'device' clause is not valid on 'parallel loop' directive}}557#pragma acc parallel loop seq device(VarPtr)558  for(unsigned i = 0; i < 5; ++i);559#pragma acc parallel loop seq deviceptr(VarPtr)560  for(unsigned i = 0; i < 5; ++i);561  // expected-error@+1{{OpenACC 'device_resident' clause is not valid on 'parallel loop' directive}}562#pragma acc parallel loop seq device_resident(VarPtr)563  for(unsigned i = 0; i < 5; ++i);564#pragma acc parallel loop seq firstprivate(Var)565  for(unsigned i = 0; i < 5; ++i);566  // expected-error@+1{{OpenACC 'host' clause is not valid on 'parallel loop' directive}}567#pragma acc parallel loop seq host(Var)568  for(unsigned i = 0; i < 5; ++i);569  // expected-error@+1{{OpenACC 'link' clause is not valid on 'parallel loop' directive}}570#pragma acc parallel loop seq link(Var)571  for(unsigned i = 0; i < 5; ++i);572#pragma acc parallel loop seq no_create(Var)573  for(unsigned i = 0; i < 5; ++i);574#pragma acc parallel loop seq present(Var)575  for(unsigned i = 0; i < 5; ++i);576#pragma acc parallel loop seq private(Var)577  for(unsigned i = 0; i < 5; ++i);578#pragma acc parallel loop seq copyout(Var)579  for(unsigned i = 0; i < 5; ++i);580  // expected-warning@+1{{OpenACC clause name 'pcopyout' is a deprecated clause name and is now an alias for 'copyout'}}581#pragma acc parallel loop seq pcopyout(Var)582  for(unsigned i = 0; i < 5; ++i);583  // expected-warning@+1{{OpenACC clause name 'present_or_copyout' is a deprecated clause name and is now an alias for 'copyout'}}584#pragma acc parallel loop seq present_or_copyout(Var)585  for(unsigned i = 0; i < 5; ++i);586#pragma acc parallel loop seq copyin(Var)587  for(unsigned i = 0; i < 5; ++i);588  // expected-warning@+1{{OpenACC clause name 'pcopyin' is a deprecated clause name and is now an alias for 'copyin'}}589#pragma acc parallel loop seq pcopyin(Var)590  for(unsigned i = 0; i < 5; ++i);591  // expected-warning@+1{{OpenACC clause name 'present_or_copyin' is a deprecated clause name and is now an alias for 'copyin'}}592#pragma acc parallel loop seq present_or_copyin(Var)593  for(unsigned i = 0; i < 5; ++i);594#pragma acc parallel loop seq create(Var)595  for(unsigned i = 0; i < 5; ++i);596  // expected-warning@+1{{OpenACC clause name 'pcreate' is a deprecated clause name and is now an alias for 'create'}}597#pragma acc parallel loop seq pcreate(Var)598  for(unsigned i = 0; i < 5; ++i);599  // expected-warning@+1{{OpenACC clause name 'present_or_create' is a deprecated clause name and is now an alias for 'create'}}600#pragma acc parallel loop seq present_or_create(Var)601  for(unsigned i = 0; i < 5; ++i);602#pragma acc parallel loop seq reduction(+:Var)603  for(unsigned i = 0; i < 5; ++i);604#pragma acc parallel loop seq collapse(1)605  for(unsigned i = 0; i < 5; ++i);606  // expected-error@+1{{OpenACC 'bind' clause is not valid on 'parallel loop' directive}}607#pragma acc parallel loop seq bind(Var)608  for(unsigned i = 0; i < 5; ++i);609#pragma acc parallel loop seq vector_length(1)610  for(unsigned i = 0; i < 5; ++i);611#pragma acc parallel loop seq num_gangs(1)612  for(unsigned i = 0; i < 5; ++i);613#pragma acc parallel loop seq num_workers(1)614  for(unsigned i = 0; i < 5; ++i);615  // expected-error@+1{{OpenACC 'device_num' clause is not valid on 'parallel loop' directive}}616#pragma acc parallel loop seq device_num(1)617  for(unsigned i = 0; i < 5; ++i);618  // expected-error@+1{{OpenACC 'default_async' clause is not valid on 'parallel loop' directive}}619#pragma acc parallel loop seq default_async(1)620  for(unsigned i = 0; i < 5; ++i);621#pragma acc parallel loop seq device_type(*)622  for(unsigned i = 0; i < 5; ++i);623#pragma acc parallel loop seq dtype(*)624  for(unsigned i = 0; i < 5; ++i);625#pragma acc parallel loop seq async626  for(unsigned i = 0; i < 5; ++i);627#pragma acc parallel loop seq tile(1+2, 1)628  for(;;)629    for(unsigned i = 0; i < 5; ++i);630#pragma acc parallel loop seq wait631  for(unsigned i = 0; i < 5; ++i);632 633  // expected-error@+2{{OpenACC clause 'seq' may not appear on the same construct as a 'gang' clause on a 'parallel loop' construct}}634  // expected-note@+1{{previous 'gang' clause is here}}635#pragma acc parallel loop gang seq636  for(unsigned i = 0; i < 5; ++i);637  // expected-error@+2{{OpenACC clause 'seq' may not appear on the same construct as a 'worker' clause on a 'parallel loop' construct}}638  // expected-note@+1{{previous 'worker' clause is here}}639#pragma acc parallel loop worker seq640  for(unsigned i = 0; i < 5; ++i);641  // expected-error@+2{{OpenACC clause 'seq' may not appear on the same construct as a 'vector' clause on a 'parallel loop' construct}}642  // expected-note@+1{{previous 'vector' clause is here}}643#pragma acc parallel loop vector seq644  for(unsigned i = 0; i < 5; ++i);645  // expected-error@+1{{OpenACC 'finalize' clause is not valid on 'parallel loop' directive}}646#pragma acc parallel loop finalize seq647  for(unsigned i = 0; i < 5; ++i);648  // expected-error@+1{{OpenACC 'if_present' clause is not valid on 'parallel loop' directive}}649#pragma acc parallel loop if_present seq650  for(unsigned i = 0; i < 5; ++i);651  // expected-error@+1{{OpenACC 'nohost' clause is not valid on 'parallel loop' directive}}652#pragma acc parallel loop nohost seq653  for(unsigned i = 0; i < 5; ++i);654#pragma acc parallel loop default(none) seq655  for(unsigned i = 0; i < 5; ++i);656#pragma acc parallel loop if(1) seq657  for(unsigned i = 0; i < 5; ++i);658#pragma acc parallel loop self seq659  for(unsigned i = 0; i < 5; ++i);660#pragma acc parallel loop copy(Var) seq661  for(unsigned i = 0; i < 5; ++i);662  // expected-warning@+1{{OpenACC clause name 'pcopy' is a deprecated clause name and is now an alias for 'copy'}}663#pragma acc parallel loop pcopy(Var) seq664  for(unsigned i = 0; i < 5; ++i);665  // expected-warning@+1{{OpenACC clause name 'present_or_copy' is a deprecated clause name and is now an alias for 'copy'}}666#pragma acc parallel loop present_or_copy(Var) seq667  for(unsigned i = 0; i < 5; ++i);668  // expected-error@+1{{OpenACC 'use_device' clause is not valid on 'parallel loop' directive}}669#pragma acc parallel loop use_device(Var) seq670  for(unsigned i = 0; i < 5; ++i);671#pragma acc parallel loop attach(VarPtr) seq672  for(unsigned i = 0; i < 5; ++i);673  // expected-error@+1{{OpenACC 'delete' clause is not valid on 'parallel loop' directive}}674#pragma acc parallel loop delete(Var) seq675  for(unsigned i = 0; i < 5; ++i);676  // expected-error@+1{{OpenACC 'detach' clause is not valid on 'parallel loop' directive}}677#pragma acc parallel loop detach(Var) seq678  for(unsigned i = 0; i < 5; ++i);679  // expected-error@+1{{OpenACC 'device' clause is not valid on 'parallel loop' directive}}680#pragma acc parallel loop device(VarPtr) seq681  for(unsigned i = 0; i < 5; ++i);682#pragma acc parallel loop deviceptr(VarPtr) seq683  for(unsigned i = 0; i < 5; ++i);684  // expected-error@+1{{OpenACC 'device_resident' clause is not valid on 'parallel loop' directive}}685#pragma acc parallel loop device_resident(VarPtr) seq686  for(unsigned i = 0; i < 5; ++i);687#pragma acc parallel loop firstprivate(Var) seq688  for(unsigned i = 0; i < 5; ++i);689  // expected-error@+1{{OpenACC 'host' clause is not valid on 'parallel loop' directive}}690#pragma acc parallel loop host(Var) seq691  for(unsigned i = 0; i < 5; ++i);692  // expected-error@+1{{OpenACC 'link' clause is not valid on 'parallel loop' directive}}693#pragma acc parallel loop link(Var) seq694  for(unsigned i = 0; i < 5; ++i);695#pragma acc parallel loop no_create(Var) seq696  for(unsigned i = 0; i < 5; ++i);697#pragma acc parallel loop present(Var) seq698  for(unsigned i = 0; i < 5; ++i);699#pragma acc parallel loop private(Var) seq700  for(unsigned i = 0; i < 5; ++i);701#pragma acc parallel loop copyout(Var) seq702  for(unsigned i = 0; i < 5; ++i);703  // expected-warning@+1{{OpenACC clause name 'pcopyout' is a deprecated clause name and is now an alias for 'copyout'}}704#pragma acc parallel loop pcopyout(Var) seq705  for(unsigned i = 0; i < 5; ++i);706  // expected-warning@+1{{OpenACC clause name 'present_or_copyout' is a deprecated clause name and is now an alias for 'copyout'}}707#pragma acc parallel loop present_or_copyout(Var) seq708  for(unsigned i = 0; i < 5; ++i);709#pragma acc parallel loop copyin(Var) seq710  for(unsigned i = 0; i < 5; ++i);711  // expected-warning@+1{{OpenACC clause name 'pcopyin' is a deprecated clause name and is now an alias for 'copyin'}}712#pragma acc parallel loop pcopyin(Var) seq713  for(unsigned i = 0; i < 5; ++i);714  // expected-warning@+1{{OpenACC clause name 'present_or_copyin' is a deprecated clause name and is now an alias for 'copyin'}}715#pragma acc parallel loop present_or_copyin(Var) seq716  for(unsigned i = 0; i < 5; ++i);717#pragma acc parallel loop create(Var) seq718  for(unsigned i = 0; i < 5; ++i);719  // expected-warning@+1{{OpenACC clause name 'pcreate' is a deprecated clause name and is now an alias for 'create'}}720#pragma acc parallel loop pcreate(Var) seq721  for(unsigned i = 0; i < 5; ++i);722  // expected-warning@+1{{OpenACC clause name 'present_or_create' is a deprecated clause name and is now an alias for 'create'}}723#pragma acc parallel loop present_or_create(Var) seq724  for(unsigned i = 0; i < 5; ++i);725#pragma acc parallel loop reduction(+:Var) seq726  for(unsigned i = 0; i < 5; ++i);727#pragma acc parallel loop collapse(1) seq728  for(unsigned i = 0; i < 5; ++i);729  // expected-error@+1{{OpenACC 'bind' clause is not valid on 'parallel loop' directive}}730#pragma acc parallel loop bind(Var) seq731  for(unsigned i = 0; i < 5; ++i);732#pragma acc parallel loop vector_length(1) seq733  for(unsigned i = 0; i < 5; ++i);734#pragma acc parallel loop num_gangs(1) seq735  for(unsigned i = 0; i < 5; ++i);736#pragma acc parallel loop num_workers(1) seq737  for(unsigned i = 0; i < 5; ++i);738  // expected-error@+1{{OpenACC 'device_num' clause is not valid on 'parallel loop' directive}}739#pragma acc parallel loop device_num(1) seq740  for(unsigned i = 0; i < 5; ++i);741  // expected-error@+1{{OpenACC 'default_async' clause is not valid on 'parallel loop' directive}}742#pragma acc parallel loop default_async(1) seq743  for(unsigned i = 0; i < 5; ++i);744#pragma acc parallel loop device_type(*) seq745  for(unsigned i = 0; i < 5; ++i);746#pragma acc parallel loop dtype(*) seq747  for(unsigned i = 0; i < 5; ++i);748#pragma acc parallel loop async seq749  for(unsigned i = 0; i < 5; ++i);750#pragma acc parallel loop tile(1+2, 1) seq751  for(;;)752    for(unsigned i = 0; i < 5; ++i);753#pragma acc parallel loop wait seq754  for(unsigned i = 0; i < 5; ++i);755}756