Changeset View
Changeset View
Standalone View
Standalone View
clang/test/OpenMP/distribute_parallel_for_private_codegen.cpp
Show First 20 Lines • Show All 64 Lines • ▼ Show 20 Lines | int main() { | ||||
volatile double &g1 = g; | volatile double &g1 = g; | ||||
#ifdef LAMBDA | #ifdef LAMBDA | ||||
// LAMBDA-LABEL: @main | // LAMBDA-LABEL: @main | ||||
// LAMBDA: call{{.*}} void [[OUTER_LAMBDA:@.+]]( | // LAMBDA: call{{.*}} void [[OUTER_LAMBDA:@.+]]( | ||||
[&]() { | [&]() { | ||||
static float sfvar; | static float sfvar; | ||||
// LAMBDA: define{{.*}} internal{{.*}} void [[OUTER_LAMBDA]]( | // LAMBDA: define{{.*}} internal{{.*}} void [[OUTER_LAMBDA]]( | ||||
// LAMBDA: call i{{[0-9]+}} @__tgt_target_teams( | // LAMBDA: call i{{[0-9]+}} @__tgt_target_teams_mapper( | ||||
// LAMBDA: call void [[OFFLOADING_FUN:@.+]]( | // LAMBDA: call void [[OFFLOADING_FUN:@.+]]( | ||||
// LAMBDA: define{{.+}} void [[OFFLOADING_FUN]]() | // LAMBDA: define{{.+}} void [[OFFLOADING_FUN]]() | ||||
// LAMBDA: call {{.*}}void {{.+}} @__kmpc_fork_teams({{.+}}, i32 0, {{.+}}* [[OMP_OUTLINED:@.+]] to {{.+}}) | // LAMBDA: call {{.*}}void {{.+}} @__kmpc_fork_teams({{.+}}, i32 0, {{.+}}* [[OMP_OUTLINED:@.+]] to {{.+}}) | ||||
#pragma omp target | #pragma omp target | ||||
#pragma omp teams | #pragma omp teams | ||||
#pragma omp distribute parallel for private(g, g1, svar, sfvar) | #pragma omp distribute parallel for private(g, g1, svar, sfvar) | ||||
for (int i = 0; i < 2; ++i) { | for (int i = 0; i < 2; ++i) { | ||||
▲ Show 20 Lines • Show All 77 Lines • ▼ Show 20 Lines | int main() { | ||||
} | } | ||||
return tmain<int>(); | return tmain<int>(); | ||||
#endif | #endif | ||||
} | } | ||||
// CHECK: define{{.*}} i{{[0-9]+}} @main() | // CHECK: define{{.*}} i{{[0-9]+}} @main() | ||||
// CHECK: [[TEST:%.+]] = alloca [[S_FLOAT_TY]], | // CHECK: [[TEST:%.+]] = alloca [[S_FLOAT_TY]], | ||||
// CHECK: call {{.*}} [[S_FLOAT_TY_DEF_CONSTR:@.+]]([[S_FLOAT_TY]]* [[TEST]]) | // CHECK: call {{.*}} [[S_FLOAT_TY_DEF_CONSTR:@.+]]([[S_FLOAT_TY]]* [[TEST]]) | ||||
// CHECK: call i{{[0-9]+}} @__tgt_target_teams( | // CHECK: call i{{[0-9]+}} @__tgt_target_teams_mapper( | ||||
// CHECK: call void [[OFFLOAD_FUN_0:@.+]]( | // CHECK: call void [[OFFLOAD_FUN_0:@.+]]( | ||||
// CHECK: call {{.*}} [[S_FLOAT_TY_DEF_DESTR:@.+]]([[S_FLOAT_TY]]* [[TEST]]) | // CHECK: call {{.*}} [[S_FLOAT_TY_DEF_DESTR:@.+]]([[S_FLOAT_TY]]* [[TEST]]) | ||||
// CHECK: ret | // CHECK: ret | ||||
// CHECK: define{{.+}} [[OFFLOAD_FUN_0]]() | // CHECK: define{{.+}} [[OFFLOAD_FUN_0]]() | ||||
// CHECK: call void (%{{.+}}*, i{{[0-9]+}}, void (i{{[0-9]+}}*, i{{[0-9]+}}*, ...)*, ...) @__kmpc_fork_teams(%{{.+}}* @{{.+}}, i{{[0-9]+}} 0, void (i{{[0-9]+}}*, i{{[0-9]+}}*, ...)* bitcast (void (i{{[0-9]+}}*, i{{[0-9]+}}*)* [[OMP_OUTLINED_0:@.+]] to void | // CHECK: call void (%{{.+}}*, i{{[0-9]+}}, void (i{{[0-9]+}}*, i{{[0-9]+}}*, ...)*, ...) @__kmpc_fork_teams(%{{.+}}* @{{.+}}, i{{[0-9]+}} 0, void (i{{[0-9]+}}*, i{{[0-9]+}}*, ...)* bitcast (void (i{{[0-9]+}}*, i{{[0-9]+}}*)* [[OMP_OUTLINED_0:@.+]] to void | ||||
// CHECK: ret | // CHECK: ret | ||||
▲ Show 20 Lines • Show All 66 Lines • ▼ Show 20 Lines | |||||
// CHECK: call {{.*}} [[S_FLOAT_TY_DEF_DESTR]]([[S_FLOAT_TY]]* [[S_ARR_PRIV_ITEM]]) | // CHECK: call {{.*}} [[S_FLOAT_TY_DEF_DESTR]]([[S_FLOAT_TY]]* [[S_ARR_PRIV_ITEM]]) | ||||
// CHECK: ret void | // CHECK: ret void | ||||
// template tmain with S_INT_TY | // template tmain with S_INT_TY | ||||
// CHECK: define{{.*}} i{{[0-9]+}} [[TMAIN_INT:@.+]]() | // CHECK: define{{.*}} i{{[0-9]+}} [[TMAIN_INT:@.+]]() | ||||
// CHECK: [[TEST:%.+]] = alloca [[S_INT_TY]], | // CHECK: [[TEST:%.+]] = alloca [[S_INT_TY]], | ||||
// CHECK: call {{.*}} [[S_INT_TY_DEF_CONSTR:@.+]]([[S_INT_TY]]* [[TEST]]) | // CHECK: call {{.*}} [[S_INT_TY_DEF_CONSTR:@.+]]([[S_INT_TY]]* [[TEST]]) | ||||
// CHECK: call i{{[0-9]+}} @__tgt_target_teams( | // CHECK: call i{{[0-9]+}} @__tgt_target_teams_mapper( | ||||
// CHECK: call void [[OFFLOAD_FUN_1:@.+]]( | // CHECK: call void [[OFFLOAD_FUN_1:@.+]]( | ||||
// CHECK: call {{.*}} [[S_INT_TY_DEF_DESTR:@.+]]([[S_INT_TY]]* [[TEST]]) | // CHECK: call {{.*}} [[S_INT_TY_DEF_DESTR:@.+]]([[S_INT_TY]]* [[TEST]]) | ||||
// CHECK: ret | // CHECK: ret | ||||
// CHECK: ret | // CHECK: ret | ||||
// CHECK: define internal void [[OFFLOAD_FUN_1]]() | // CHECK: define internal void [[OFFLOAD_FUN_1]]() | ||||
// CHECK: call void (%{{.+}}*, i{{[0-9]+}}, void (i{{[0-9]+}}*, i{{[0-9]+}}*, ...)*, ...) @__kmpc_fork_teams(%{{.+}}* @{{.+}}, i{{[0-9]+}} 0, void (i{{[0-9]+}}*, i{{[0-9]+}}*, ...)* bitcast (void (i{{[0-9]+}}*, i{{[0-9]+}}*)* [[OMP_OUTLINED_1:@.+]] to void | // CHECK: call void (%{{.+}}*, i{{[0-9]+}}, void (i{{[0-9]+}}*, i{{[0-9]+}}*, ...)*, ...) @__kmpc_fork_teams(%{{.+}}* @{{.+}}, i{{[0-9]+}} 0, void (i{{[0-9]+}}*, i{{[0-9]+}}*, ...)* bitcast (void (i{{[0-9]+}}*, i{{[0-9]+}}*)* [[OMP_OUTLINED_1:@.+]] to void | ||||
▲ Show 20 Lines • Show All 55 Lines • Show Last 20 Lines |