brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.0 KiB · 2b8caa7 Raw
47 lines · plain
1!RUN: %flang_fc1 -emit-hlfir -fopenmp %s -o - | FileCheck %s2 3! Check the first entry point4!CHECK: func.func @_QPprocess_a5!CHECK: omp.parallel6!CHECK: omp.wsloop7!CHECK: %[[V0:[0-9]+]] = fir.load %{{[0-9]+}} : !fir.ref<f32>8!CHECK: %[[V1:[a-z_0-9]+]] = arith.constant 2.000000e+00 : f329!CHECK:   = arith.mulf %[[V0]], %[[V1]] fastmath<contract> : f3210!CHECK: omp.terminator11!CHECK-NOT: omp12!CHECK: return13 14! Check the second entry point15!CHECK: func.func @_QPprocess_b16!CHECK: omp.parallel17!CHECK: fir.do_loop18!CHECK: %[[V3:[0-9]+]] = fir.load %[[V2:[0-9]+]]#0 : !fir.ref<i32>19!CHECK: %[[V4:[0-9]+]] = fir.load %[[V2]]#0 : !fir.ref<i32>20!CHECK:   = arith.muli %[[V3]], %[[V4]] : i3221!CHECK: omp.terminator22!CHECK-NOT: omp23!CHECK: return24 25subroutine process_a(n, a)26  integer, intent(in) :: n27  real, intent(inout) :: a(n)28  integer :: i29 30  !$omp parallel do31  do i = 1, n32    a(i) = a(i) * 2.033  end do34  !$omp end parallel do35 36  return37 38  entry process_b(n, b)39    40  !$omp parallel41  do i = 1, n42    a(i) = i * i43  end do44  !$omp end parallel45 46end subroutine process_a47