192 lines · plain
1! RUN: %flang_fc1 -emit-hlfir -fopenmp %s -o - | FileCheck %s2 3! CHECK-LABEL: func.func @_QPdistribute_parallel_do_generic() {4subroutine distribute_parallel_do_generic()5 ! CHECK: omp.target6 ! CHECK-NOT: host_eval({{.*}})7 ! CHECK-SAME: {8 !$omp target9 !$omp teams10 !$omp distribute parallel do11 do i = 1, 1012 call foo(i)13 end do14 !$omp end distribute parallel do15 call bar() !< Prevents this from being SPMD.16 !$omp end teams17 !$omp end target18 19 ! CHECK: omp.target20 ! CHECK-NOT: host_eval({{.*}})21 ! CHECK-SAME: {22 !$omp target teams23 !$omp distribute parallel do24 do i = 1, 1025 call foo(i)26 end do27 !$omp end distribute parallel do28 call bar() !< Prevents this from being SPMD.29 !$omp end target teams30 31 ! CHECK: omp.target32 ! CHECK-NOT: host_eval({{.*}})33 ! CHECK-SAME: {34 !$omp target teams35 !$omp distribute parallel do36 do i = 1, 1037 call foo(i)38 end do39 !$omp end distribute parallel do40 41 !$omp distribute parallel do42 do i = 1, 1043 call foo(i)44 end do45 !$omp end distribute parallel do46 !$omp end target teams47end subroutine distribute_parallel_do_generic48 49! CHECK-LABEL: func.func @_QPdistribute_parallel_do_spmd() {50subroutine distribute_parallel_do_spmd()51 ! CHECK: omp.target52 ! CHECK-SAME: host_eval({{.*}})53 !$omp target54 !$omp teams55 !$omp distribute parallel do56 do i = 1, 1057 call foo(i)58 end do59 !$omp end distribute parallel do60 !$omp end teams61 !$omp end target62 63 ! CHECK: omp.target64 ! CHECK-SAME: host_eval({{.*}})65 !$omp target teams66 !$omp distribute parallel do67 do i = 1, 1068 call foo(i)69 end do70 !$omp end distribute parallel do71 !$omp end target teams72end subroutine distribute_parallel_do_spmd73 74! CHECK-LABEL: func.func @_QPdistribute_parallel_do_simd_generic() {75subroutine distribute_parallel_do_simd_generic()76 ! CHECK: omp.target77 ! CHECK-NOT: host_eval({{.*}})78 ! CHECK-SAME: {79 !$omp target80 !$omp teams81 !$omp distribute parallel do simd82 do i = 1, 1083 call foo(i)84 end do85 !$omp end distribute parallel do simd86 call bar() !< Prevents this from being SPMD.87 !$omp end teams88 !$omp end target89 90 ! CHECK: omp.target91 ! CHECK-NOT: host_eval({{.*}})92 ! CHECK-SAME: {93 !$omp target teams94 !$omp distribute parallel do simd95 do i = 1, 1096 call foo(i)97 end do98 !$omp end distribute parallel do simd99 call bar() !< Prevents this from being SPMD.100 !$omp end target teams101 102 ! CHECK: omp.target103 ! CHECK-NOT: host_eval({{.*}})104 ! CHECK-SAME: {105 !$omp target teams106 !$omp distribute parallel do simd107 do i = 1, 10108 call foo(i)109 end do110 !$omp end distribute parallel do simd111 112 !$omp distribute parallel do simd113 do i = 1, 10114 call foo(i)115 end do116 !$omp end distribute parallel do simd117 !$omp end target teams118end subroutine distribute_parallel_do_simd_generic119 120! CHECK-LABEL: func.func @_QPdistribute_parallel_do_simd_spmd() {121subroutine distribute_parallel_do_simd_spmd()122 ! CHECK: omp.target123 ! CHECK-SAME: host_eval({{.*}})124 !$omp target125 !$omp teams126 !$omp distribute parallel do simd127 do i = 1, 10128 call foo(i)129 end do130 !$omp end distribute parallel do simd131 !$omp end teams132 !$omp end target133 134 ! CHECK: omp.target135 ! CHECK-SAME: host_eval({{.*}})136 !$omp target teams137 !$omp distribute parallel do simd138 do i = 1, 10139 call foo(i)140 end do141 !$omp end distribute parallel do simd142 !$omp end target teams143end subroutine distribute_parallel_do_simd_spmd144 145! CHECK-LABEL: func.func @_QPteams_distribute_parallel_do_spmd() {146subroutine teams_distribute_parallel_do_spmd()147 ! CHECK: omp.target148 ! CHECK-SAME: host_eval({{.*}})149 !$omp target150 !$omp teams distribute parallel do151 do i = 1, 10152 call foo(i)153 end do154 !$omp end teams distribute parallel do155 !$omp end target156end subroutine teams_distribute_parallel_do_spmd157 158! CHECK-LABEL: func.func @_QPteams_distribute_parallel_do_simd_spmd() {159subroutine teams_distribute_parallel_do_simd_spmd()160 ! CHECK: omp.target161 ! CHECK-SAME: host_eval({{.*}})162 !$omp target163 !$omp teams distribute parallel do simd164 do i = 1, 10165 call foo(i)166 end do167 !$omp end teams distribute parallel do simd168 !$omp end target169end subroutine teams_distribute_parallel_do_simd_spmd170 171! CHECK-LABEL: func.func @_QPtarget_teams_distribute_parallel_do_spmd() {172subroutine target_teams_distribute_parallel_do_spmd()173 ! CHECK: omp.target174 ! CHECK-SAME: host_eval({{.*}})175 !$omp target teams distribute parallel do176 do i = 1, 10177 call foo(i)178 end do179 !$omp end target teams distribute parallel do180end subroutine target_teams_distribute_parallel_do_spmd181 182! CHECK-LABEL: func.func @_QPtarget_teams_distribute_parallel_do_simd_spmd() {183subroutine target_teams_distribute_parallel_do_simd_spmd()184 ! CHECK: omp.target185 ! CHECK-SAME: host_eval({{.*}})186 !$omp target teams distribute parallel do simd187 do i = 1, 10188 call foo(i)189 end do190 !$omp end target teams distribute parallel do simd191end subroutine target_teams_distribute_parallel_do_simd_spmd192