Differential D67833 Diff 278291 clang/test/OpenMP/target_teams_distribute_parallel_for_simd_lastprivate_codegen.cpp
Changeset View
Changeset View
Standalone View
Standalone View
clang/test/OpenMP/target_teams_distribute_parallel_for_simd_lastprivate_codegen.cpp
Show First 20 Lines • Show All 62 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 teams distribute parallel for simd lastprivate(g, g1, svar, sfvar) | #pragma omp target teams distribute parallel for simd lastprivate(g, g1, svar, sfvar) | ||||
for (int i = 0; i < 2; ++i) { | for (int i = 0; i < 2; ++i) { | ||||
// LAMBDA: define{{.*}} internal{{.*}} void [[OMP_OUTLINED]](i32* {{.+}}, i32* {{.+}}, {{.+}} [[G1_IN:%.+]], {{.+}} [[SVAR_IN:%.+]], {{.+}} [[SFVAR_IN:%.+]], {{.+}} [[G_IN:%.+]]) | // LAMBDA: define{{.*}} internal{{.*}} void [[OMP_OUTLINED]](i32* {{.+}}, i32* {{.+}}, {{.+}} [[G1_IN:%.+]], {{.+}} [[SVAR_IN:%.+]], {{.+}} [[SFVAR_IN:%.+]], {{.+}} [[G_IN:%.+]]) | ||||
// skip gbl and bound tid | // skip gbl and bound tid | ||||
▲ Show 20 Lines • Show All 136 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:@.+]]( | // CHECK: call void [[OFFLOAD_FUN:@.+]]( | ||||
// CHECK: ret | // CHECK: ret | ||||
// CHECK: define{{.+}} [[OFFLOAD_FUN]]( | // CHECK: define{{.+}} [[OFFLOAD_FUN]]( | ||||
// 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 %{{.+}}, [2 x i{{[0-9]+}}]*{{.+}} [[VEC_IN:%.+]], i{{[0-9]+}}{{.+}} [[T_VAR_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 %{{.+}}, [2 x i{{[0-9]+}}]*{{.+}} [[VEC_IN:%.+]], i{{[0-9]+}}{{.+}} [[T_VAR_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 108 Lines • ▼ Show 20 Lines | |||||
// CHECK-64-DAG: store {{.+}}, {{.+}} [[SVAR_TGT]], | // CHECK-64-DAG: store {{.+}}, {{.+}} [[SVAR_TGT]], | ||||
// CHECK-32-DAG: store {{.+}}, {{.+}} [[SVAR_ADDR]], | // CHECK-32-DAG: store {{.+}}, {{.+}} [[SVAR_ADDR]], | ||||
// 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:@.+]]( | // CHECK: call void [[OFFLOAD_FUN_1:@.+]]( | ||||
// 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 | ||||
// CHECK: define internal void [[OMP_OUTLINED_1:@.+]](i{{[0-9]+}}* noalias [[GTID_ADDR1:%.+]], i{{[0-9]+}}* noalias %{{.+}}, [2 x i{{[0-9]+}}]*{{.+}} [[VEC_IN1:%.+]], i{{[0-9]+}}{{.+}} [[T_VAR_IN1:%.+]], [2 x [[S_INT_TY]]]*{{.+}} [[S_ARR_IN1:%.+]], [[S_INT_TY]]*{{.+}} [[VAR_IN1:%.+]]) | // CHECK: define internal void [[OMP_OUTLINED_1:@.+]](i{{[0-9]+}}* noalias [[GTID_ADDR1:%.+]], i{{[0-9]+}}* noalias %{{.+}}, [2 x i{{[0-9]+}}]*{{.+}} [[VEC_IN1:%.+]], i{{[0-9]+}}{{.+}} [[T_VAR_IN1:%.+]], [2 x [[S_INT_TY]]]*{{.+}} [[S_ARR_IN1:%.+]], [[S_INT_TY]]*{{.+}} [[VAR_IN1:%.+]]) | ||||
▲ Show 20 Lines • Show All 101 Lines • Show Last 20 Lines |