brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.3 KiB · 52a1f31 Raw
43 lines · plain
1! Tests delayed privatization works for implicit capture of scalars similarly to2! the way it works for explicitly firstprivitized scalars.3 4! RUN: %flang_fc1 -emit-mlir -fopenmp -mmlir --enable-delayed-privatization-staging \5! RUN:   -o - %s 2>&1 | FileCheck %s6 7! CHECK-LABEL:   omp.private {type = firstprivate} @_QFExdgfx_firstprivate_i32 : i32 copy {8! CHECK:         ^bb0(%{{.*}}: !fir.ref<i32>, %{{.*}}: !fir.ref<i32>):9! CHECK:           %{{.*}} = fir.load %{{.*}} : !fir.ref<i32>10! CHECK:           fir.store %{{.*}} to %{{.*}} : !fir.ref<i32>11! CHECK:           omp.yield(%{{.*}} : !fir.ref<i32>)12! CHECK:         }13 14! CHECK-LABEL:   omp.private {type = firstprivate} @_QFExfpvx_firstprivate_i32 : i32 copy {15! CHECK:         ^bb0(%{{.*}}: !fir.ref<i32>, %{{.*}}: !fir.ref<i32>):16! CHECK:           %{{.*}} = fir.load %{{.*}} : !fir.ref<i32>17! CHECK:           fir.store %{{.*}} to %{{.*}} : !fir.ref<i32>18! CHECK:           omp.yield(%{{.*}} : !fir.ref<i32>)19! CHECK:         }20 21! CHECK:  %[[VAL_0:.*]] = fir.alloca i32 {bindc_name = "xdgfx", uniq_name = "_QFExdgfx"}22! CHECK:  %[[VAL_1:.*]] = fir.declare %[[VAL_0]] {uniq_name = "_QFExdgfx"} : (!fir.ref<i32>) -> !fir.ref<i32>23! CHECK:  %[[VAL_2:.*]] = fir.alloca i32 {bindc_name = "xfpvx", uniq_name = "_QFExfpvx"}24! CHECK:  %[[VAL_3:.*]] = fir.declare %[[VAL_2]] {uniq_name = "_QFExfpvx"} : (!fir.ref<i32>) -> !fir.ref<i32>25! CHECK:  %[[VAL_4:.*]] = omp.map.info var_ptr(%[[VAL_3]] : !fir.ref<i32>, i32) map_clauses(to) capture(ByCopy) -> !fir.ref<i32>26! CHECK:  %[[VAL_5:.*]] = omp.map.info var_ptr(%[[VAL_1]] : !fir.ref<i32>, i32) map_clauses(to) capture(ByCopy) -> !fir.ref<i32>27 28! CHECK:  omp.target map_entries(%[[VAL_4]] -> %{{.*}}, %[[VAL_5]] -> %{{.*}} : !fir.ref<i32>, !fir.ref<i32>) private(@_QFExfpvx_firstprivate_i32 %[[VAL_3]] -> %[[VAL_6:.*]] [map_idx=0], @_QFExdgfx_firstprivate_i32 %[[VAL_1]] -> %[[VAL_7:.*]] [map_idx=1] : !fir.ref<i32>, !fir.ref<i32>) {29! CHECK:  %{{.*}} = fir.declare %[[VAL_6]] {uniq_name = "_QFExfpvx"} : (!fir.ref<i32>) -> !fir.ref<i32>30! CHECK:  %{{.*}} = fir.declare %[[VAL_7]] {uniq_name = "_QFExdgfx"} : (!fir.ref<i32>) -> !fir.ref<i32>31 32program test_default_implicit_firstprivate33  implicit none34  integer :: xdgfx, xfpvx35  xdgfx = 136  xfpvx = 237  !$omp target firstprivate(xfpvx)38  xdgfx = 4239  xfpvx = 4340  !$omp end target41  write(*,*) xdgfx, xfpvx42end program43