Skip to content

Commit 0d80597

Browse files
[Flang][OpenMP] NFC: Move flush llvm lowering test to a separate file
1 parent 4d39255 commit 0d80597

File tree

1 file changed

+37
-1
lines changed

1 file changed

+37
-1
lines changed

flang/test/Fir/convert-to-llvm-openmp-and-fir.fir

Lines changed: 37 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -827,4 +827,40 @@ func.func @sub_() {
827827
omp.terminator
828828
}
829829
return
830-
}
830+
}
831+
832+
// -----
833+
834+
// CHECK-LABEL: llvm.func @flush_standalone_
835+
// CHECK-SAME: %[[ARG_A:.*]]: !llvm.ptr<i32> {fir.bindc_name = "a"}, %[[ARG_B:.*]]: !llvm.ptr<i32> {fir.bindc_name = "b"}, %[[ARG_C:.*]]: !llvm.ptr<i32> {fir.bindc_name = "c"})
836+
func.func @flush_standalone_(%arg0: !fir.ref<i32> {fir.bindc_name = "a"}, %arg1: !fir.ref<i32> {fir.bindc_name = "b"}, %arg2: !fir.ref<i32> {fir.bindc_name = "c"}) {
837+
// CHECK: omp.flush(%[[ARG_A]], %[[ARG_B]], %[[ARG_C]] : !llvm.ptr<i32>, !llvm.ptr<i32>, !llvm.ptr<i32>)
838+
omp.flush(%arg0, %arg1, %arg2 : !fir.ref<i32>, !fir.ref<i32>, !fir.ref<i32>)
839+
// CHECK: omp.flush
840+
omp.flush
841+
return
842+
}
843+
844+
// CHECK-LABEL: llvm.func @flush_parallel_
845+
// CHECK-SAME: %[[ARG_A:.*]]: !llvm.ptr<i32> {fir.bindc_name = "a"}, %[[ARG_B:.*]]: !llvm.ptr<i32> {fir.bindc_name = "b"}, %[[ARG_C:.*]]: !llvm.ptr<i32> {fir.bindc_name = "c"})
846+
func.func @flush_parallel_(%arg0: !fir.ref<i32> {fir.bindc_name = "a"}, %arg1: !fir.ref<i32> {fir.bindc_name = "b"}, %arg2: !fir.ref<i32> {fir.bindc_name = "c"}) {
847+
// CHECK: omp.parallel {
848+
omp.parallel {
849+
// CHECK: omp.flush(%[[ARG_A]], %[[ARG_B]], %[[ARG_C]] : !llvm.ptr<i32>, !llvm.ptr<i32>, !llvm.ptr<i32>)
850+
omp.flush(%arg0, %arg1, %arg2 : !fir.ref<i32>, !fir.ref<i32>, !fir.ref<i32>)
851+
// CHECK: omp.flush
852+
omp.flush
853+
// CHECK: %[[A_VAL:.*]] = llvm.load %[[ARG_A]] : !llvm.ptr<i32>
854+
%0 = fir.load %arg0 : !fir.ref<i32>
855+
// CHECK: %[[B_VAL:.*]] = llvm.load %[[ARG_B]] : !llvm.ptr<i32>
856+
%1 = fir.load %arg1 : !fir.ref<i32>
857+
// CHECK: %[[C_VAL:.*]] = llvm.add %[[A_VAL]], %[[B_VAL]] : i32
858+
%2 = arith.addi %0, %1 : i32
859+
// CHECK: llvm.store %[[C_VAL]], %[[ARG_C]] : !llvm.ptr<i32>
860+
fir.store %2 to %arg2 : !fir.ref<i32>
861+
// CHECK: omp.terminator
862+
omp.terminator
863+
// CHECK: }
864+
}
865+
return
866+
}

0 commit comments

Comments
 (0)