@@ -506,26 +506,6 @@ program openacc_clause_validity
506
506
end do
507
507
! $acc end parallel loop
508
508
509
- ! $acc kernels device_type(*) async
510
- do i = 1 , N
511
- a(i) = 3.14
512
- end do
513
- ! $acc end kernels
514
-
515
- ! ERROR: Clause IF is not allowed after clause DEVICE_TYPE on the KERNELS directive
516
- ! $acc kernels device_type(*) if(.TRUE.)
517
- do i = 1 , N
518
- a(i) = 3.14
519
- end do
520
- ! $acc end kernels
521
-
522
- ! ERROR: Clause IF is not allowed after clause DEVICE_TYPE on the KERNELS LOOP directive
523
- ! $acc kernels loop device_type(*) if(.TRUE.)
524
- do i = 1 , N
525
- a(i) = 3.14
526
- end do
527
- ! $acc end kernels loop
528
-
529
509
! $acc serial device_type(*) async
530
510
do i = 1 , N
531
511
a(i) = 3.14
@@ -622,18 +602,128 @@ program openacc_clause_validity
622
602
reduction_l = d(i) .neqv. e(i)
623
603
end do
624
604
605
+ ! $acc kernels async
606
+ ! $acc end kernels
607
+
608
+ ! $acc kernels async(1)
609
+ ! $acc end kernels
610
+
611
+ ! $acc kernels async(async1)
612
+ ! $acc end kernels
613
+
614
+ ! $acc kernels wait(wait1)
615
+ ! $acc end kernels
616
+
617
+ ! $acc kernels wait(wait1, wait2)
618
+ ! $acc end kernels
619
+
625
620
! $acc kernels wait(1, 2) async(3)
626
621
! $acc end kernels
627
622
628
623
! $acc kernels wait(queues: 1, 2) async(3)
629
624
! $acc end kernels
630
625
626
+ ! $acc kernels wait(1) wait(2) async(3)
627
+ ! $acc end kernels
628
+
631
629
! $acc kernels wait(devnum: 1: 1, 2) async(3)
632
630
! $acc end kernels
633
631
634
632
! $acc kernels wait(devnum: 1: queues: 1, 2) async(3)
635
633
! $acc end kernels
636
634
635
+ ! $acc kernels num_gangs(8)
636
+ ! $acc end kernels
637
+
638
+ ! $acc kernels num_workers(8)
639
+ ! $acc end kernels
640
+
641
+ ! $acc kernels vector_length(128)
642
+ ! $acc end kernels
643
+
644
+ ! $acc kernels if(.true.)
645
+ ! $acc end kernels
646
+
647
+ ! $acc kernels if(ifCondition)
648
+ ! $acc end kernels
649
+
650
+ ! ERROR: At most one IF clause can appear on the KERNELS directive
651
+ ! $acc kernels if(.true.) if(ifCondition)
652
+ ! $acc end kernels
653
+
654
+ ! $acc kernels self
655
+ ! $acc end kernels
656
+
657
+ ! $acc kernels self(.true.)
658
+ ! $acc end kernels
659
+
660
+ ! $acc kernels self(ifCondition)
661
+ ! $acc end kernels
662
+
663
+ ! $acc kernels copy(aa) copyin(bb) copyout(cc)
664
+ ! $acc end kernels
665
+
666
+ ! $acc kernels copy(aa, bb) copyout(zero: cc)
667
+ ! $acc end kernels
668
+
669
+ ! $acc kernels present(aa, bb) create(cc)
670
+ ! $acc end kernels
671
+
672
+ ! $acc kernels copyin(readonly: aa, bb) create(zero: cc)
673
+ ! $acc end kernels
674
+
675
+ ! $acc kernels deviceptr(aa, bb) no_create(cc)
676
+ ! $acc end kernels
677
+
678
+ ! $acc kernels attach(aa, bb, cc)
679
+ ! $acc end kernels
680
+
681
+ ! ERROR: PRIVATE clause is not allowed on the KERNELS directive
682
+ ! $acc kernels private(aa, bb, cc)
683
+ ! $acc end kernels
684
+
685
+ ! $acc kernels default(none)
686
+ ! $acc end kernels
687
+
688
+ ! $acc kernels default(present)
689
+ ! $acc end kernels
690
+
691
+ ! ERROR: At most one DEFAULT clause can appear on the KERNELS directive
692
+ ! $acc kernels default(none) default(present)
693
+ ! $acc end kernels
694
+
695
+ ! $acc kernels device_type(*)
696
+ ! $acc end kernels
697
+
698
+ ! $acc kernels device_type(1)
699
+ ! $acc end kernels
700
+
701
+ ! $acc kernels device_type(1, 3)
702
+ ! $acc end kernels
703
+
704
+ ! $acc kernels device_type(*) async wait num_gangs(8) num_workers(8) vector_length(128)
705
+ ! $acc end kernels
706
+
707
+ ! $acc kernels device_type(*) async
708
+ do i = 1 , N
709
+ a(i) = 3.14
710
+ end do
711
+ ! $acc end kernels
712
+
713
+ ! ERROR: Clause IF is not allowed after clause DEVICE_TYPE on the KERNELS directive
714
+ ! $acc kernels device_type(*) if(.TRUE.)
715
+ do i = 1 , N
716
+ a(i) = 3.14
717
+ end do
718
+ ! $acc end kernels
719
+
720
+ ! ERROR: Clause IF is not allowed after clause DEVICE_TYPE on the KERNELS LOOP directive
721
+ ! $acc kernels loop device_type(*) if(.TRUE.)
722
+ do i = 1 , N
723
+ a(i) = 3.14
724
+ end do
725
+ ! $acc end kernels loop
726
+
637
727
! $acc wait
638
728
639
729
! $acc wait async
0 commit comments