@@ -11,18 +11,56 @@ program main
11
11
! TODO When they are supported, add tests for:
12
12
! - DISTRIBUTE PARALLEL DO
13
13
! - DISTRIBUTE PARALLEL DO SIMD
14
- ! - DISTRIBUTE SIMD
15
14
! - PARALLEL SECTIONS
16
15
! - PARALLEL WORKSHARE
17
16
! - TARGET TEAMS DISTRIBUTE PARALLEL DO
18
17
! - TARGET TEAMS DISTRIBUTE PARALLEL DO SIMD
19
- ! - TARGET TEAMS DISTRIBUTE SIMD
20
18
! - TARGET UPDATE
21
19
! - TASKLOOP
22
20
! - TASKLOOP SIMD
23
21
! - TEAMS DISTRIBUTE PARALLEL DO
24
22
! - TEAMS DISTRIBUTE PARALLEL DO SIMD
25
- ! - TEAMS DISTRIBUTE SIMD
23
+
24
+ ! ----------------------------------------------------------------------------
25
+ ! DISTRIBUTE SIMD
26
+ ! ----------------------------------------------------------------------------
27
+ ! $omp teams
28
+
29
+ ! CHECK: omp.distribute
30
+ ! CHECK-NOT: if({{.*}})
31
+ ! CHECK-SAME: {
32
+ ! CHECK-NEXT: omp.simd
33
+ ! CHECK-NOT: if({{.*}})
34
+ ! CHECK-SAME: {
35
+ ! CHECK-NEXT: omp.loop_nest
36
+ ! $omp distribute simd
37
+ do i = 1 , 10
38
+ end do
39
+ ! $omp end distribute simd
40
+
41
+ ! CHECK: omp.distribute
42
+ ! CHECK-NOT: if({{.*}})
43
+ ! CHECK-SAME: {
44
+ ! CHECK-NEXT: omp.simd
45
+ ! CHECK-SAME: if({{.*}})
46
+ ! CHECK-NEXT: omp.loop_nest
47
+ ! $omp distribute simd if(.true.)
48
+ do i = 1 , 10
49
+ end do
50
+ ! $omp end distribute simd
51
+
52
+ ! CHECK: omp.distribute
53
+ ! CHECK-NOT: if({{.*}})
54
+ ! CHECK-SAME: {
55
+ ! CHECK-NEXT: omp.simd
56
+ ! CHECK-SAME: if({{.*}})
57
+ ! CHECK-NEXT: omp.loop_nest
58
+ ! $omp distribute simd if(simd: .true.)
59
+ do i = 1 , 10
60
+ end do
61
+ ! $omp end distribute simd
62
+
63
+ ! $omp end teams
26
64
27
65
! ----------------------------------------------------------------------------
28
66
! DO SIMD
@@ -623,6 +661,108 @@ program main
623
661
end do
624
662
! $omp end target teams distribute
625
663
664
+ ! ----------------------------------------------------------------------------
665
+ ! TARGET TEAMS DISTRIBUTE SIMD
666
+ ! ----------------------------------------------------------------------------
667
+ ! CHECK: omp.target
668
+ ! CHECK-NOT: if({{.*}})
669
+ ! CHECK-SAME: {
670
+ ! CHECK: omp.teams
671
+ ! CHECK-NOT: if({{.*}})
672
+ ! CHECK-SAME: {
673
+ ! CHECK: omp.distribute
674
+ ! CHECK-NOT: if({{.*}})
675
+ ! CHECK-SAME: {
676
+ ! CHECK-NEXT: omp.simd
677
+ ! CHECK-NOT: if({{.*}})
678
+ ! CHECK-SAME: {
679
+ ! CHECK-NEXT: omp.loop_nest
680
+ ! $omp target teams distribute simd
681
+ do i = 1 , 10
682
+ end do
683
+ ! $omp end target teams distribute simd
684
+
685
+ ! CHECK: omp.target
686
+ ! CHECK-SAME: if({{.*}})
687
+ ! CHECK: omp.teams
688
+ ! CHECK-SAME: if({{.*}})
689
+ ! CHECK: omp.distribute
690
+ ! CHECK-NOT: if({{.*}})
691
+ ! CHECK-SAME: {
692
+ ! CHECK-NEXT: omp.simd
693
+ ! CHECK-SAME: if({{.*}})
694
+ ! CHECK-NEXT: omp.loop_nest
695
+ ! $omp target teams distribute simd if(.true.)
696
+ do i = 1 , 10
697
+ end do
698
+ ! $omp end target teams distribute simd
699
+
700
+ ! CHECK: omp.target
701
+ ! CHECK-SAME: if({{.*}})
702
+ ! CHECK: omp.teams
703
+ ! CHECK-SAME: if({{.*}})
704
+ ! CHECK: omp.distribute
705
+ ! CHECK-NOT: if({{.*}})
706
+ ! CHECK-SAME: {
707
+ ! CHECK-NEXT: omp.simd
708
+ ! CHECK-SAME: if({{.*}})
709
+ ! CHECK-NEXT: omp.loop_nest
710
+ ! $omp target teams distribute simd if(target: .true.) if(teams: .false.) if(simd: .false.)
711
+ do i = 1 , 10
712
+ end do
713
+ ! $omp end target teams distribute simd
714
+
715
+ ! CHECK: omp.target
716
+ ! CHECK-SAME: if({{.*}})
717
+ ! CHECK: omp.teams
718
+ ! CHECK-NOT: if({{.*}})
719
+ ! CHECK-SAME: {
720
+ ! CHECK: omp.distribute
721
+ ! CHECK-NOT: if({{.*}})
722
+ ! CHECK-SAME: {
723
+ ! CHECK-NEXT: omp.simd
724
+ ! CHECK-NOT: if({{.*}})
725
+ ! CHECK-SAME: {
726
+ ! CHECK-NEXT: omp.loop_nest
727
+ ! $omp target teams distribute simd if(target: .true.)
728
+ do i = 1 , 10
729
+ end do
730
+ ! $omp end target teams distribute simd
731
+
732
+ ! CHECK: omp.target
733
+ ! CHECK-NOT: if({{.*}})
734
+ ! CHECK-SAME: {
735
+ ! CHECK: omp.teams
736
+ ! CHECK-SAME: if({{.*}})
737
+ ! CHECK: omp.distribute
738
+ ! CHECK-NOT: if({{.*}})
739
+ ! CHECK-SAME: {
740
+ ! CHECK-NEXT: omp.simd
741
+ ! CHECK-NOT: if({{.*}})
742
+ ! CHECK-SAME: {
743
+ ! CHECK-NEXT: omp.loop_nest
744
+ ! $omp target teams distribute simd if(teams: .true.)
745
+ do i = 1 , 10
746
+ end do
747
+ ! $omp end target teams distribute simd
748
+
749
+ ! CHECK: omp.target
750
+ ! CHECK-NOT: if({{.*}})
751
+ ! CHECK-SAME: {
752
+ ! CHECK: omp.teams
753
+ ! CHECK-NOT: if({{.*}})
754
+ ! CHECK-SAME: {
755
+ ! CHECK: omp.distribute
756
+ ! CHECK-NOT: if({{.*}})
757
+ ! CHECK-SAME: {
758
+ ! CHECK-NEXT: omp.simd
759
+ ! CHECK-SAME: if({{.*}})
760
+ ! CHECK-NEXT: omp.loop_nest
761
+ ! $omp target teams distribute simd if(simd: .true.)
762
+ do i = 1 , 10
763
+ end do
764
+ ! $omp end target teams distribute simd
765
+
626
766
! ----------------------------------------------------------------------------
627
767
! TARGET TEAMS
628
768
! ----------------------------------------------------------------------------
@@ -726,6 +866,78 @@ program main
726
866
end do
727
867
! $omp end teams distribute
728
868
869
+ ! ----------------------------------------------------------------------------
870
+ ! TEAMS DISTRIBUTE SIMD
871
+ ! ----------------------------------------------------------------------------
872
+ ! CHECK: omp.teams
873
+ ! CHECK-NOT: if({{.*}})
874
+ ! CHECK-SAME: {
875
+ ! CHECK: omp.distribute
876
+ ! CHECK-NOT: if({{.*}})
877
+ ! CHECK-SAME: {
878
+ ! CHECK-NEXT: omp.simd
879
+ ! CHECK-NOT: if({{.*}})
880
+ ! CHECK-SAME: {
881
+ ! CHECK-NEXT: omp.loop_nest
882
+ ! $omp teams distribute simd
883
+ do i = 1 , 10
884
+ end do
885
+ ! $omp end teams distribute simd
886
+
887
+ ! CHECK: omp.teams
888
+ ! CHECK-SAME: if({{.*}})
889
+ ! CHECK: omp.distribute
890
+ ! CHECK-NOT: if({{.*}})
891
+ ! CHECK-SAME: {
892
+ ! CHECK-NEXT: omp.simd
893
+ ! CHECK-SAME: if({{.*}})
894
+ ! CHECK-NEXT: omp.loop_nest
895
+ ! $omp teams distribute simd if(.true.)
896
+ do i = 1 , 10
897
+ end do
898
+ ! $omp end teams distribute simd
899
+
900
+ ! CHECK: omp.teams
901
+ ! CHECK-SAME: if({{.*}})
902
+ ! CHECK: omp.distribute
903
+ ! CHECK-NOT: if({{.*}})
904
+ ! CHECK-SAME: {
905
+ ! CHECK-NEXT: omp.simd
906
+ ! CHECK-SAME: if({{.*}})
907
+ ! CHECK-NEXT: omp.loop_nest
908
+ ! $omp teams distribute simd if(teams: .true.) if(simd: .false.)
909
+ do i = 1 , 10
910
+ end do
911
+ ! $omp end teams distribute simd
912
+
913
+ ! CHECK: omp.teams
914
+ ! CHECK-SAME: if({{.*}})
915
+ ! CHECK: omp.distribute
916
+ ! CHECK-NOT: if({{.*}})
917
+ ! CHECK-SAME: {
918
+ ! CHECK-NEXT: omp.simd
919
+ ! CHECK-NOT: if({{.*}})
920
+ ! CHECK-SAME: {
921
+ ! CHECK-NEXT: omp.loop_nest
922
+ ! $omp teams distribute simd if(teams: .true.)
923
+ do i = 1 , 10
924
+ end do
925
+ ! $omp end teams distribute simd
926
+
927
+ ! CHECK: omp.teams
928
+ ! CHECK-NOT: if({{.*}})
929
+ ! CHECK-SAME: {
930
+ ! CHECK: omp.distribute
931
+ ! CHECK-NOT: if({{.*}})
932
+ ! CHECK-SAME: {
933
+ ! CHECK-NEXT: omp.simd
934
+ ! CHECK-SAME: if({{.*}})
935
+ ! CHECK-NEXT: omp.loop_nest
936
+ ! $omp teams distribute simd if(simd: .true.)
937
+ do i = 1 , 10
938
+ end do
939
+ ! $omp end teams distribute simd
940
+
729
941
! ----------------------------------------------------------------------------
730
942
! TEAMS
731
943
! ----------------------------------------------------------------------------
0 commit comments