brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.3 KiB · 14d860c Raw
35 lines · plain
1! RUN: %flang_fc1 -fopenmp -mmlir --enable-delayed-privatization-staging=true -emit-hlfir %s -o - | FileCheck %s2 3subroutine first_and_lastprivate4  integer i5  integer :: var = 16 7  !$omp parallel do firstprivate(var) lastprivate(var)8  do i=1,19  end do10  !$omp end parallel do11end subroutine12 13! CHECK:  omp.private {type = firstprivate} @{{.*}}Evar_firstprivate_i32 : {{.*}} copy {14! CHECK: ^{{.*}}(%[[ORIG_REF:.*]]: {{.*}}, %[[PRIV_REF:.*]]: {{.*}}):15! CHECK:    %[[ORIG_VAL:.*]] = fir.load %[[ORIG_REF]]16! CHECK:    hlfir.assign %[[ORIG_VAL]] to %[[PRIV_REF]]17! CHECK:    omp.yield(%[[PRIV_REF]] : !fir.ref<i32>)18! CHECK:  }19 20! CHECK:  func.func @{{.*}}first_and_lastprivate()21! CHECK:    %[[ORIG_VAR_DECL:.*]]:2 = hlfir.declare %{{.*}} {uniq_name = "{{.*}}Evar"}22! CHECK:    omp.parallel {23! CHECK:      omp.wsloop private(@{{.*}}var_firstprivate_i32 {{.*}}) private_barrier {24! CHECK:        omp.loop_nest {{.*}} {25! CHECK:          %[[PRIV_VAR_DECL:.*]]:2 = hlfir.declare %{{.*}} {uniq_name = "{{.*}}Evar"}26! CHECK:          fir.if %{{.*}} {27! CHECK:            %[[PRIV_VAR_VAL:.*]] = fir.load %[[PRIV_VAR_DECL]]#0 : !fir.ref<i32>28! CHECK:            hlfir.assign %[[PRIV_VAR_VAL]] to %[[ORIG_VAR_DECL]]#029! CHECK:          }30! CHECK:          omp.yield31! CHECK:        }32! CHECK:      }33! CHECK:      omp.terminator34! CHECK:    }35