brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.0 KiB · 7fc30b4 Raw
22 lines · plain
1! RUN: %flang_fc1 -emit-hlfir -fopenmp -fopenmp-version=50 %s -o - | FileCheck %s2!3! Checks:4!  - C_PTR mappings expand to `__address` member with CLOSE under USM paths.5!  - use_device_ptr does not implicitly expand member operands in the clause.6 7subroutine only_cptr_use_device_ptr8  use iso_c_binding9  type(c_ptr) :: cptr10  integer :: i11 12  !$omp target data use_device_ptr(cptr) map(tofrom: i)13  !$omp end target data14end subroutine15 16! CHECK-LABEL: func.func @_QPonly_cptr_use_device_ptr()17! CHECK: %[[I_MAP:.*]] = omp.map.info var_ptr(%{{.*}} : !fir.ref<i32>, i32) map_clauses(tofrom) capture(ByRef) -> !fir.ref<i32> {name = "i"}18! CHECK: %[[CP_MAP:.*]] = omp.map.info var_ptr(%{{.*}} : !fir.ref<!fir.type<{{.*}}__builtin_c_ptr{{.*}}>>, !fir.type<{{.*}}__builtin_c_ptr{{.*}}>) map_clauses(return_param) capture(ByRef) -> !fir.ref<!fir.type<{{.*}}__builtin_c_ptr{{.*}}>>19! CHECK: omp.target_data map_entries(%[[I_MAP]] : !fir.ref<i32>) use_device_ptr(%[[CP_MAP]] -> %{{.*}} : !fir.ref<!fir.type<{{.*}}__builtin_c_ptr{{.*}}>>) {20! CHECK:   omp.terminator21! CHECK: }22