Changeset View
Changeset View
Standalone View
Standalone View
clang/test/OpenMP/distribute_lastprivate_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 4, {{.+}}* [[OMP_OUTLINED:@.+]] to {{.+}}) | // LAMBDA: call {{.*}}void {{.+}} @__kmpc_fork_teams({{.+}}, i32 4, {{.+}}* [[OMP_OUTLINED:@.+]] to {{.+}}) | ||||
#pragma omp target | #pragma omp target | ||||
#pragma omp teams | #pragma omp teams | ||||
#pragma omp distribute lastprivate(g, g1, svar, sfvar) | #pragma omp distribute lastprivate(g, g1, svar, sfvar) | ||||
for (int i = 0; i < 2; ++i) { | for (int i = 0; i < 2; ++i) { | ||||
▲ Show 20 Lines • Show All 113 Lines • ▼ Show 20 Lines | #pragma omp distribute lastprivate(t_var, vec, s_arr, s_arr, var, var, svar) | ||||
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:@.+]](i{{[0-9]+}} {{.+}}, [2 x i{{[0-9]+}}]* {{.+}}, [2 x [[S_FLOAT_TY]]]* {{.+}}, [[S_FLOAT_TY]]* {{.+}}, i{{[0-9]+}} {{.+}}) | // CHECK: call void [[OFFLOAD_FUN:@.+]](i{{[0-9]+}} {{.+}}, [2 x i{{[0-9]+}}]* {{.+}}, [2 x [[S_FLOAT_TY]]]* {{.+}}, [[S_FLOAT_TY]]* {{.+}}, i{{[0-9]+}} {{.+}}) | ||||
// CHECK: ret | // CHECK: ret | ||||
// CHECK: define{{.+}} [[OFFLOAD_FUN]](i{{[0-9]+}} {{.+}}, [2 x i{{[0-9]+}}]*{{.+}} {{.+}}, [2 x [[S_FLOAT_TY]]]*{{.+}} {{.+}}, [[S_FLOAT_TY]]*{{.+}} {{.+}}, i{{[0-9]+}} {{.+}}) | // CHECK: define{{.+}} [[OFFLOAD_FUN]](i{{[0-9]+}} {{.+}}, [2 x i{{[0-9]+}}]*{{.+}} {{.+}}, [2 x [[S_FLOAT_TY]]]*{{.+}} {{.+}}, [[S_FLOAT_TY]]*{{.+}} {{.+}}, i{{[0-9]+}} {{.+}}) | ||||
// CHECK: call void (%{{.+}}*, i{{[0-9]+}}, void (i{{[0-9]+}}*, i{{[0-9]+}}*, ...)*, ...) @__kmpc_fork_teams( | // CHECK: call void (%{{.+}}*, i{{[0-9]+}}, void (i{{[0-9]+}}*, i{{[0-9]+}}*, ...)*, ...) @__kmpc_fork_teams( | ||||
// CHECK: ret | // CHECK: ret | ||||
// | // | ||||
// CHECK: define internal void [[OMP_OUTLINED:@.+]](i{{[0-9]+}}* noalias [[GTID_ADDR:%.+]], i{{[0-9]+}}* noalias %{{.+}}, i{{[0-9]+}}*{{.+}} [[T_VAR_IN:%.+]], [2 x i{{[0-9]+}}]*{{.+}} [[VEC_IN:%.+]], [2 x [[S_FLOAT_TY]]]*{{.+}} [[S_ARR_IN:%.+]], [[S_FLOAT_TY]]*{{.+}} [[VAR_IN:%.+]], i{{[0-9]+}}*{{.*}} [[S_VAR_IN:%.+]]) | // CHECK: define internal void [[OMP_OUTLINED:@.+]](i{{[0-9]+}}* noalias [[GTID_ADDR:%.+]], i{{[0-9]+}}* noalias %{{.+}}, i{{[0-9]+}}*{{.+}} [[T_VAR_IN:%.+]], [2 x i{{[0-9]+}}]*{{.+}} [[VEC_IN:%.+]], [2 x [[S_FLOAT_TY]]]*{{.+}} [[S_ARR_IN:%.+]], [[S_FLOAT_TY]]*{{.+}} [[VAR_IN:%.+]], i{{[0-9]+}}*{{.*}} [[S_VAR_IN:%.+]]) | ||||
▲ Show 20 Lines • Show All 87 Lines • ▼ Show 20 Lines | |||||
// CHECK: [[SVAR_VAL:%.+]] = load i{{[0-9]+}}, i{{[0-9]+}}* [[S_VAR_PRIV]], | // CHECK: [[SVAR_VAL:%.+]] = load i{{[0-9]+}}, i{{[0-9]+}}* [[S_VAR_PRIV]], | ||||
// CHECK: store i{{[0-9]+}} [[SVAR_VAL]], i{{[0-9]+}}* [[SVAR_ADDR_REF]], | // CHECK: store i{{[0-9]+}} [[SVAR_VAL]], i{{[0-9]+}}* [[SVAR_ADDR_REF]], | ||||
// CHECK: ret void | // CHECK: ret void | ||||
// template tmain | // template tmain | ||||
// 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:@.+]](i{{[0-9]+}} {{.+}}, [2 x i{{[0-9]+}}]* {{.+}}, [2 x [[S_INT_TY]]]* {{.+}}, [[S_INT_TY]]* {{.+}}) | // CHECK: call void [[OFFLOAD_FUN_1:@.+]](i{{[0-9]+}} {{.+}}, [2 x i{{[0-9]+}}]* {{.+}}, [2 x [[S_INT_TY]]]* {{.+}}, [[S_INT_TY]]* {{.+}}) | ||||
// 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]+}} 4, | // CHECK: call void (%{{.+}}*, i{{[0-9]+}}, void (i{{[0-9]+}}*, i{{[0-9]+}}*, ...)*, ...) @__kmpc_fork_teams(%{{.+}}* @{{.+}}, i{{[0-9]+}} 4, | ||||
// CHECK: ret | // CHECK: ret | ||||
▲ Show 20 Lines • Show All 90 Lines • Show Last 20 Lines |