Changeset View
Changeset View
Standalone View
Standalone View
mlir/test/Target/LLVMIR/openmp-llvm.mlir
Show First 20 Lines • Show All 1,046 Lines • ▼ Show 20 Lines | omp.parallel { | ||||
// CHECK: %[[TOTAL:.*]] = mul nuw i32 %[[PROD]], %[[TRIPCOUNT2]] | // CHECK: %[[TOTAL:.*]] = mul nuw i32 %[[PROD]], %[[TRIPCOUNT2]] | ||||
// CHECK: br label %[[COLLAPSED_PREHEADER:.*]] | // CHECK: br label %[[COLLAPSED_PREHEADER:.*]] | ||||
// | // | ||||
// CHECK: [[COLLAPSED_PREHEADER]]: | // CHECK: [[COLLAPSED_PREHEADER]]: | ||||
// CHECK: store i32 0, ptr | // CHECK: store i32 0, ptr | ||||
// CHECK: %[[TOTAL_SUB_1:.*]] = sub i32 %[[TOTAL]], 1 | // CHECK: %[[TOTAL_SUB_1:.*]] = sub i32 %[[TOTAL]], 1 | ||||
// CHECK: store i32 %[[TOTAL_SUB_1]], ptr | // CHECK: store i32 %[[TOTAL_SUB_1]], ptr | ||||
// CHECK: call void @__kmpc_for_static_init_4u | // CHECK: call void @__kmpc_for_static_init_4u | ||||
omp.wsloop collapse(3) | omp.wsloop | ||||
for (%arg0, %arg1, %arg2) : i32 = (%0, %1, %2) to (%3, %4, %5) step (%6, %7, %8) { | for (%arg0, %arg1, %arg2) : i32 = (%0, %1, %2) to (%3, %4, %5) step (%6, %7, %8) { | ||||
%31 = llvm.load %20 : !llvm.ptr<i32> | %31 = llvm.load %20 : !llvm.ptr<i32> | ||||
%32 = llvm.add %31, %arg0 : i32 | %32 = llvm.add %31, %arg0 : i32 | ||||
%33 = llvm.add %32, %arg1 : i32 | %33 = llvm.add %32, %arg1 : i32 | ||||
%34 = llvm.add %33, %arg2 : i32 | %34 = llvm.add %33, %arg2 : i32 | ||||
llvm.store %34, %20 : !llvm.ptr<i32> | llvm.store %34, %20 : !llvm.ptr<i32> | ||||
omp.yield | omp.yield | ||||
} | } | ||||
▲ Show 20 Lines • Show All 44 Lines • ▼ Show 20 Lines | omp.parallel { | ||||
// CHECK: %[[PROD:.*]] = mul nuw i32 %[[TRIPCOUNT0]], %[[TRIPCOUNT1]] | // CHECK: %[[PROD:.*]] = mul nuw i32 %[[TRIPCOUNT0]], %[[TRIPCOUNT1]] | ||||
// CHECK: %[[TOTAL:.*]] = mul nuw i32 %[[PROD]], %[[TRIPCOUNT2]] | // CHECK: %[[TOTAL:.*]] = mul nuw i32 %[[PROD]], %[[TRIPCOUNT2]] | ||||
// CHECK: br label %[[COLLAPSED_PREHEADER:.*]] | // CHECK: br label %[[COLLAPSED_PREHEADER:.*]] | ||||
// | // | ||||
// CHECK: [[COLLAPSED_PREHEADER]]: | // CHECK: [[COLLAPSED_PREHEADER]]: | ||||
// CHECK: store i32 1, ptr | // CHECK: store i32 1, ptr | ||||
// CHECK: store i32 %[[TOTAL]], ptr | // CHECK: store i32 %[[TOTAL]], ptr | ||||
// CHECK: call void @__kmpc_dispatch_init_4u | // CHECK: call void @__kmpc_dispatch_init_4u | ||||
omp.wsloop collapse(3) schedule(dynamic) | omp.wsloop schedule(dynamic) | ||||
for (%arg0, %arg1, %arg2) : i32 = (%0, %1, %2) to (%3, %4, %5) step (%6, %7, %8) { | for (%arg0, %arg1, %arg2) : i32 = (%0, %1, %2) to (%3, %4, %5) step (%6, %7, %8) { | ||||
%31 = llvm.load %20 : !llvm.ptr<i32> | %31 = llvm.load %20 : !llvm.ptr<i32> | ||||
%32 = llvm.add %31, %arg0 : i32 | %32 = llvm.add %31, %arg0 : i32 | ||||
%33 = llvm.add %32, %arg1 : i32 | %33 = llvm.add %32, %arg1 : i32 | ||||
%34 = llvm.add %33, %arg2 : i32 | %34 = llvm.add %33, %arg2 : i32 | ||||
llvm.store %34, %20 : !llvm.ptr<i32> | llvm.store %34, %20 : !llvm.ptr<i32> | ||||
omp.yield | omp.yield | ||||
} | } | ||||
▲ Show 20 Lines • Show All 1,048 Lines • Show Last 20 Lines |