[RISCV] Rename a lambda to have plural nouns to reflect that it contains a loop. NFC
[llvm-project.git] / flang / test / Lower / OpenMP / parallel-sections.f90
blob594725779c131ddf0c1e6788a0bf17e90ab48f06
1 ! REQUIRES: openmp_runtime
3 !RUN: %flang_fc1 -emit-hlfir %openmp_flags %s -o - | FileCheck %s
5 !===============================================================================
6 ! Parallel sections construct
7 !===============================================================================
9 !CHECK: func @_QPomp_parallel_sections
10 subroutine omp_parallel_sections(x, y)
11 integer, intent(inout) :: x, y
12 !CHECK: omp.parallel {
13 !CHECK: omp.sections {
14 !$omp parallel sections
15 !CHECK: omp.section {
16 !$omp section
17 !CHECK: fir.load
18 !CHECK: arith.addi
19 !CHECK: hlfir.assign
20 x = x + 12
21 !CHECK: omp.terminator
22 !CHECK: omp.section {
23 !$omp section
24 !CHECK: fir.load
25 !CHECK: arith.subi
26 !CHECK: hlfir.assign
27 y = y - 5
28 !CHECK: omp.terminator
29 !CHECK: omp.terminator
30 !CHECK: omp.terminator
31 !$omp end parallel sections
32 end subroutine omp_parallel_sections
34 !===============================================================================
35 ! Parallel sections construct with allocate clause
36 !===============================================================================
38 !CHECK: func @_QPomp_parallel_sections
39 subroutine omp_parallel_sections_allocate(x, y)
40 use omp_lib
41 integer, intent(inout) :: x, y
42 !CHECK: omp.parallel
43 !CHECK: %[[allocator_1:.*]] = arith.constant 4 : i64
44 !CHECK: omp.sections allocate(%[[allocator_1]] : i64 -> %{{.*}} : !fir.ref<i32>) {
45 !$omp parallel sections allocate(omp_high_bw_mem_alloc: x) private(x, y)
46 !CHECK: omp.section {
47 !$omp section
48 x = x + 12
49 !CHECK: omp.terminator
50 !CHECK: omp.section {
51 !$omp section
52 y = y + 5
53 !CHECK: omp.terminator
54 !CHECK: omp.terminator
55 !CHECK: omp.terminator
56 !$omp end parallel sections
57 end subroutine omp_parallel_sections_allocate