|
| 1 | +! This test checks lowering of OpenMP ordered directive with threads Clause. |
| 2 | +! Without clause in ordered direcitve, it behaves as if threads clause is |
| 3 | +! specified. |
| 4 | + |
| 5 | +! RUN: bbc -fopenmp -emit-fir %s -o - | FileCheck %s --check-prefix=FIRDialect |
| 6 | +! RUN: bbc -fopenmp -emit-fir %s -o - | \ |
| 7 | +! RUN: tco --disable-llvm --print-ir-after=fir-to-llvm-ir 2>&1 | \ |
| 8 | +! RUN: FileCheck %s --check-prefix=LLVMIRDialect |
| 9 | +! RUN: bbc -fopenmp -emit-fir %s -o - | tco | FileCheck %s --check-prefix=LLVMIR |
| 10 | + |
| 11 | +program ordered |
| 12 | + integer :: i |
| 13 | + integer :: a(20) |
| 14 | + |
| 15 | +!FIRDialect: omp.ordered_region { |
| 16 | +!LLVMIRDialect: omp.ordered_region { |
| 17 | +!LLVMIR: [[TMP0:%.*]] = call i32 @__kmpc_global_thread_num(%struct.ident_t* @[[GLOB0:[0-9]+]]), !dbg !{{.*}} |
| 18 | +!LLVMIR-NEXT: call void @__kmpc_ordered(%struct.ident_t* @[[GLOB0]], i32 [[TMP0]]), !dbg !{{.*}} |
| 19 | +!$OMP ORDERED |
| 20 | + a(i) = a(i-1) + 1 |
| 21 | +!FIRDialect: omp.terminator |
| 22 | +!FIRDialect-NEXT: } |
| 23 | +!LLVMIRDialect: omp.terminator |
| 24 | +!LLVMIRDialect-NEXT: } |
| 25 | +!LLVMIR: call void @__kmpc_end_ordered(%struct.ident_t* @[[GLOB0]], i32 [[TMP0]]), !dbg !{{.*}} |
| 26 | +!$OMP END ORDERED |
| 27 | + |
| 28 | +!FIRDialect: omp.ordered_region { |
| 29 | +!LLVMIRDialect: omp.ordered_region { |
| 30 | +!LLVMIR: [[TMP1:%.*]] = call i32 @__kmpc_global_thread_num(%struct.ident_t* @[[GLOB1:[0-9]+]]), !dbg !{{.*}} |
| 31 | +!LLVMIR-NEXT: call void @__kmpc_ordered(%struct.ident_t* @[[GLOB1]], i32 [[TMP1]]), !dbg !{{.*}} |
| 32 | +!$OMP ORDERED THREADS |
| 33 | + a(i) = a(i-1) + 1 |
| 34 | +!FIRDialect: omp.terminator |
| 35 | +!FIRDialect-NEXT: } |
| 36 | +!LLVMIRDialect: omp.terminator |
| 37 | +!LLVMIRDialect-NEXT: } |
| 38 | +!LLVMIR: call void @__kmpc_end_ordered(%struct.ident_t* @[[GLOB1]], i32 [[TMP1]]), !dbg !{{.*}} |
| 39 | +!LLVMIR-NEXT: ret void, !dbg !{{.*}} |
| 40 | +!$OMP END ORDERED |
| 41 | + |
| 42 | +end |
0 commit comments